By Null Ventures MCP platform
Menu

vulnerability / NVI-00017919 / Revision 1

ApostropheCMS: Missing Authentication in `cleanExport` Route

OSV carries this publisher advisory for @apostrophecms/import-export. This is an aggregated source copy; consult the original publisher and compare update dates.

source listedactiveGHSA-rw26-wwfc-9wvmCVE-2026-113648

This report has not inspected your inventory, configuration, deployed build, reachability or evidence. A catalog listing and a severity score do not establish exposure or compromise.

01 / Meaning

Why it matters

Published affected context helps an owner decide what evidence to gather. This report has not examined your application.

02 / Applicability

The affected context

Affected versions, configuration prerequisites and known exclusions are public. Confirm each one against the deployed service.

@apostrophecms/import-export

source listed
  • SEMVER: introduced 0; fixed 3.7.1

#### 1. Summary The API endpoint `POST /api/v1/@apostrophecms/import-export/clean-export` in `@apostrophecms/import-export` lacks authentication and authorization checks. Any client—including unauthenticated anonymous users who have obtained the standard CSRF cookie from visiting the site—can directly invoke this route and trigger the underlying `self.cleanExport(req)` method. --- #### 2. Affected Files & Endpoints * **Endpoint:** `POST /api/v1/@apostrophecms/import-export/clean-export` * **Route Definition:** `packages/import-export/lib/apiRoutes.js` (lines 32–34) * **Method Implementation:** `packages/import-export/lib/methods/import.js` (lines 1271–1324) --- #### 3. Root Cause Analysis In `packages/import-export/lib/apiRoutes.js`, the `get.related` handler explicitly validates that the caller is logged in: ```javascript get: { async related(req) { if (!req.user) { throw self.apos.error('forbidden'); } // ... } } ``` In contrast, `post.cleanExport` (as well as `post.overrideDuplicates`) lacks any verification of `req.user`: ```javascript post: { async overrideDuplicates(req) { return self.overrideDuplicates(req); }, async cleanExport(req) {

GitHub Advisory Database via OSV

03 / Response

What to do next

  1. vendor patch

    The original advisory lists fixed boundaries 3.7.1 for @apostrophecms/import-export. Confirm the publisher’s latest guidance.

    Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system. GitHub Advisory Database via OSV

A fixed release is not deployment evidence.

Check current vendor support and compatibility. After making a change, verify the deployed build and relevant runtime conditions. Keep the evidence, owner and time. An updated lockfile alone does not prove what is running.

04 / Limits

What this report cannot establish

  • Customer inventory, deployment, reachability and exploitation have not been inspected.
Read the collection and interpretation limits ↗

05 / Provenance

Sources you can inspect

Each assertion retains its source. Mirrored records may repeat one underlying publisher; additional links are not independent corroboration.

  1. GHSA-rw26-wwfc-9wvm ↗

    GitHub Advisory Database via OSV · vendor advisory

    Observed . GitHub-origin advisory, CC-BY-4.0; OSV is an aggregate copy, not independent corroboration.

Public revision history

Only published revisions appear here. Routine fetches do not create a material-change event.

  1. Revision 1 ·

    First indexed by Null; source disclosure date is shown separately.

Read the public revision data ↗

The next step is private

Bring the question into your environment.

The connected workflow is a development preview for inventory, contextual matching, owner decisions and evidence-based verification. No system-specific result is generated by this page.

See the synthetic workflow preview ↗