CVE-2024-22050 is a high-severity (CVSS 7.5) Path Traversal vulnerability in iodine. A fix is available for iodine — see the affected versions and patch details below.
Iodine Static File Server Path Traversal Vulnerability
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.
Exploitation and automatability from CISA’s SSVC triage for CVE-2024-22050.
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
iodineReal-time download stats are indexed for npm and PyPI packages. This vulnerability affects RubyGems packages — download data is not available via public APIs for these ecosystems.
Description
Impact
A path traversal vulnerability was detected in iodine's static file service. This vulnerability effects any application running iodine's static file server on an effected iodine version.
Malicious URL drafting may cause the static file server to attempt a response containing data from files that shouldn't be normally accessible from the public folder.
Patches
The vulnerability was patched in version 0.7.34. Please upgrade to the latest version.
Workarounds
A possible workaround would be to disable the static file service and it's X-Sendfile support, sending static files using nginx or a source code solution (sending the data dynamically).
However, it would be better to upgrade iodine to the latest version, as it also contains non-security related fixes.
For more information
If you have any questions or comments about this advisory:
- Email Boaz Segev
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| 💎RubyGems | iodine | all versions | 0.7.34bundle update iodine --conservative |
Affected Products
iodineboazsegevDetection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for iodine, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.
Fix
Update iodine to 0.7.34 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms CVE-2024-22050 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-2024-22050 in your dependencies?
Find it across RubyGems, including transitive dependencies.