CVE-2026-32731

ApostropheCMS is an open-source content management framework. Prior to version 3.5.3 of `@apostrophecms/import-export`, The `extract()` function in `gzip.js` constructs file-write paths using `fs.createWriteStream(path.join(exportPath, header.name))`. `path.join()` does not resolve or sanitise traversal segments such as `../`. It concatenates them as-is, meaning a tar entry named `../../evil.js` resolves to a path outside the intended extraction directory. No canonical-path check is performed before the write stream is opened. This is a textbook Zip Slip vulnerability. Any user who has been granted the Global Content Modify permission — a role routinely assigned to content editors and site managers — can upload a crafted `.tar.gz` file through the standard CMS import UI and write attacker-controlled content to any path the Node.js process can reach on the host filesystem. Version 3.5.3 of `@apostrophecms/import-export` fixes the issue.
Configurations

Configuration 1 (hide)

cpe:2.3:a:apostrophecms:import-export:*:*:*:*:*:node.js:*:*

History

24 Mar 2026, 21:31

Type Values Removed Values Added
Summary
  • (es) ApostropheCMS es un framework de gestión de contenido de código abierto. Antes de la versión 3.5.3 de `'@apostrophecms/import-export'`, la función `'extract'`() en `'gzip.js'` construye rutas de escritura de archivos usando `'fs.createWriteStream(path.join(exportPath, header.name))'`. `'path.join'`() no resuelve ni sanitiza segmentos de recorrido como `'../'`. Los concatena tal cual, lo que significa que una entrada tar llamada `'../../evil.js'` se resuelve a una ruta fuera del directorio de extracción previsto. No se realiza ninguna comprobación de ruta canónica antes de que se abra el flujo de escritura. Esta es una vulnerabilidad Zip Slip de libro de texto. Cualquier usuario al que se le haya concedido el permiso de Modificar Contenido Global — un rol asignado rutinariamente a editores de contenido y administradores de sitios — puede cargar un archivo '.tar.gz' manipulado a través de la interfaz de usuario de importación estándar del CMS y escribir contenido controlado por el atacante en cualquier ruta que el proceso de Node.js pueda alcanzar en el sistema de archivos del host. La versión 3.5.3 de `'@apostrophecms/import-export'` soluciona el problema.
CPE cpe:2.3:a:apostrophecms:import-export:*:*:*:*:*:node.js:*:*
References () https://github.com/apostrophecms/apostrophe/security/advisories/GHSA-mwxc-m426-3f78 - () https://github.com/apostrophecms/apostrophe/security/advisories/GHSA-mwxc-m426-3f78 - Exploit, Vendor Advisory
First Time Apostrophecms
Apostrophecms import-export

18 Mar 2026, 23:17

Type Values Removed Values Added
New CVE

Information

Published : 2026-03-18 23:17

Updated : 2026-03-24 21:31


NVD link : CVE-2026-32731

Mitre link : CVE-2026-32731

CVE.ORG link : CVE-2026-32731


JSON object : View

Products Affected

apostrophecms

  • import-export
CWE
CWE-22

Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')