{"id":"GHSA-p6c5-mjgj-m4rm","kind":"vulnerability","aliases":["GHSA-p6c5-mjgj-m4rm"],"related":[],"title":"Duplicate Advisory: Parse Server vulnerable to stored XSS via malformed Content-Type bypassing file upload extension blocklist","description":"### Duplicate Advisory\nThis advisory has been withdrawn because it is a duplicate of GHSA-r899-h629-j84r. This link is maintained to preserve external references.\n\n### Original Description\nParse Server is affected by a stored cross-site scripting (XSS) vulnerability in versions >= 9.0.0, < 9.10.0-alpha.2 and <= 8.6.83. When an uploaded file's extension is not recognized by the mime package, Parse Server preserves the client-supplied Content-Type. A malformed Content-Type that is not a valid type/subtype media type (e.g., 'image', 'image/', or 'image//svg+xml') bypasses the fileUpload.fileExtensions blocklist and is stored unchanged. On storage adapters that persist and serve the uploaded Content-Type (such as Amazon S3, Google Cloud Storage, or Azure Blob Storage), a browser cannot parse the malformed value and falls back to MIME-sniffing; a file whose body begins with HTML is rendered as HTML, executing embedded script in the application's origin against other users who open the file URL. The default GridFS storage adapter is not affected. Fixed in 9.10.0-alpha.2 and 8.6.84.","summary":"Parse Server stores a client-supplied Content-Type for uploads whose extension the mime package does not recognize, so a malformed type bypasses the fileUpload.fileExtensions blocklist. An attacker can upload an HTML file that the browser renders and runs in the application's origin when other users open its URL.","severity":"low","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[{"name":"parse-server","fixed":[],"affected":">= 9.0.0, < 9.10.0-alpha.2","ecosystem":"npm"},{"name":"parse-server","fixed":[],"affected":"<= 8.6.83","ecosystem":"npm"}],"ecosystems":["npm"],"tags":["cwe-434","file-uploads","node","package","parse-server","self-hosted"],"not_affected_if":["gridfs-adapter","managed-hosting"],"how_to_check":"- Check the installed version with `npm ls parse-server`.\n- Check whether the storage adapter is S3, Google Cloud Storage or Azure Blob rather than the default GridFS adapter.\n- Check whether `fileUpload.fileExtensions` is configured.","fix":"- `parse-server` 9.x: move to `9.10.0-alpha.2` or later.\n- `parse-server` 8.x: move to `8.6.84` or later.","status":"withdrawn","published_at":"2026-07-11T15:30:23+00:00","first_seen_at":"2026-10-29T16:33:51+00:00","triaged_at":"2026-10-29T16:35:37+00:00","updated_at":"2026-10-29T16:35:37+00:00","category":"package","confidence":0.6,"triage":{"at":"2026-10-29T16:35:37Z","model":"claude-haiku-5-5","output":{"fix":"- `parse-server` 9.x: move to `9.10.0-alpha.2` or later.\n- `parse-server` 8.x: move to `8.6.84` or later.","reach":"internet","title":"Parse Server: malformed upload Content-Type lets uploaded files run scripts","impact":"medium","summary":"Parse Server stores a client-supplied Content-Type for uploads whose extension the mime package does not recognize, so a malformed type bypasses the fileUpload.fileExtensions blocklist. An attacker can upload an HTML file that the browser renders and runs in the application's origin when other users open its URL.","audience":"developers","category":"package","nicknames":[],"who_cares":["parse-server","node","self-hosted","file-uploads"],"confidence":0.6,"fix_status":"available","needs_auth":"unknown","worst_case":"Stored script runs in the application's origin for other users","analyst_note":"","how_to_check":"- Check the installed version with `npm ls parse-server`.\n- Check whether the storage adapter is S3, Google Cloud Storage or Azure Blob rather than the default GridFS adapter.\n- Check whether `fileUpload.fileExtensions` is configured.","plain_action":"","needs_analyst":false,"not_affected_if":["gridfs-adapter","managed-hosting"],"who_is_affected":"Applications that run parse-server with a file storage adapter that persists and serves the uploaded Content-Type, such as S3, Google Cloud Storage or Azure Blob Storage. The default GridFS adapter is not affected. The advisory was withdrawn as a duplicate of GHSA-r899-h629-j84r, so the sources point there for the same issue.","user_interaction":"yes","needs_special_setup":"yes","severity_if_unknown":"unknown"},"cost_usd":0.000764,"input_tokens":4529,"output_tokens":622,"severity_before":"low"},"analyst_status":null,"analyst_note":null,"search":"'-434':36B '/svg':189C '8.6.83':147C '8.6.84':276C '9.0.0':143C '9.10.0':144C,273C 'adapt':201C,267C 'advisori':2A,101C,103C 'affect':131C,270C 'alpha.2':145C,274C 'amazon':213C 'applic':91B,252C 'attack':77B 'azur':219C 'back':231C 'begin':240C 'blob':220C 'blocklist':18A,75B,194C 'bodi':239C 'browser':85B,223C 'bypass':14A,72B,191C 'cannot':224C 'client':53B,166C 'client-suppli':52B,165C 'cloud':216C 'content':12A,56B,169C,174C,209C 'content-typ':11A,55B,168C,173C,208C 'cross':136C 'cross-sit':135C 'cwe':35B 'default':264C 'descript':127C 'duplic':1A,100C,111C 'e.g':184C 'embed':248C 'execut':247C 'extens':17A,61B,153C 'extern':124C 'fall':230C 'file':15A,38B,82B,151C,237C,261C 'file-upload':37B 'fileupload.fileextensions':74B,193C 'fix':271C 'ghsa':20A,25A,114C 'ghsa-p6c5-mjgj-m4rm':19A,24A 'ghsa-r899-h629-j84r':113C 'googl':215C 'gridf':265C 'h629':116C 'host':47B 'html':81B,242C,246C 'imag':185C,186C,188C 'j84r':117C 'link':119C 'm4rm':23A,28A 'maintain':121C 'malform':10A,70B,172C,227C 'media':182C 'mime':63B,159C,234C 'mime-snif':233C 'mjgj':22A,27A 'node':40B 'open':97B,259C 'origin':93B,126C,254C 'p6c5':21A,26A 'packag':41B,64B,160C 'pars':3A,43B,48B,128C,161C,225C 'parse':30A,33A 'parse-serv':42B 'parse-server':29A,32A 'persist':203C 'preserv':123C,163C 'r899':115C 'recogn':67B,156C 'refer':125C 'render':86B,244C 'run':88B 's3':214C 'script':138C,249C 'self':46B 'self-host':45B 'serv':205C 'server':4A,31A,34A,44B,49B,129C,162C 'site':137C 'snif':235C 'storag':200C,217C,221C,266C 'store':7A,50B,134C,197C 'suppli':54B,167C 'type':13A,57B,71B,170C,175C,183C,210C 'type/subtype':181C 'unchang':198C 'upload':16A,39B,59B,79B,150C,207C 'url':99B,262C 'user':96B,257C 'valid':180C 'valu':228C 'version':142C 'via':9A 'vulner':5A,140C 'whose':60B,238C 'withdrawn':106C 'xml':190C 'xss':8A,139C","nicknames":[],"mitigations":[],"who_affected":"Applications that run parse-server with a file storage adapter that persists and serves the uploaded Content-Type, such as S3, Google Cloud Storage or Azure Blob Storage. The default GridFS adapter is not affected. The advisory was withdrawn as a duplicate of GHSA-r899-h629-j84r, so the sources point there for the same issue.","tier":"C","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"developers","plain_action":null,"first_public_at":"2026-07-11T15:30:23+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"ghsa","external_id":"GHSA-p6c5-mjgj-m4rm","url":"https://github.com/advisories/GHSA-p6c5-mjgj-m4rm","severity":"low","published_at":"2026-07-11T15:30:23+00:00","modified_at":"2026-10-29T16:33:42+00:00","first_seen_at":"2026-10-29T16:33:51+00:00","fetched_at":"2026-10-29T16:33:51+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}