CVE-2026-32731 ApostropheCMS has Arbitrary File Write (Zip Slip / Path Traversal) in Import-Export Gzip Extraction

Critical 10.0 Published Updated

Attackers with content modify permissions can upload malicious archives to write arbitrary files outside the intended directory, potentially executing code.

Exploited in the wild
Not known
Login needed
Any signed-in user
Attackable
Over the internet
Victim action needed
Not needed
Fix
Available

What is CVE-2026-32731?

CVE-2026-32731 is a critical path traversal vulnerability in apostrophecms import-export, published on 18 Mar 2026. Any signed-in user can exploit it over the network, with no action from the victim.

Official description

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.

Weakness: CWE-22

Which versions are affected by CVE-2026-32731?

2 open source packages ship an affected version, including @apostrophecms/import-export. It affects 1 product.

PackageAffectedFixed in
@apostrophecms/import-export npmAll versions3.5.3
@apostrophecms/import-export npmAll versions3.5.3

Products include Apostrophecms Import-Export.

How do I fix CVE-2026-32731?

Upgrade @apostrophecms/import-export to 3.5.3 or later.

Upgrade, and resolve every user-supplied path against an allowed base folder before opening it. More about Path traversal.

Is CVE-2026-32731 being exploited?

It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-32731 exists.

Public exploit code: 1 proofs of concept on GitHub.

Sources

Also known as GHSA-mwxc-m426-3f78.

Is CVE-2026-32731 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free