{"id":"GHSA-38m6-82c8-4xfm","revision":"69128f225b3743d1a524965e8c6aeaa7","records":[{"revision":"69128f225b3743d1a524965e8c6aeaa7","observedAt":"2026-10-24T13:17:17.793+00:00","statement":{"source":"osv","id":"GHSA-38m6-82c8-4xfm","aliases":["BIT-parse-2026-47138","CVE-2026-47138"],"title":"Parse Server: Pre-authentication denial of service via client version header regex backtracking","description":"### Impact\n\nAn unauthenticated attacker who knows a publicly-known Parse Application ID can submit a single HTTP request whose client SDK version field contains adversarial input that triggers polynomial backtracking in a request-header parser. The parsing runs before session authentication and before rate limiting on every `/parse/*` request, so the request consumes seconds to minutes of synchronous CPU on a Node.js worker before any access control evaluates it. A small number of concurrent requests can saturate a worker; a single large request via the body-field variant can pin a worker for minutes. Production deployments running the default configuration are affected.\n\n### Patches\n\nThe client SDK version capture and parsing have been removed entirely. The Parse JS SDK compatibility table defines a strict version-pinned contract between Parse Server and the Parse JS SDK; server-side adaptation to client SDK version is an obsolete pattern that contradicts that contract. The vulnerable parser, the `clientSDK` parameter that threaded its output through routers, and the legacy code path it gated are all removed. The `X-Parse-Client-Version` header and `_ClientVersion` JSON body field are now silently ignored on every request; supported Parse SDKs are unaffected.\n\n### Workarounds\n\nDeploy a reverse proxy or WAF in front of Parse Server that strips or strictly size-limits the `X-Parse-Client-Version` header AND the `_ClientVersion` field in JSON request bodies on every `/parse/*` route before forwarding to the server. A header-size cap alone is insufficient: the body-field variant requires inspection of JSON content. Upgrading to the patched version is the recommended remediation.","state":0,"publishedAt":"2026-05-23T00:11:25+00:00","modifiedAt":"2026-06-16T13:26:25.3209587+00:00","affected":[{"ecosystem":"npm","name":"parse-server","ranges":[{"type":"SEMVER","events":[{"kind":"introduced","version":"9.0.0"},{"kind":"fixed","version":"9.9.1-alpha.1"}]}],"versions":[],"rawVersionEvidence":null},{"ecosystem":"npm","name":"parse-server","ranges":[{"type":"SEMVER","events":[{"kind":"introduced","version":"0"},{"kind":"fixed","version":"8.6.77"}]}],"versions":[],"rawVersionEvidence":null}],"metrics":[{"system":"CVSS_V4","vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N","score":null,"severity":null},{"system":"Publisher rating","vector":null,"score":null,"severity":"HIGH"}],"references":["https://github.com/parse-community/parse-server/security/advisories/GHSA-38m6-82c8-4xfm","https://nvd.nist.gov/vuln/detail/CVE-2026-47138","https://github.com/parse-community/parse-server/pull/10463","https://github.com/parse-community/parse-server/pull/10464","https://github.com/parse-community/parse-server"],"sourceUrl":"https://github.com/advisories/GHSA-38m6-82c8-4xfm","license":"GitHub Advisory Database · CC-BY-4.0","key":"osv:GHSA-38m6-82c8-4xfm","identifiers":["GHSA-38m6-82c8-4xfm","BIT-parse-2026-47138","CVE-2026-47138"]},"retained":false,"historicalAffected":[]}],"coverage":[]}