CVE-2026-50181 json
Langroid: Path traversal in the file tools allows read/write outside configured current directory
published 2026-07-02 4 mo ago modified 2026-07-14 3 mo ago also EUVD-2026-42763 , GHSA-fg23-3346-88f5 , PYSEC-2026-2578
- cvss
- 7.1
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.2%
- EPSS 0.2% chance of exploitation in 30 days, percentile 7%
- public exploits
- 0
- none known
Summary
Langroid is a framework for building large-language-model-powered applications. Prior to version 0.64.0, Langroid's `ReadFileTool` and `WriteFileTool` appear to treat `curr_dir` as the intended working-directory boundary for file operations. However, the tools only change the process working directory to `curr_dir` and then operate on the user-supplied `file_path` without resolving and enforcing that the final path remains inside `curr_dir`. As a result, a tool caller can supply path traversal sequences such as `../secret.txt` to read files outside the configured current directory, or `../written_by_tool.txt` to write files outside that directory. This can impact applications that expose Langroid file tools to an LLM agent, user-controlled tool call, or delegated coding/documentation agent while relying on `curr_dir` to restrict file access to a project/workspace directory. Version 0.64.0 patches the issue.
Patch / fix
CISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- no
- Technical impact
- total
- Assessed
- 3 mo ago
Exploit prediction
0.18% chance of exploitation in the next 30 days, higher than 7% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- github.com https://github.com/langroid/langroid/security/advisories/GHSA-fg23-3346-88f5 referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 7.1 | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N |
| GitHub | 3.1 | 7.1 | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N |
| OSV | 3.1 | 7.1 | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | langroid | <0.64.0 |
0.64.0 |
Affected products
- langroid langroid
Classification
References
-
github.com
/langroid/langroid/commit/56e2756ecab70a70a7e6edbee2f2187b8484683e
web
-
github.com
/langroid/langroid/security/advisories/GHSA-fg23-3346-88f5
exploit, web
-
github.com
/langroid/langroid
package
-
pypi.org
/project/langroid
package
-
github.com
/advisories/GHSA-fg23-3346-88f5
advisory
-
nvd.nist.gov
/vuln/detail/CVE-2026-50181
advisory
Sources
- CVE List CVE-2026-50181
- GitHub Advisory GHSA-fg23-3346-88f5
- NVD CVE-2026-50181
- OSV PYSEC-2026-2578
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.