Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as non-admin API client
-
DeliveryWrap forbidden LLMConfig in dict wrapper
-
ExploitPOST laundered config to /config/dump
-
ExecutionLeak SECRET_KEY and provider keys
-
ImpactForge admin JWT for full control
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A08:2025 - Software or Data Integrity Failures
ASVS 5.0
V1 - Encoding and Sanitization Safe deserialization, type allowlists
MITRE ATT&CK
2 techniques across 2 tactics: Execution, Initial Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires a running Crawl4AI server (0.9.0-0.9.3) in API/server mode with the /config/dump endpoint reachable, and the attacker must already possess a valid non-admin API client credential (PR:L). The specific prerequisite is the ability to submit config objects through the API: the untrusted-config gate can be bypassed by wrapping a forbidden LLMConfig inside a dict-type wrapper, with api_token set to an environment reference. Limiting factors: exploitation is NOT possible unauthenticated - a provisioned non-admin token is required - and depends on the deployment exposing the configuration endpoint; pure library/embedded usage without the hosted API server is not affected. Impact is maximized where SECRET_KEY and provider keys are present in the server environment, enabling admin JWT forgery. |
| Impact | This is a credible high-priority issue for anyone running Crawl4AI's server/API mode, though the signals are mixed. The input CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H) indicates low-complexity network exploitation requiring only low privileges (a non-admin API client), with high confidentiality and integrity impact - consistent with the description's account of secret leakage leading to admin JWT forgery. The dangerous element is the clear privilege-escalation chain: low-privileged access converts into full administrative control, which is worse than the raw 8.6 score suggests in isolation. However, exploitation is NOT unauthenticated: PR:L confirms the attacker must already hold a valid non-admin API credential, which bounds the exposure to environments that provision such accounts. No EPSS score, KEV listing, SSVC decision data, or POC availability was provided in the input, so exploitation likelihood cannot be quantified from these sources - the assessment rests on the CVSS vector and the detailed, mechanism-specific description from VulnCheck/GHSA. There is no conflict between the CVSS vector and the description; both agree on authenticated remote access with high C/I impact. Treat as a genuine priority for exposed Crawl4AI API deployments, but note that absent EPSS/KEV data, widespread opportunistic exploitation cannot be confirmed. |
| Exploit ScenarioDerived | An attacker holding a low-privilege (non-admin) Crawl4AI API token submits a configuration object with a forbidden LLMConfig laundered inside a dict-type wrapper, bypassing the untrusted-config gate. By setting api_token to an environment reference and posting it to /config/dump, the attacker reads SECRET_KEY and provider keys, then forges an admin JWT to gain full administrative control. No public exploit code was identified in the provided data, but the description details the exact bypass mechanism. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 12, 2026
Configuration-gate bypass in Crawl4AI 0.9.0 through 0.9.3 lets an authenticated but non-admin API client submit a laundered LLMConfig object through the server's configuration endpoint and read back environment-resolved secrets, including SECRET_KEY and provider API keys, which can then be used to forge admin JWTs. Exploitation requires Crawl4AI to be running in server/API mode with the /config/dump endpoint reachable and the attacker to already hold a provisioned non-admin API token (CVSS 4.0 base 8.6, vector PR:L), so pure library or embedded deployments are not affected; impact is highest where SECRET_KEY and provider keys are present in the server environment. Independent assessment flags this as a credible high-priority issue for hosted Crawl4AI deployments, with no public exploit identified at time of analysis and no CISA KEV listing.
RemediationAI
Upgrade to Crawl4AI 0.9.4 or later, which is the first release outside the 0.9.0-before-0.9.4 affected range and is the fix identified by the vendor advisory GHSA-5w5p-vcv6-mm3f; after upgrading, rotate every secret that a leaked configuration dump could have exposed, including SECRET_KEY (which invalidates existing signed JWTs and forces re-authentication of all clients, including administrators) and all LLM/provider API keys placed in the server environment. Where an immediate upgrade is not possible, restrict the configuration surface: block or filter access to the /config/dump endpoint at the reverse proxy or gateway and allow it only from trusted administrative networks or loopback, accepting that this breaks legitimate client-side config inspection tooling; do not issue non-admin API tokens to untrusted or low-trust clients, since the bypass requires an already-provisioned credential; and run the server with a least-privilege environment in which SECRET_KEY and provider keys are provided only to processes that genuinely need them (for example via a dedicated secret store scoped to the admin service), understanding that this reduces but does not eliminate the JWT-forgery impact because SECRET_KEY remains present in the main server process. Detection should focus on /config/dump requests carrying nested or wrapper-wrapped configuration objects with environment-reference tokens, since such requests are anomalous for normal clients.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The root cause maps to CWE-502 (Deserialization of Untrusted Data) in the sense that Crawl4AI's fetch/LLM configuration pipeline accepts structured objects supplied by API clients and materializes them into internal class instances that are expected to be gated by an 'untrusted config' check. In versions 0.9.0 to 0.9.3 that gate can be evaded by wrapping a forbidden object, specifically an LLMConfig, inside a dict-type wrapper so that the type inspection performed by the gate sees an innocuous mapping rather than the restricted class. Because LLMConfig supports an api_token field whose value can be an environment-variable reference, a wrapped and laundered config survives validation, then resolves the referenced variable on the server side when the configuration is dumped back to the caller via /config/dump. That resolution path discloses SECRET_KEY and provider API keys held in the server environment, and because SECRET_KEY underpins Crawl4AI's JWT signing, disclosure of it enables the attacker to mint a token with admin claims. Affected artifact per the CPE is cpe:2.3:a:unclecode:crawl4ai:*:*:*:*:*:*:*:* covering the 0.9.x line prior to 0.9.4; the underlying technology stack is the Python-based Crawl4AI crawling framework running in its hosted API/server mode, where request-supplied configuration objects cross a trust boundary that the untrusted-config gate is supposed to enforce.
Know when Crawl4ai gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
Authenticated non-admin API access gives PR:L with low-complexity network exploitation; secret leakage yields C:H and admin JWT forgery yields I:H, with no availability impact (A:N).
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
Crawl4AI from 0.9.0 before 0.9.4 contains an untrusted-config gate bypass that allows non-admin API clients to construct forbidden config objects by wrapping them in dict-type wrappers. Attackers can send a laundered LLMConfig with api_token set to an env reference via /config/dump to read SECRET_KEY and provider keys, enabling admin JWT forgery.
Executive ViewAI
Crawl4AI versions 0.9.0 through 0.9.3 running in server/API mode are vulnerable to a high-severity configuration bypass (CVE-2026-109237) that enables an authenticated non-admin API client to extract environment secrets and forge administrative tokens. This could lead to unauthorized administrative access and compromise of sensitive data and systems. Although no public exploit has been identified, organizations with exposed Crawl4AI API deployments should act promptly to mitigate risk, as no vendor patch is currently available.
No vendor-released patch identified at time of analysis; interim mitigations include restricting access to the /config/dump endpoint, rotating SECRET_KEY and provider API keys, auditing and minimizing non-admin API tokens, disabling server/API mode if not required, and monitoring for unusual config dump requests.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Insecure deserialization occurs when an application converts serialized data (a stream of bytes representing an object's state) back into a living object without proper validation.
Remote code execution in Crawl4AI Docker API before 0.8.0 via hooks parameter. The /crawl endpoint accepts Python code i
Authentication bypass in Crawl4AI Docker API server (versions prior to 0.8.7) allows remote unauthenticated attackers to
Arbitrary local file disclosure in Crawl4AI's Docker API (versions before 0.8.0) lets unauthenticated remote attackers r
Remote code execution in Crawl4AI's Docker API server (versions prior to 0.9.0) lets unauthenticated attackers run arbit
Arbitrary file write in Crawl4AI (the open-source LLM-friendly web crawler by unclecode) before version 0.9.0 lets a mal
Arbitrary file write in Crawl4AI Docker API server before 0.8.8 lets unauthenticated remote attackers escape the ALLOWED
Arbitrary JavaScript execution in Crawl4AI's Docker API server (versions before 0.8.7) lets remote attackers submit code
Server-side request forgery in Crawl4AI's Docker API server (versions before 0.8.7) allows remote unauthenticated attack
Server-side request forgery in Crawl4AI (unclecode) versions 0.7.0 through 0.9.3 lets unauthenticated, remote API client
Server-side request forgery in Crawl4AI before 0.8.7 allows unauthenticated remote attackers to coerce the server into f
Crawl4AI <=0.4.247 is vulnerable to SSRF in /crawl4ai/async_dispatcher.py. Rated critical severity (CVSS 9.1), this vuln
Arbitrary file write in Crawl4AI's Docker API server (versions before 0.8.7) lets remote unauthenticated attackers overw
EUVD-2026-97681
GHSA-r6v9-2q53-jfjp
NVD
CVE.org
EPSS
Exploit-DB