CVE-2025-48957 is a high-severity (CVSS 7.5) CWE-23 vulnerability in astrbot. A fix is available for astrbot — see the affected versions and patch details below.
AstrBot Has Path Traversal Vulnerability in /api/chat/get_file
Exploitation Status
Proof-of-concept exploit code exists
- CISA’s SSVC triage found public proof-of-concept exploit code for this CVE, though no confirmed active exploitation.
- CISA assesses this as automatable — exploitation doesn’t require manual, per-target effort, which raises the odds of mass scanning and opportunistic attacks.
Exploitation and automatability from CISA’s SSVC triage for CVE-2025-48957.
EPSS Exploitation Probability
Probability of exploitation in the next 30 days, from FIRST.org EPSS.
How urgent is this, really
Where this sits among everything scored
Real-World Exposure
astrbotReal-time download stats are indexed for npm and PyPI packages. This vulnerability affects PyPI packages — download data is not available via public APIs for these ecosystems.
Description
Impact
This vulnerability may lead to:
- Information disclosure, such as API keys for LLM providers, account passwords, and other sensitive data.
Reproduce
Follow these steps to set up a test environment for reproducing the vulnerability:
-
Install dependencies and clone the repository:
pip install uv git clone https://github.com/AstrBotDevs/AstrBot && cd AstrBot uv run main.py -
Alternatively, deploy the program via pip:
mkdir astrbot && cd astrbot uvx astrbot init uvx astrbot run -
In another terminal, run the following command to exploit the vulnerability:
curl -L http://0.0.0.0:6185/api/chat/get_file?filename=../../../data/cmd_config.json
This request will read the cmd_config.json config file, leading to the leakage of sensitive data such as LLM API keys, usernames, and password hashes (MD5).
Patches
The vulnerability has been addressed in Pull Request #1676 and is included in versions >= v3.5.13. All users are strongly encouraged to upgrade to v3.5.13 or later.
Workarounds
Users can edit the cmd_config.json file to disable the dashboard feature as a temporary workaround. However, it is strongly recommended to upgrade to version v3.5.13 or later as soon as possible to fully resolve this issue.
References
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| 🐍PyPI | astrbot | ≥ 3.4.4&&< 3.5.13 | 3.5.13pip install --upgrade 'astrbot==3.5.13' |
Affected Products
astrbotastrbotDetection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for astrbot, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.
Fix
Update astrbot to 3.5.13 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms CVE-2025-48957 is resolved across your whole dependency graph.
Workarounds
Resolve every user-supplied path to its canonical form and reject anything that escapes the intended directory, and run the component under an account that has no read or write access outside the directory it legitimately serves.
Frequently Asked Questions
Is CVE-2025-48957 in your dependencies?
Find it across PyPI, including transitive dependencies.