<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <id>https://db.gcve.eu/rss/recent/all/10</id>
  <title>Most recent entries from all</title>
  <updated>2026-10-21T07:31:19.698133+00:00</updated>
  <author>
    <name>Vulnerability-Lookup</name>
    <email>info@gcve.eu</email>
  </author>
  <link href="https://db.gcve.eu" rel="alternate"/>
  <generator uri="https://lkiesow.github.io/python-feedgen" version="1.0.0">python-feedgen</generator>
  <subtitle>Contains only the most 10 recent entries.</subtitle>
  <entry>
    <id>https://db.gcve.eu/vuln/fkie_cve-2026-113660</id>
    <title>fkie_cve-2026-113660</title>
    <updated>2026-10-21T07:31:19.699251+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>ApostropheCMS is an open-source Node.js content management system. Prior to 4.33.0, ApostropheCMS’s exist-in-locale API allows an authenticated low-privilege user to determine whether restricted documents exist in a specified locale and mode, including draft mode. The endpoint returns localized document identifiers without applying document-level view or edit authorization criteria. This issue is fixed in version 4.33.0.</p>
      </div>
    </content>
    <link href="https://db.gcve.eu/vuln/fkie_cve-2026-113660"/>
  </entry>
  <entry>
    <id>https://db.gcve.eu/vuln/ghsa-vmxh-77cw-65j7</id>
    <title>GHSA-vmxh-77cw-65j7 — ApostropheCMS: Authenticated Object-Level Authorization Bypass in exist-in-locale Reveals Restricted Localized Draft Id…</title>
    <updated>2026-10-21T07:31:19.699313+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> npm: apostrophe</p>
<p>**Summary**
ApostropheCMS’s exist-in-locale API allows an authenticated low-privilege user to determine whether restricted documents exist in a specified locale and mode, including draft mode. The endpoint returns localized document identifiers without applying document-level view or edit authorization criteria.</p>
<p>The issue was reproduced against a real local ApostropheCMS application running the reviewed source code. The test used a synthetic guest account and synthetic restricted draft records.</p>
<p>**Details**
Exact vulnerable source path: ` packages/apostrophe/modules/@apostrophecms/i18n/index.js:503-529`
Exact API route:` POST /api/v1/@apostrophecms/i18n/exist-in-locale`
The handler verifies only that the requester is authenticated:</p>
<p>```
if (!req.user) {
  throw self.apos.error('notfound');
}
```
It then performs a direct database lookup using attacker-controlled document IDs, locale, and mode:</p>
<p>```
const found = await self.apos.doc.db.find({
  aposLocale: `${locale}:${mode}`,
  aposDocId: {
    $in: ids.map(self.apos.doc.toAposDocId)
  }
}).project({
  _id: 1,
  aposDocId: 1
}).toArray();
```
This query does not apply:</p>
<p>.permission('view')
.permission('edit')
apos.permission.criteria(req, 'view')
object-level document authorization
locale-specific authorization</p>
<p>The endpoint accepts multiple IDs, making bulk probing possible.</p>
<p>**Proof of Concept**</p>
<p>The local application was running at: http://127.0.0.1:3000
The test account had the low-privilege role: guest
The local databa…</p></div>
    </content>
    <link href="https://db.gcve.eu/vuln/ghsa-vmxh-77cw-65j7"/>
  </entry>
</feed>
