Skip to content

GHSA-vr5f-2r24-w5hc BIT-parse-2026-35200 CVE-2026-35200

Parse Server: File upload Content-Type override via extension mismatch

Medium npm
Severity
0.0 / 10
Medium · CVSS 4.0
Exploit chance (EPSS)
0.16%
Chance of exploitation in the next 30 days. Higher than 5.37% of scored vulnerabilities.
Known exploited
No
Not in CISA's catalog
Weakness
CWE-436 Interpretation Conflict
Fix
9.7.1-alpha.4
Upgrade parse-server to this version or later

Description

Impact

A file can be uploaded with a filename extension that passes the file extension allowlist (e.g., .txt) but with a Content-Type header that differs from the extension (e.g., text/html). The Content-Type is passed to the storage adapter without consistency validation. Storage adapters that store and serve the provided Content-Type (such as S3 or GCS) serve the file with the mismatched Content-Type. The default GridFS adapter is not affected because it derives Content-Type from the filename at serving time.

Patches

The file upload now derives the Content-Type from the filename extension, overriding any user-provided Content-Type when the file has an extension.

Workarounds

Configure the storage adapter or CDN to derive Content-Type from the filename extension instead of using the stored Content-Type.

Affected versions

npm

PackageVulnerableFixed in
parse-server
>= 9.0.0, < 9.7.1-alpha.4
9.7.1-alpha.4
parse-server
< 8.6.73
8.6.73

How to fix

Move to the fixed version or later with your package manager, update the lockfile, and run your tests. If the package only arrives through another dependency, upgrade that dependency first. If none of its releases pulls a fixed version yet, force the version with your package manager's override.

parse-server npm → 9.7.1-alpha.4

npm
npm install parse-server@9.7.1-alpha.4
yarn
yarn add parse-server@9.7.1-alpha.4
pnpm
pnpm add parse-server@9.7.1-alpha.4

Severity breakdown

CVSS 4.0 0.0

CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N

Attack vector
Network
Attack complexity
Low
Attack requirements
Present
Privileges required
Low
User interaction
Passive
Confidentiality (vulnerable system)
None
Integrity (vulnerable system)
None
Availability (vulnerable system)
None
Confidentiality (subsequent systems)
Low
Integrity (subsequent systems)
Low
Availability (subsequent systems)
None

CVSS 3.1 5.4

CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N

Attack vector
Network
Attack complexity
Low
Privileges required
Low
User interaction
Required
Scope
Changed
Confidentiality
Low
Integrity
Low
Availability
None

Weakness

CWE-436: Interpretation Conflict

Product A handles inputs or steps differently than Product B, which causes A to perform incorrect actions based on its perception of B's state.

References

Timeline

  1. Published
  2. Last updated by the source
  3. Latest EPSS score
AdvisorySeverityWhy it's related
GHSA-r899-h629-j84r
Parse Server vulnerable to stored XSS via malformed Content-Type bypassing file upload extension blocklist
Low Also affects parse-server
GHSA-97pr-9hgg-3p8r
parse-server: LiveQuery discloses object data to a subscriber across an ACL read-access change
Low Also affects parse-server
GHSA-v8x7-r927-cc93
parse-server: Stored XSS via non-standard file extension bypassing file upload extension blocklist
Low Also affects parse-server
GHSA-cgxm-vr2f-6fj8
parse-server: Denial of service via exponential-time processing of deeply nested query operators
High Also affects parse-server
GHSA-wmwx-jr2p-4j4r
parse-server: Relation `$relatedTo` query bypasses `protectedFields` and owning-object ACL
Medium Also affects parse-server
GHSA-75v4-m273-5j49
parse-server: Endpoints `/login` and `/verifyPassword` disclose MFA secrets and protected fields when `_User` get is denied
Medium Also affects parse-server
GHSA-7wqv-xjf3-x35v
parse-server: Stored XSS via trailing-dot filename bypassing file upload extension blocklist
Low Also affects parse-server
GHSA-p84r-h6rx-f2xr
parse-server: Server option routeAllowList is bypassable through batch sub-requests
Medium Also affects parse-server
Is this in your code?

MergeHarbor checks every repository's dependencies against this database, ranks what matters by exploitability and reachability, routes it to the owning team and opens the fix pull request.

Check your repos with MergeHarbor