{"schemaVersion":3,"id":"CVE-2026-113666","aliases":["GHSA-j5rq-xfvr-p969"],"status":"published","duplicateOf":null,"title":null,"description":"ApostropheCMS is an open-source Node.js content management system. Prior to 1.1.0 of db-connect and 4.33.0 of ApostropheCMS, an account with view-draft access can submit a projection exclusion path that traverses through a constructor prototype chain to a shared prototype member when a consumer uses a SQLite, PostgreSQL, or multipostgres adapter and has a matching document. Every editing role has view-draft access, while guestApiAccess broadens this prerequisite to any logged-in account. The unsetNestedField helper then deletes the shared runtime member, causing persistent process-wide integrity and availability effects; the default MongoDB adapter is not affected. This issue is fixed in db-connect 1.1.0 and ApostropheCMS 4.33.0.","dates":{"published":"2026-10-20T17:25:44.574Z","modified":"2026-10-20T17:43:12.999Z","reserved":null,"kevAdded":[],"kevDue":[]},"cvss":{"headline":{"score":7.1,"severity":"high","version":"3.1","versionLabel":"v3.1","source":"CVE.org","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:H","computed":false,"selection":"backend-summary"},"metrics":[{"version":"3.1","versionLabel":"v3.1","source":"CVE.org","score":7.1,"severity":"high","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:H","exploitability":null,"impact":null,"computed":false},{"version":"3.1","versionLabel":"v3.1","source":"NVD","score":7.1,"severity":"high","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:H","exploitability":null,"impact":null,"computed":false},{"version":"3.1","versionLabel":"v3.1","source":"OSV · Npm","score":7.1,"severity":"high","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:H","exploitability":7.2,"impact":7,"computed":true}]},"epss":{"probability":0.00444,"percentile":0.3748,"severity":"low","asOf":"2026-10-21T00:00:00.000Z","change":{"pp":null,"baselineDate":null,"baselineScore":null},"history":[{"date":"2026-10-21T00:00:00.000Z","score":0.00444,"percentile":0.3748}],"last30":[{"date":"2026-10-21T00:00:00.000Z","score":0.00444,"percentile":0.3748}]},"kev":{"state":"not-listed","entries":[],"listedCount":0,"totalCatalogs":3,"catalogs":[{"source":"cisa","label":"CISA","listed":false,"entry":null},{"source":"enisa","label":"ENISA","listed":false,"entry":null},{"source":"circl","label":"CIRCL","listed":false,"entry":null}]},"ransomware":{"state":"none-recorded","sources":[]},"exploits":[],"exploitCount":0,"weaknesses":[{"id":"CWE-400","name":"Uncontrolled Resource Consumption","description":"The product does not properly control the allocation and maintenance of a limited resource.","type":"weakness","status":"Draft","abstraction":"Class","likelihoodOfExploit":"High","url":"https://cwe.mitre.org/data/definitions/400.html"},{"id":"CWE-1321","name":"Improperly Controlled Modification of Object Prototype Attributes ('Prototype Pollution')","description":"The product receives input from an upstream component that specifies attributes that are to be initialized or updated in an object, but it does not properly control modifications of attributes of the object prototype.","type":"weakness","status":"Incomplete","abstraction":"Variant","likelihoodOfExploit":null,"url":"https://cwe.mitre.org/data/definitions/1321.html"}],"affected":[{"vendor":"apostrophecms","product":"apostrophe","name":"apostrophe","label":"apostrophe","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"< 4.33.0","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 4.33.0","eol":null,"hubHref":"/vendor/apostrophecms/apostrophe"},{"vendor":"@apostrophecms","product":"db-connect","name":"db-connect","label":"db-connect","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"< 1.1.0","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 1.1.0","eol":null,"hubHref":"/vendor/apostrophecms/db-connect"},{"vendor":"Npm","product":"apostrophe","name":"apostrophe","label":"apostrophe","ecosystem":"Npm","cpePart":null,"purl":"pkg:npm/apostrophe","purlType":"npm","versions":[{"text":"< 4.33.0","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 4.33.0","eol":null,"hubHref":null},{"vendor":"@apostrophecms","product":"db-connect","name":"@apostrophecms/db-connect","label":"db-connect","ecosystem":"Npm","cpePart":null,"purl":"pkg:npm/@apostrophecms/db-connect","purlType":"npm","versions":[{"text":"< 1.1.0","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 1.1.0","eol":null,"hubHref":null}],"affectedCount":4,"eol":{"hasEol":false,"count":0},"references":[{"url":"https://github.com/apostrophecms/apostrophe/security/advisories/GHSA-j5rq-xfvr-p969","label":"github.com/apostrophecms/apostrophe/security/advisories/GHSA-j5rq-xfvr-p969","hostname":"github.com","tags":["X Refsource CONFIRM","WEB"]},{"url":"https://github.com/apostrophecms/apostrophe/commit/9500b8b0e1d630d5e07fbb5fd2c25ed0943845ce","label":"github.com/apostrophecms/apostrophe/commit/9500b8b0e1d630d5e07fbb5fd2c25ed0943845ce","hostname":"github.com","tags":["X Refsource MISC","WEB"]},{"url":"https://github.com/apostrophecms/apostrophe/commit/f84fd41cbf6c22eb8d0008fc9c25df1f7130b350","label":"github.com/apostrophecms/apostrophe/commit/f84fd41cbf6c22eb8d0008fc9c25df1f7130b350","hostname":"github.com","tags":["X Refsource MISC","WEB"]},{"url":"https://github.com/apostrophecms/apostrophe/releases/tag/@apostrophecms/db-connect@1.1.0","label":"github.com/apostrophecms/apostrophe/releases/tag/@apostrophecms/db-connect@1.1.0","hostname":"github.com","tags":["X Refsource MISC","WEB"]},{"url":"https://github.com/apostrophecms/apostrophe/releases/tag/apostrophe@4.33.0","label":"github.com/apostrophecms/apostrophe/releases/tag/apostrophe@4.33.0","hostname":"github.com","tags":["X Refsource MISC","WEB"]},{"url":"https://github.com/apostrophecms/apostrophe","label":"github.com/apostrophecms/apostrophe","hostname":"github.com","tags":["PACKAGE"]}],"lineage":{"upstream":[],"downstream":[],"duplicates":[],"related":[]},"timeline":[{"kind":"published","date":"2026-10-20T17:25:44.574Z","label":"Published","detail":"Vulnerability first disclosed.","source":null},{"kind":"modified","date":"2026-10-20T17:43:12.999Z","label":"Last modified","detail":"Vulnerability information updated.","source":null}],"risk":{"score":28,"level":"medium","profile":"Default","thresholds":{"critical":75,"high":50,"medium":25,"low":10}},"meta":{"dataAsOf":"2026-10-22T11:45:22.266Z","stale":false,"partial":false}}