<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://db.gcve.eu</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Wed, 21 Oct 2026 19:24:41 +0000</lastBuildDate>
    <item>
      <title>fkie_cve-2026-113648</title>
      <link>https://db.gcve.eu/vuln/fkie_cve-2026-113648</link>
      <description>&lt;p&gt;ApostropheCMS is an open-source Node.js content management system. Prior to 3.7.1 of the import-export module, 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. This issue is fixed in version 3.7.1.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;ApostropheCMS is an open-source Node.js content management system. Prior to 3.7.1 of the import-export module, 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. This issue is fixed in version 3.7.1.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/fkie_cve-2026-113648</guid>
    </item>
    <item>
      <title>GHSA-rw26-wwfc-9wvm — ApostropheCMS: Missing Authentication in `cleanExport` Route</title>
      <link>https://db.gcve.eu/vuln/ghsa-rw26-wwfc-9wvm</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: @apostrophecms/import-export&lt;/p&gt;
&lt;p&gt;#### 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.&lt;/p&gt;
&lt;p&gt;---&lt;/p&gt;
&lt;p&gt;#### 2. Affected Files &amp;amp; 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)&lt;/p&gt;
&lt;p&gt;---&lt;/p&gt;
&lt;p&gt;#### 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(&amp;#39;forbidden&amp;#39;);
    }
    // ...
  }
}
```
In contrast, `post.cleanExport` (as well as `post.overrideDuplicates`) lacks any verification of `req.user`:
```javascript
post: {
  async overrideDuplicates(req) {
    return self.overrideDuplicates(req);
  },&lt;/p&gt;
&lt;p&gt;async cleanExport(req) {
    return self.cleanExport(req); // &amp;lt;-- No authentication check
  }
}
```
Because ApostropheCMS does not enforce authentication globally on all `apiRoutes`, omitting an explicit `if (!req.user)` guard allows anonymous requests to pass directly through to the business logic layer.&lt;/p&gt;
&lt;p&gt;---&lt;/p&gt;
&lt;p&gt;#### 4. Evide…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: @apostrophecms/import-export&lt;/p&gt;
&lt;p&gt;#### 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.&lt;/p&gt;
&lt;p&gt;---&lt;/p&gt;
&lt;p&gt;#### 2. Affected Files &amp;amp; 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)&lt;/p&gt;
&lt;p&gt;---&lt;/p&gt;
&lt;p&gt;#### 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(&amp;#39;forbidden&amp;#39;);
    }
    // ...
  }
}
```
In contrast, `post.cleanExport` (as well as `post.overrideDuplicates`) lacks any verification of `req.user`:
```javascript
post: {
  async overrideDuplicates(req) {
    return self.overrideDuplicates(req);
  },&lt;/p&gt;
&lt;p&gt;async cleanExport(req) {
    return self.cleanExport(req); // &amp;lt;-- No authentication check
  }
}
```
Because ApostropheCMS does not enforce authentication globally on all `apiRoutes`, omitting an explicit `if (!req.user)` guard allows anonymous requests to pass directly through to the business logic layer.&lt;/p&gt;
&lt;p&gt;---&lt;/p&gt;
&lt;p&gt;#### 4. Evide…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/ghsa-rw26-wwfc-9wvm</guid>
    </item>
  </channel>
</rss>
