Parse Server: Pre-authentication denial of service via client version header regex backtracking
Parse Server is an open source backend that can be deployed to any infrastructure that can run Node.js. Prior to versions 8.6.77 and 9.9.1-alpha.1, an 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. This issue has been patched in versions 8.6.77 and 9.9.1-alpha.1.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-47138
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 3 Nov 2026, 01:13 UTC · Revision 1
Source evidence
Parse Server: Pre-authentication denial of service via client version header regex backtracking
core-osv · Original sourcePublished 12 Jun 2026, 18:22 UTC
Parse Server is an open source backend that can be deployed to any infrastructure that can run Node.js. Prior to versions 8.6.77 and 9.9.1-alpha.1, an 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. This issue has been patched in versions 8.6.77 and 9.9.1-alpha.1.
osv:CVE-2026-47138
Complete source record
{
"id": "64a2563e705e6aef6e07630fea218786ba478029f1d52f1e5973df4fd5d8641f",
"url": "https://osv.dev/vulnerability/CVE-2026-47138",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Parse Server: Pre-authentication denial of service via client version header regex backtracking",
"summary": "Parse Server is an open source backend that can be deployed to any infrastructure that can run Node.js. Prior to versions 8.6.77 and 9.9.1-alpha.1, an 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. This issue has been patched in versions 8.6.77 and 9.9.1-alpha.1.",
"evidence": "osv:CVE-2026-47138",
"products": [],
"severity": "high",
"structured": {
"id": "CVE-2026-47138",
"aliases": [
"BIT-parse-2026-47138",
"CVE-2026-47138",
"GHSA-38m6-82c8-4xfm"
],
"metrics": [
{
"type": "CVSS_V4",
"score": "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"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/parse-community/parse-server",
"type": "GIT",
"events": [
{
"introduced": "0"
},
{
"fixed": "baa153c49083a57f00790c3e418cd5d45961113f"
},
{
"introduced": "532a461d30a6ed4457839f2caf5f30d5abf51a55"
},
{
"fixed": "216cf8335b1612c6315cbb24cc9ecacfa94d7c66"
}
],
"database_specific": {
"extracted_events": [
{
"range": [
{
"introduced": "0"
},
{
"fixed": "8.6.77"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"range": [
{
"introduced": "9.0.0"
},
{
"fixed": "9.9.1-alpha.1"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
}
]
}
}
],
"versions": [
"9.9.0",
"8.6.76",
"9.8.0",
"8.6.75",
"9.7.0",
"8.6.74",
"8.6.73",
"8.6.72",
"8.6.71",
"8.6.70",
"9.6.1",
"8.6.69",
"8.6.68",
"8.6.67",
"8.6.66",
"8.6.65",
"8.6.64",
"8.6.63",
"8.6.62",
"9.6.0",
"9.5.1",
"8.6.61",
"8.6.60",
"8.6.59",
"8.6.58",
"8.6.57",
"8.6.56",
"8.6.55",
"8.6.54",
"8.6.53",
"8.6.52",
"8.6.51",
"8.6.50",
"8.6.49",
"8.6.48",
"8.6.47",
"8.6.46",
"8.6.45",
"8.6.44",
"8.6.43",
"8.6.42",
"8.6.41",
"8.6.40",
"8.6.39",
"8.6.38",
"8.6.37",
"8.6.36",
"8.6.35",
"8.6.34",
"8.6.33",
"8.6.32",
"8.6.31",
"8.6.30",
"8.6.29",
"8.6.28",
"8.6.27",
"8.6.26",
"8.6.25",
"8.6.24",
"8.6.23",
"8.6.22",
"8.6.21",
"8.6.20",
"8.6.19",
"8.6.18",
"8.6.17",
"8.6.16",
"8.6.15",
"8.6.14",
"8.6.13",
"9.5.0",
"8.6.12",
"8.6.11",
"9.4.1",
"8.6.10",
"8.6.9",
"8.6.8",
"8.6.7",
"8.6.6",
"8.6.5",
"8.6.4",
"9.4.0",
"8.6.3",
"9.3.1",
"9.3.0",
"8.6.2",
"9.2.0",
"9.1.1",
"9.1.0",
"8.6.1",
"9.0.0",
"8.6.0",
"8.5.0",
"8.4.0",
"8.3.0",
"8.2.5",
"8.2.4",
"8.2.3",
"8.2.2",
"8.2.1",
"8.2.0",
"8.1.0",
"8.0.2",
"8.0.1",
"8.0.0",
"7.4.0",
"7.3.0",
"7.2.0",
"7.1.0",
"7.0.0",
"6.4.0",
"6.3.1",
"6.3.0",
"6.2.2",
"6.2.1",
"6.2.0",
"6.1.0",
"6.0.0",
"5.4.0",
"5.3.3",
"5.3.2",
"5.3.1",
"5.3.0",
"5.2.8",
"5.2.7",
"5.2.6",
"5.2.5",
"5.2.4",
"5.2.3",
"5.2.2",
"5.2.1",
"5.2.0",
"5.1.1",
"5.1.0",
"5.0.0",
"5.0.0-alpha.1",
"4.5.0",
"4.4.0",
"4.3.0",
"4.2.0",
"4.1.0",
"4.0.2",
"4.0.1",
"4.0.0",
"3.10.0",
"3.9.0",
"3.8.0",
"3.7.2",
"3.7.1",
"3.7.0",
"3.6.0",
"3.5.0",
"3.4.0",
"3.4.1",
"3.3.0",
"3.2.3",
"3.2.2",
"3.2.1",
"3.2.0",
"3.1.3",
"3.1.2",
"3.1.1",
"3.1.0",
"3.0.0",
"2.8.2",
"2.8.0",
"2.7.4",
"2.7.3",
"2.7.2",
"2.7.1",
"2.7.0",
"2.6.5",
"2.6.4",
"2.6.3",
"2.6.2",
"2.6.1",
"2.6.0",
"2.5.3",
"2.5.2",
"2.5.1",
"2.5.0",
"2.4.2",
"2.4.1",
"2.4.0",
"2.3.8",
"2.3.7",
"2.3.6",
"2.3.5",
"2.3.4",
"2.3.3",
"2.3.2",
"2.3.1",
"2.2.25",
"2.2.25-beta.1",
"2.2.24",
"2.2.23",
"2.2.22",
"2.2.21",
"2.2.20",
"2.2.19",
"2.2.18",
"2.2.17",
"2.2.16",
"2.2.15",
"2.2.14",
"2.2.13",
"2.2.12",
"2.2.11",
"2.2.10",
"2.2.9",
"2.2.8",
"2.2.7",
"2.2.6",
"2.2.5",
"2.2.4",
"2.2.3",
"2.2.2",
"2.2.1",
"2.2.0",
"2.1.6",
"2.1.5",
"2.1.4",
"2.1.3",
"2.1.2",
"2.1.1",
"2.1.0",
"2.0.8",
"2.0.7",
"2.0.3",
"2.0.6",
"2.0.5",
"2.0.4",
"2.0.2",
"2.0.1",
"2.0.0"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-47138.json"
}
}
],
"modified": "2026-10-28T02:30:24.883950225Z",
"provider": "osv",
"references": [
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/47xxx/CVE-2026-47138.json",
"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"
],
"provider_metadata": {
"cwe_ids": [
"CWE-1333"
],
"cna_assigner": "GitHub_M",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/47xxx/CVE-2026-47138.json"
}
},
"related_cves": [
{
"value": "CVE-2026-47138",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 491492,
"published_at": "2026-06-12T18:22:02.751+00:00"
}