Parse Server: Cloud function validator bypass via prototype chain traversal
Parse Server is an open source backend that can be deployed to any infrastructure that can run Node.js. Prior to versions 8.6.67 and 9.7.0-alpha.11, an attacker can bypass Cloud Function validator access controls by appending "prototype.constructor" to the function name in the URL. When a Cloud Function handler is declared using the function keyword and its validator is a plain object or arrow function, the trigger store traversal resolves the handler through its own prototype chain while the validator store fails to mirror this traversal, causing all access control enforcement to be skipped. This allows unauthenticated callers to invoke Cloud Functions that are meant to be protected by validators such as requireUser, requireMaster, or custom validation logic. This issue has been patched in versions 8.6.67 and 9.7.0-alpha.11.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-34532
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 4 Nov 2026, 22:06 UTC · Revision 1
Source evidence
Parse Server: Cloud function validator bypass via prototype chain traversal
core-osv · Original sourcePublished 31 Mar 2026, 14:42 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.67 and 9.7.0-alpha.11, an attacker can bypass Cloud Function validator access controls by appending "prototype.constructor" to the function name in the URL. When a Cloud Function handler is declared using the function keyword and its validator is a plain object or arrow function, the trigger store traversal resolves the handler through its own prototype chain while the validator store fails to mirror this traversal, causing all access control enforcement to be skipped. This allows unauthenticated callers to invoke Cloud Functions that are meant to be protected by validators such as requireUser, requireMaster, or custom validation logic. This issue has been patched in versions 8.6.67 and 9.7.0-alpha.11.
osv:CVE-2026-34532
Complete source record
{
"id": "7ed9cf549e2a42dadc48f52e8c3a2cb9ba862b8e8b9e5ffdc080dcb244401ca6",
"url": "https://osv.dev/vulnerability/CVE-2026-34532",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Parse Server: Cloud function validator bypass via prototype chain traversal",
"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.67 and 9.7.0-alpha.11, an attacker can bypass Cloud Function validator access controls by appending \"prototype.constructor\" to the function name in the URL. When a Cloud Function handler is declared using the function keyword and its validator is a plain object or arrow function, the trigger store traversal resolves the handler through its own prototype chain while the validator store fails to mirror this traversal, causing all access control enforcement to be skipped. This allows unauthenticated callers to invoke Cloud Functions that are meant to be protected by validators such as requireUser, requireMaster, or custom validation logic. This issue has been patched in versions 8.6.67 and 9.7.0-alpha.11.",
"evidence": "osv:CVE-2026-34532",
"products": [],
"severity": "critical",
"structured": {
"id": "CVE-2026-34532",
"aliases": [
"BIT-parse-2026-34532",
"CVE-2026-34532",
"GHSA-vpj2-qq7w-5qq6"
],
"metrics": [
{
"type": "CVSS_V4",
"score": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/parse-community/parse-server",
"type": "GIT",
"events": [
{
"introduced": "0"
},
{
"fixed": "7e4b4c13f9554055588a7373f267bf21e8537016"
},
{
"introduced": "532a461d30a6ed4457839f2caf5f30d5abf51a55"
},
{
"fixed": "84ca53352fd2d91322e1a03c0c275709668a02b7"
},
{
"fixed": "4fc48cf28f22eea200d74d883505f485234a48d7"
},
{
"fixed": "dc59e272665644083c5b7f6862d88ce1ef0b2674"
}
],
"database_specific": {
"extracted_events": [
{
"cpe": "cpe:2.3:a:parseplatform:parse-server:*:*:*:*:*:node.js:*:*",
"range": [
{
"introduced": "0"
},
{
"fixed": "8.6.67"
}
],
"source": "CPE_RANGE"
},
{
"cpe": "cpe:2.3:a:parseplatform:parse-server:*:*:*:*:*:node.js:*:*",
"range": [
{
"introduced": "9.0.0"
},
{
"fixed": "9.7.0"
}
],
"source": "CPE_RANGE"
},
{
"range": [
{
"fixed": "4fc48cf28f22eea200d74d883505f485234a48d7"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "dc59e272665644083c5b7f6862d88ce1ef0b2674"
}
],
"source": "REFERENCES_COMMIT"
}
]
}
}
],
"versions": [
"9.6.1",
"8.6.66",
"9.7.0-alpha.10",
"8.6.65",
"9.7.0-alpha.9",
"8.6.64",
"9.7.0-alpha.8",
"8.6.63",
"9.7.0-alpha.7",
"8.6.62",
"9.7.0-alpha.6",
"9.7.0-alpha.5",
"9.7.0-alpha.4",
"9.7.0-alpha.3",
"9.7.0-alpha.2",
"9.7.0-alpha.1",
"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-34532.json"
}
}
],
"modified": "2026-10-28T02:30:40.171783677Z",
"provider": "osv",
"references": [
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/34xxx/CVE-2026-34532.json",
"https://github.com/parse-community/parse-server/security/advisories/GHSA-vpj2-qq7w-5qq6",
"https://nvd.nist.gov/vuln/detail/CVE-2026-34532",
"https://github.com/parse-community/parse-server/commit/4fc48cf28f22eea200d74d883505f485234a48d7",
"https://github.com/parse-community/parse-server/commit/dc59e272665644083c5b7f6862d88ce1ef0b2674",
"https://github.com/parse-community/parse-server/pull/10342",
"https://github.com/parse-community/parse-server/pull/10343"
],
"provider_metadata": {
"cwe_ids": [
"CWE-863"
],
"cna_assigner": "GitHub_M",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/34xxx/CVE-2026-34532.json"
}
},
"related_cves": [
{
"value": "CVE-2026-34532",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 507477,
"published_at": "2026-03-31T14:42:10.481+00:00"
}