{"id":"GHSA-pj86-cfqh-vqx6","summary":"Withdrawn Advisory: express improperly controls modification of query properties","details":"## Withdrawn Advisory\nThis advisory has been withdrawn because it describes a correctness bug, not a vulnerability with real security impact. This link is maintained to preserve external references.\n\n## Original Description\n### Impact\n\nwhen using the extended query parser in express (`'query parser': 'extended'`), the `request.query` object inherits all object prototype properties, but these properties can be overwritten by query string parameter keys that match the property names\n\n\u003e [!IMPORTANT]  \n\u003e the extended query parser is the default in express 4; this was changed in express 5 which by default uses the simple query parser\n\n### Patches\n\nthe issue has been patched to ensure `request.query` is a plain object so `request.query` no longer has object prototype properties. this brings the default behavior of extended query parsing in line with express's default simple query parser\n\n### Workaround\n\nthis only impacts users using extended query parsing (`'query parser': 'extended'`), which is the default in express 4, but not express 5.  all users are encouraged to upgrade to the patched versions, but can otherwise work around this issue:\n\n#### provide `qs` directly and specify `plainObjects: true`\n\n```js\napp.set('query parser',\n  function (str) {\n    return qs.parse(str, {\n      plainObjects: true\n  });\n});\n```","aliases":["CVE-2024-51999"],"modified":"2026-07-17T21:07:35.185846682Z","published":"2025-12-01T18:59:17Z","withdrawn":"2025-12-02T15:11:19Z","database_specific":{"severity":"LOW","github_reviewed":true,"github_reviewed_at":"2025-12-01T18:59:17Z","nvd_published_at":"2025-12-01T21:15:49Z","cwe_ids":["CWE-915"]},"references":[{"type":"WEB","url":"https://github.com/expressjs/express/security/advisories/GHSA-pj86-cfqh-vqx6"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2024-51999"},{"type":"WEB","url":"https://github.com/expressjs/express/commit/2f64f68c37c64ae333e41ff38032d21860f22255"},{"type":"PACKAGE","url":"https://github.com/expressjs/express"},{"type":"WEB","url":"https://github.com/expressjs/express/releases/tag/4.22.0"},{"type":"WEB","url":"https://github.com/expressjs/express/releases/tag/v5.2.0"}],"affected":[{"package":{"name":"express","ecosystem":"npm","purl":"pkg:npm/express"},"ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"4.22.0"}]}],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2025/12/GHSA-pj86-cfqh-vqx6/GHSA-pj86-cfqh-vqx6.json"}},{"package":{"name":"express","ecosystem":"npm","purl":"pkg:npm/express"},"ranges":[{"type":"SEMVER","events":[{"introduced":"5.0.0"},{"fixed":"5.2.0"}]}],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2025/12/GHSA-pj86-cfqh-vqx6/GHSA-pj86-cfqh-vqx6.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V4","score":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N/E:U"}]}