CVE-2022-29180 is a medium-severity (CVSS 5.9) Server-Side Request Forgery (SSRF) vulnerability in github.com/charmbracelet/charm. A fix is available for github.com/charmbracelet/charm — see the affected versions and patch details below.
Charm vulnerable to server-side request forgery (SSRF)
Exploitation Status
No confirmed exploitation observed yet
- CISA’s own triage has not observed active exploitation or public proof-of-concept code for this CVE as of its last assessment.
Exploitation and automatability from CISA’s SSVC triage for CVE-2022-29180.
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
github.com/charmbracelet/charmReal-time download stats are indexed for npm and PyPI packages. This vulnerability affects Go packages — download data is not available via public APIs for these ecosystems.
Description
We've discovered a vulnerability in which attackers could forge HTTP requests to manipulate the charm data directory to access or delete anything on the server. This has been patched in https://github.com/charmbracelet/charm/commit/3c90668f955c7ce5ef721e4fc9faee7053232fd3 and is available in release v0.12.1. We recommend that all users running self-hosted charm instances update immediately.
This vulnerability was found in-house and we haven't been notified of any potential exploiters.
Additional notes
- Encrypted user data uploaded to the Charm server is safe as Charm servers cannot decrypt user data. This includes filenames, paths, and all key-value data.
- Users running the official Charm Docker images are at minimal risk because the exploit is limited to the containerized filesystem.
For more information
If you have any questions or comments about this advisory:
- Open a discussion
- Email us at [email protected]
- Chat with us on Slack
<a href="https://charm.sh/"><img alt="the Charm logo" src="https://stuff.charm.sh/charm-badge.jpg" width="400"></a>
Charm热爱开源 • Charm loves open source
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| 🐹Go | github.com/charmbracelet/charm | ≥ 0.9.0&&< 0.12.1 | 0.12.1go get github.com/charmbracelet/charm@v0.12.1 |
Affected Products
charmcharmDetection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for github.com/charmbracelet/charm, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.
Fix
Update github.com/charmbracelet/charm to 0.12.1 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms CVE-2022-29180 is resolved across your whole dependency graph.
Workarounds
Restrict outbound requests from the affected component to an allowlist of hosts, block access to link-local and internal address ranges at the network layer, and require authentication on internal services so a forged request cannot reach them unauthenticated.
Frequently Asked Questions
Is CVE-2022-29180 in your dependencies?
Find it across Go, including transitive dependencies.