Summary
CVE-2026-72904 is a critical arbitrary file read and server-side request forgery (SSRF) vulnerability in Firecrawl, the tool that converts websites into LLM-ready markdown or structured data. Firecrawl versions prior to 2.11.32 mishandle user-supplied JSON schemas during extraction, allowing an authenticated attacker to disclose files and secrets from the extract worker. The issue carries a CVSS 4.0 base score of 9.3 (Critical).
Technical details
- Root cause: The extraction pipeline dereferences user-supplied JSON schemas in
apps/api/src/lib/extract/helpers/dereference-schema.tsusing@apidevtools/json-schema-ref-parserwith default resolver settings, which permits resolution of external and local file references. - Trigger conditions: An attacker submits a malicious schema containing a
$refinsidedefault,const, orenumfields — fields not traversed by AJV validation. Triggering a dereference error causes file contents to be included in persisted error messages returned through the extraction API. - Attack vector: Network. Requires authenticated API access (including free-tier accounts); no user interaction.
- Impact: Disclosure of arbitrary files readable by the extract worker process, exfiltration of environment variables and application secrets, and SSRF against internal or external HTTP(S) endpoints.
Affected software
- Firecrawl versions prior to 2.11.32 (including self-hosted/Docker deployments).
Severity
- CVSS 4.0 base score: 9.3 (Critical)
- Vector:
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Mitigation and recommended actions
- Immediate: Upgrade to Firecrawl 2.11.32 or later. The patch replaces the vulnerable dependency with an internal-only
$refresolver (commit053630f). Self-hosted users should re-pull the:latestimage or upgrade to 2.11.32. - If no patch can be applied: Restrict network access to the Firecrawl API to trusted clients, avoid exposing the instance directly to the internet, and rotate any secrets or environment variables that may have been accessible to the extract worker.
How IONIX identifies potentially affected assets
IONIX matches the following signals against data already collected when it crawled the asset; identifying the technology sends no request beyond that crawl.
- Raw response body:
"message": "Firecrawl API",SCRAPERS-JS: Hello, world! Fly.io www-authenticateresponse header:Bearer resource_metadata="https://www.firecrawl.dev/.well-known/oauth-protected-resource"

