{"id":"CVE-2026-76240","aliases":["EUVD-2026-62404","GHSA-9pc9-4crj-mhpj","GHSA-vgv8-r42h-hgr6"],"status":"published","title":"stigmem Postgres SQL Injection via Schema Identifier","description":"stigmem-node 0.9.0a1 interpolates Postgres backend schema identifiers into SQL strings without defensive quoting. In the affected code path the schema value is operator-controlled, but the unsafe pattern could allow SQL injection if a schema name were derived from tenant, request, or user input. Fixed in 0.9.0a2, which adds identifier quoting and validation. As a workaround, only configure schema names from trusted deployment configuration.","severity":{"version":"4.0","score":7.5,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:H/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","level":"high","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-09","score":0.00383,"percentile":0.32673,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-89"],"published":"2026-05-29T22:15:40Z","modified":"2026-10-28T02:30:32Z","fixes":[{"ecosystem":"PyPI","package":"stigmem-node","fixed_in":["0.9.0a2"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"PyPI","package":"stigmem-node","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.9.0a2"}]}]},{"source":"osv","ecosystem":"PyPI","package":"stigmem-node","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.9.0a2"}]}],"versions":["0.9.0a1"]}],"products":[{"vendor":"eidetic-labs","product":"stigmem"}],"references":[{"url":"https://github.com/eidetic-labs/stigmem/security/advisories/GHSA-9pc9-4crj-mhpj","tags":["vendor-advisory","advisory","web"]},{"url":"https://www.vulncheck.com/advisories/stigmem-postgres-sql-injection-via-schema-identifier","tags":["third-party-advisory","advisory"]},{"url":"https://github.com/eidetic-labs/stigmem/blob/v0.9.0a2/CHANGELOG.md#L14-L35","tags":["web"]},{"url":"https://github.com/eidetic-labs/stigmem/blob/v0.9.0a2/SECURITY.md","tags":["web"]},{"url":"https://github.com/eidetic-labs/stigmem/releases/tag/v0.9.0a2","tags":["web"]},{"url":"https://github.com/advisories/GHSA-9pc9-4crj-mhpj"},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-76240","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-vgv8-r42h-hgr6"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/76xxx/CVE-2026-76240.json","tags":["advisory"]},{"url":"https://github.com/eidetic-labs/stigmem","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2026-76240","title":"stigmem Postgres SQL Injection via Schema Identifier","description":"stigmem-node 0.9.0a1 interpolates Postgres backend schema identifiers into SQL strings without defensive quoting. In the affected code path the schema value is operator-controlled, but the unsafe pattern could allow SQL injection if a schema name were derived from tenant, request, or user input. Fixed in 0.9.0a2, which adds identifier quoting and validation. As a workaround, only configure schema names from trusted deployment configuration.","status":"published","published":"2026-08-19T14:02:18.061Z","modified":"2026-08-20T15:22:44.363Z","cvss":[{"version":"4.0","score":7.5,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:H/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","level":"high","assessor":"cna"}],"cwes":["CWE-89"],"updated_at":"2026-11-02T13:46:10.323375Z"}],"euvd":[{"id":"EUVD-2026-62404","description":"stigmem-node 0.9.0a1 interpolates Postgres backend schema identifiers into SQL strings without defensive quoting. In the affected code path the schema value is operator-controlled, but the unsafe pattern could allow SQL injection if a schema name were derived from tenant, request, or user input. Fixed in 0.9.0a2, which adds identifier quoting and validation. As a workaround, only configure schema names from trusted deployment configuration.","status":"published","published":"2026-08-19T14:02:18Z","modified":"2026-08-20T15:22:44Z","cvss":[{"version":"4.0","score":7.5,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:H/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","level":"high"}],"updated_at":"2026-11-02T18:01:40.093236Z"}],"ghsa":[{"id":"GHSA-9pc9-4crj-mhpj","title":"stigmem-node's Postgres schema identifier handling required defensive quoting","description":"### Impact\nPostgres backend schema identifiers were interpolated into SQL strings. In the reviewed code path the schema value is operator-controlled, but the pattern was unsafe if future call sites allowed tenant or request-controlled schema names. Impacted users are operators using the Postgres backend in affected versions.\n\n### Patches\nPatched in 0.9.0a2. Schema identifier handling now uses defensive identifier quoting and validation-oriented regression coverage.\n\n### Workarounds\nBefore upgrading, only configure Postgres schema names from trusted deployment configuration and do not derive schema names from request, tenant, header, or user input.\n\n### Upgrade\nUpgrade to the patched release:\n\n```bash\npip install --upgrade --pre stigmem-node\n```\n\nIf developers install through the Stigmem meta-package instead, they should use the matching extra for deployments, for example:\n\n```bash\npip install --upgrade --pre 'stigmem[node]'\n```\n\n### Resources\n- Release: https://github.com/eidetic-labs/stigmem/releases/tag/v0.9.0a2\n- Changelog: https://github.com/eidetic-labs/stigmem/blob/v0.9.0a2/CHANGELOG.md#L14-L35\n- Security policy and posture: https://github.com/eidetic-labs/stigmem/blob/v0.9.0a2/SECURITY.md","status":"published","published":"2026-05-29T22:15:40Z","modified":"2026-05-29T22:15:41Z","cvss":[{"version":"4.0","score":7.5,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:H/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","level":"high"}],"cwes":["CWE-89"],"updated_at":"2026-11-02T14:40:15.638885Z"},{"id":"GHSA-vgv8-r42h-hgr6","title":"stigmem-node 0.9.0a1 interpolates Postgres backend schema identifiers into SQL strings without...","description":"stigmem-node 0.9.0a1 interpolates Postgres backend schema identifiers into SQL strings without defensive quoting. In the affected code path the schema value is operator-controlled, but the unsafe pattern could allow SQL injection if a schema name were derived from tenant, request, or user input. Fixed in 0.9.0a2, which adds identifier quoting and validation. As a workaround, only configure schema names from trusted deployment configuration.","status":"published","published":"2026-08-19T15:32:36Z","modified":"2026-08-19T15:32:46Z","cvss":[{"version":"4.0","score":7.5,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:H/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","level":"high"}],"cwes":["CWE-89"],"updated_at":"2026-11-02T15:10:39.892418Z"}],"nvd":[{"id":"CVE-2026-76240","description":"stigmem-node 0.9.0a1 interpolates Postgres backend schema identifiers into SQL strings without defensive quoting. In the affected code path the schema value is operator-controlled, but the unsafe pattern could allow SQL injection if a schema name were derived from tenant, request, or user input. Fixed in 0.9.0a2, which adds identifier quoting and validation. As a workaround, only configure schema names from trusted deployment configuration.","status":"published","published":"2026-08-19T14:17:56.3Z","modified":"2026-09-11T18:28:15.52Z","cvss":[{"version":"4.0","score":7.5,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:H/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","level":"high","assessor":"secondary"}],"cwes":["CWE-89"],"updated_at":"2026-11-02T14:12:39.962615Z"}],"osv":[{"id":"CVE-2026-76240","title":"stigmem Postgres SQL Injection via Schema Identifier","description":"stigmem-node 0.9.0a1 interpolates Postgres backend schema identifiers into SQL strings without defensive quoting. In the affected code path the schema value is operator-controlled, but the unsafe pattern could allow SQL injection if a schema name were derived from tenant, request, or user input. Fixed in 0.9.0a2, which adds identifier quoting and validation. As a workaround, only configure schema names from trusted deployment configuration.","status":"published","published":"2026-08-19T14:02:18.061Z","modified":"2026-10-28T02:30:32.447369893Z","cvss":[{"version":"4.0","score":7.5,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:H/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","level":"high"}],"cwes":["CWE-89"],"updated_at":"2026-11-02T15:45:17.102988Z"},{"id":"GHSA-9pc9-4crj-mhpj","title":"stigmem-node's Postgres schema identifier handling required defensive quoting","description":"### Impact\nPostgres backend schema identifiers were interpolated into SQL strings. In the reviewed code path the schema value is operator-controlled, but the pattern was unsafe if future call sites allowed tenant or request-controlled schema names. Impacted users are operators using the Postgres backend in affected versions.\n\n### Patches\nPatched in 0.9.0a2. Schema identifier handling now uses defensive identifier quoting and validation-oriented regression coverage.\n\n### Workarounds\nBefore upgrading, only configure Postgres schema names from trusted deployment configuration and do not derive schema names from request, tenant, header, or user input.\n\n### Upgrade\nUpgrade to the patched release:\n\n```bash\npip install --upgrade --pre stigmem-node\n```\n\nIf developers install through the Stigmem meta-package instead, they should use the matching extra for deployments, for example:\n\n```bash\npip install --upgrade --pre 'stigmem[node]'\n```\n\n### Resources\n- Release: https://github.com/eidetic-labs/stigmem/releases/tag/v0.9.0a2\n- Changelog: https://github.com/eidetic-labs/stigmem/blob/v0.9.0a2/CHANGELOG.md#L14-L35\n- Security policy and posture: https://github.com/eidetic-labs/stigmem/blob/v0.9.0a2/SECURITY.md","status":"published","published":"2026-05-29T22:15:40Z","modified":"2026-08-20T04:04:12.485700057Z","cvss":[{"version":"4.0","score":7.5,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:H/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","level":"high"}],"cwes":["CWE-89"],"updated_at":"2026-11-02T15:46:43.875515Z"}]}}
