Chainlit checked a path-scoped MCP URL allowlist before downstream servers normalized semicolon-separated URL path parameters, allowing a traversal-like segment to pass one representation and reach another path. CVE-2026-120492 demonstrates path-policy bypass on the same approved origin under particular backend parsing semantics. It does not demonstrate an…
Inspect the ClaimsCase · DiggingBeagle record
Chainlit MCP URL policy was bypassed through semicolon path normalization
Chainlit checked a path-scoped MCP URL allowlist before downstream servers normalized semicolon-separated URL path parameters, allowing a traversal-like segment to pass one representation and reach another path. CVE-2026-120492 demonstrates path-policy bypass on the same approved origin under particular backend parsing semantics.
Public disclosure: Nov 2, 2026
Reported security vulnerability; exploitation prerequisites and tested version scope matter. No real-world exploitation is established unless separately reported.
Assessment profile
Assessment method- Setting
- research demonstration
- Exploitation
- demonstrated
- Evidence
- Grade C
- Remediation
- mitigation available
- AI role
- AGAINST AI
Basis and provenance
research demonstration; demonstrated. The cited primary disclosure supports the specific sequence and boundaries described here: Agent or client provides an MCP URL containing a semicolon path segment under an allowed origin. The evidence does not independently establish consequences beyond the record's supported outcome; a numerical impact band cannot be justified from the available evidence. Evidence grade C reflects the source attribution and independent verification limits.
Assessed Nov 7, 2026 using diggingbeagle.assessment/1.
Evidence basis: CLM-DB07-036-OUTCOME · CLM-DB07-036-MECHANISM · Advisory: Chainlit MCP allowed URL prefix bypass through semicolon normalization
At a glance
Validate the effective URL as the recipient interprets it, or enforce authority at the upstream application router.
Read the implicationsDoes not imply arbitrary new hostname or real secret theft; no verified fixed version; needs interpreter mismatch.
Limits and uncertaintyFull account
Chainlit checked a path-scoped MCP URL allowlist before downstream servers normalized semicolon-separated URL path parameters, allowing a traversal-like segment to pass one representation and reach another path.
CVE-2026-120492 demonstrates path-policy bypass on the same approved origin under particular backend parsing semantics. It does not demonstrate an arbitrary-host connection or confirmed credential theft.
This is a mismatch between a policy parser and the eventual HTTP recipient. Chainlit evaluates a configured path prefix as written, while another server can interpret a semicolon as a path-parameter separator and remove the surrounding traversal-like component. Under those parsing rules, the destination can be a different protected path on the same host even though the URL passed the allowlist. The reported configuration involves path-scoped MCP allowed_urls; it is not evidence of arbitrary-domain SSRF. Defenders must compare the effective URL accepted by the backend with the route the policy authorized, or enforce authorization again inside the receiving service.
An allowlist comparison has to apply to the destination the recipient will actually interpret. A semicolon-bearing path can remain inside the apparent prefix for one parser, then resolve outside it when a downstream server treats a segment as a parameter. This is a path-scope failure on an otherwise allowed host, not proof that an arbitrary external hostname can be contacted. A regression should test both the validation representation and the backend's resolved route; checking only the original URL string repeats the vulnerable assumption.
Mechanism and trust boundary
- 01
Agent or client provides an MCP URL containing a semicolon path segment under an allowed origin.
- 02
Chainlit accepts the unnormalized string against its configured allowed path prefix.
- 03
A downstream server normalizes the segment differently and serves a path outside the intended approved prefix.
Claims & evidence
CLM-DB07-036-OUTCOMECVE-2026-120492 demonstrates path-policy bypass on the same approved origin under particular backend parsing semantics. It does not demonstrate an arbitrary-host connection or confirmed credential theft.supported
Basis: reported finding
- supportsAdvisory: Chainlit MCP allowed URL prefix bypass through semicolon normalizationprimary disclosure
GHSA-xhx7-9vjr-p2h8; validate_mcp_url and semicolon paths
CLM-DB07-036-MECHANISMChainlit checked a path-scoped MCP URL allowlist before downstream servers normalized semicolon-separated URL path parameters, allowing a traversal-like segment to pass one representation and reach another path.supported
Basis: reported finding
- supportsAdvisory: Chainlit MCP allowed URL prefix bypass through semicolon normalizationprimary disclosure
GHSA-xhx7-9vjr-p2h8; validate_mcp_url and semicolon paths
Implications
Validate the effective URL as the recipient interprets it, or enforce authority at the upstream application router.
Unknowns and contradictions
- Does not imply arbitrary new hostname or real secret theft; no verified fixed version; needs interpreter mismatch.
Sources and citation
Material revision history
- Nov 7, 2026 · Published version · first publication · revision 227