{"id":"GHSA-q3vj-96h2-gwvg","summary":"Parse Server vulnerable to SQL injection via `Increment` operation on nested object field in PostgreSQL","details":"### Impact\n\nA SQL injection vulnerability exists in the PostgreSQL storage adapter when processing `Increment` operations on nested object fields using dot notation (e.g., `stats.counter`). The `amount` value is interpolated directly into the SQL query without parameterization or type validation. An attacker who can send write requests to the Parse Server REST API can inject arbitrary SQL subqueries to read any data from the database, bypassing CLPs and ACLs.\n\nMongoDB deployments are not affected.\n\n### Patches\n\nThe fix adds type validation to reject non-number values and parameterizes the value in the SQL query instead of interpolating it.\n\n### Workarounds\n\nThere is no known workaround.\n\n### References\n\n- GitHub security advisory: https://github.com/parse-community/parse-server/security/advisories/GHSA-q3vj-96h2-gwvg\n- Fix Parse Server 9: https://github.com/parse-community/parse-server/releases/tag/9.6.0-alpha.3\n- Fix Parse Server 8: https://github.com/parse-community/parse-server/releases/tag/8.6.29","aliases":["BIT-parse-2026-31856","CVE-2026-31856"],"modified":"2026-03-13T13:11:00.470751Z","published":"2026-03-11T00:26:37Z","database_specific":{"github_reviewed_at":"2026-03-11T00:26:37Z","severity":"CRITICAL","cwe_ids":["CWE-89"],"github_reviewed":true,"nvd_published_at":"2026-03-11T18:16:24Z"},"references":[{"type":"WEB","url":"https://github.com/parse-community/parse-server/security/advisories/GHSA-q3vj-96h2-gwvg"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-31856"},{"type":"PACKAGE","url":"https://github.com/parse-community/parse-server"},{"type":"WEB","url":"https://github.com/parse-community/parse-server/releases/tag/8.6.29"},{"type":"WEB","url":"https://github.com/parse-community/parse-server/releases/tag/9.6.0-alpha.3"}],"affected":[{"package":{"name":"parse-server","ecosystem":"npm","purl":"pkg:npm/parse-server"},"ranges":[{"type":"SEMVER","events":[{"introduced":"9.0.0-alpha.1"},{"fixed":"9.6.0-alpha.3"}]}],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/03/GHSA-q3vj-96h2-gwvg/GHSA-q3vj-96h2-gwvg.json"}},{"package":{"name":"parse-server","ecosystem":"npm","purl":"pkg:npm/parse-server"},"ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"8.6.29"}]}],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/03/GHSA-q3vj-96h2-gwvg/GHSA-q3vj-96h2-gwvg.json"}}],"schema_version":"1.7.5","severity":[{"type":"CVSS_V4","score":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N"}]}