Firecrawl
Firecrawl's MCP server discloses a high-severity local file read flaw, and the npm package has not shipped a confirmed fix
VulnCheck published CVE-2026-85606 on 2026-09-04 against Firecrawl's official MCP server: the firecrawl_parse tool accepted an unconstrained filePath argument with no directory containment check, letting a caller read credentials or environment files and have them uploaded into the model's context. The record lists version 3.24.0 and earlier as affected. A git tag, v3.24.1, exists in the repository, but its commit describes an unrelated change, the same unconfined path-resolution code is still present at that tag and on the main branch, the reporter's issue has sat open without a response since 2026-07-08, and the npm package firecrawl-mcp has not published a release past 3.24.0 as of this writing.
VulnCheck published CVE-2026-85606 on 2026-09-04 against
firecrawl-mcp-server, Firecrawl's
official MCP server. The firecrawl_parse tool accepts a filePath
argument to read a local file for parsing, but the argument was not
confined to any directory, so an absolute path or a traversal sequence
let a caller read sensitive files such as credentials or environment
variables, which the tool then uploaded and returned inside the model's
context. VulnCheck rated the flaw high, CVSS 3.1 7.5 and CVSS 4.0 8.7,
and lists version 3.24.0 and earlier as affected.
A confirmed fix could not be established. The CNA record's own reference
points at the source of src/index.ts at the git tag v3.24.1 in the
firecrawl-mcp-server repository, and the affected range ending at 3.24.0
implies that tag is the fix. But the commit that tag points to, dated
2026-08-26, describes an unrelated change ("Publish the renderer
deduplication fix from #386"), and the source at that same tag still
calls path.resolve(filePath) directly with no check confining the
result to an allowed directory, the pattern the advisory itself
describes as the vulnerability. The npm package firecrawl-mcp, which is
how the server is actually installed, has not published a release past
3.24.0 as of this fetch: the registry's latest tag is still the version
VulnCheck lists as affected.
The three dates sit far apart. The reporter's own issue on the
repository, #306, opened 2026-07-08, states the flaw was first reported
by email on 2026-06-05 with no response; the issue remained open with no
comments on 2026-09-15. VulnCheck's record followed on 2026-09-04. As of
2026-09-15 the main branch, last pushed 2026-09-14, still carries the
same two lines, path.resolve(filePath) followed by readFile(absPath),
so no fix date can be stated. Firecrawl publishes the server as a
first-party npm package and also hosts a remote endpoint at
mcp.firecrawl.dev. No GitHub-hosted security advisory exists on the
repository for this record; VulnCheck's CNA record and advisory page are
the only primary disclosure.
Related servers and clients
- Firecrawl MCP Server - server
Related publishers
How was this verified, and what are the sources?
Published · last verified · confidence 0.90.
- CVE-2026-85606 CNA record (VulnCheck) - "firecrawl-mcp-server 3.20.2 Arbitrary Local File Read via filePath ... contains an arbitrary local file read vulnerability in the firecrawl_parse tool that accepts unconstrained filePath arguments without directory containment validation"; affected through 3.24.0; CVSS 3.1 7.5 high, CVSS 4.0 8.7 high; datePublished 2026-09-04 - accessed
- VulnCheck advisory page - severity high, date 9/4/2026, CVSS 4.0 8.7, credits George Chen, describes the same mechanism and references the source blob at git tag v3.24.1 as its evidence link - accessed
- firecrawl/firecrawl-mcp-server source at git tag v3.24.1 - the firecrawl_parse handler still calls `path.resolve(filePath)` directly with no check that the resolved path stays under an allowed directory, the same pattern the advisory describes - accessed
- Commit fbcd8c7, tagged v3.24.1, dated 2026-08-26T07:38:09Z - commit message "release: 3.24.1, Publish the renderer deduplication fix from #386", unrelated to filePath handling - accessed
- npm registry JSON for firecrawl-mcp - dist-tags.latest is still 3.24.0, the version the CVE record lists as affected; no 3.24.1 has been published to the registry as of this fetch - accessed
- Repository issue #306, "Arbitrary local file read via firecrawl_parse (no path confinement) in firecrawl-mcp", opened 2026-07-08 by the reporter, fetched 2026-09-15 - opens "reported via email on 5 June 2026 - no response"; state open, zero comments - accessed
- src/index.ts on the main branch, fetched 2026-09-15 (repository last pushed 2026-09-14) - the parse handler still reads `const absPath = path.resolve(filePath); const buffer = await readFile(absPath);` with no containment check, the same two lines present at tag v3.24.1 - accessed