CVE-2026-41146: Uncontrolled resource consumption and loop with unreachable exit condition in facil.io and downstream iodine ruby gem
(updated )
fio_json_parse can enter an infinite loop when it encounters a nested JSON value starting with i or I. The process spins in user space and pegs one CPU core at ~100% instead of returning a parse error. Because iodine vendors the same parser code, the issue also affects iodine when it parses attacker-controlled JSON.
The smallest reproducer found is [i. The quoted-value form that originally exposed the issue, [""i, reaches the same bug because the parser tolerates missing commas and then treats the trailing i as the start of another value.
References
- github.com/advisories/GHSA-2x79-gwq3-vxxm
- github.com/boazsegev/facil.io/commit/5128747363055201d3ecf0e29bf0a961703c9fa0
- github.com/boazsegev/facil.io/security/advisories/GHSA-2x79-gwq3-vxxm
- github.com/rubysec/ruby-advisory-db/blob/master/gems/iodine/CVE-2026-41146.yml
- nvd.nist.gov/vuln/detail/CVE-2026-41146
Code Behaviors & Features
Detect and mitigate CVE-2026-41146 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →