VDB
KO
MEDIUM

GHSA-v5hf-f4c3-m5rv

Parse Server vulnerable to stored XSS via file upload of HTML-renderable file types

Details

### Impact

An attacker can upload a file with a file extension or content type that is not blocked by the default configuration of the Parse Server `fileUpload.fileExtensions` option. The file can contain malicious code, for example JavaScript in an SVG or XHTML file. When the file is accessed via its URL, the browser renders the file and executes the malicious code in the context of the Parse Server domain. This is a stored Cross-Site Scripting (XSS) vulnerability that can be exploited to steal session tokens, redirect users, or perform actions on behalf of other users.

Affected file extensions and content types include `.svgz`, `.xht`, `.xml`, `.xsl`, `.xslt`, and content types `application/xhtml+xml` and `application/xslt+xml` for extensionless uploads. Uploading of `.html`, `.htm`, `.shtml`, `.xhtml`, and `.svg` files was already blocked.

### Patches

The fix adds the missing file extensions and content types to the default value of the `fileUpload.fileExtensions` server option.

### Workarounds

Configure the `fileUpload.fileExtensions` server option to block the affected file extensions and content types.

### References

- GitHub security advisory: https://github.com/parse-community/parse-server/security/advisories/GHSA-v5hf-f4c3-m5rv - Fix Parse Server 9: https://github.com/parse-community/parse-server/releases/tag/9.6.0-alpha.4 - Fix Parse Server 8: https://github.com/parse-community/parse-server/releases/tag/8.6.30

Are you affected?

Enter the version of the package you're using.

Affected packages

npm / parse-server
Introduced in: 9.0.0-alpha.1 Fixed in: 9.6.0-alpha.4
Fix npm install parse-server@9.6.0-alpha.4
npm / parse-server
Introduced in: 0 Fixed in: 8.6.30
Fix npm install parse-server@8.6.30

References