Read the docs
TI-2026-29774 Aliases CVE-2026-41146GHSA-2x79-gwq3-vxxm

Uncontrolled resource consumption in boazsegev facil.io

Priority HIGH 77CWE-400Published · Updated

Key facts

Attack vector
Network
Privileges required
None
User interaction
None
Attack complexity
Low
Attack requirements
None
Impact type
Denial of service
Confidentiality · integrity · availability
None · None · High
Fix status
Fixed

Attack profile from CVSS 4.0 · CNA. Fix status from CNA and GitHub. Impact type from CWE-400.

Summary

facil.io is a C micro-framework for web applications. Prior to commit 5128747363055201d3ecf0e29bf0a961703c9fa0, `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 I 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. Commit 5128747363055201d3ecf0e29bf0a961703c9fa0 fixes the issue.

Why it matters now

Exploitation Proof of concept CISA SSVC · not in CISA KEV
EPSS 0.00365 30th percentileScored 2026-11-07
Fix Fixed facil.io (boazsegev): 5128747363055201d3ecf0e29bf0a961703c9fa0iodine (boazsegev): 0.7.59

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
Poc
Automatable
Yes
Technical impact
Partial

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
boazsegevfacil.iobefore 5128747363055201d3ecf0e29bf0a961703c9fa05128747363055201d3ecf0e29bf0a961703c9fa0Patch availableCNA
boazsegeviodinebefore 0.7.590.7.59Patch availableCNA
—iodine (RubyGems)up to 0.7.58—No fix listedGHSA-2x79-gwq3-vxxm
  • facil.io Vendorboazsegev Affected before 5128747363055201d3ecf0e29bf0a961703c9fa0 Fixed in 5128747363055201d3ecf0e29bf0a961703c9fa0 Patch available CNA
  • iodine Vendorboazsegev Affected before 0.7.59 Fixed in 0.7.59 Patch available CNA
  • iodine (RubyGems) Vendor— Affected up to 0.7.58 Fixed in — No fix listed GHSA-2x79-gwq3-vxxm

Remediation

  • Fix · CNA facil.io (boazsegev) Fixed in 5128747363055201d3ecf0e29bf0a961703c9fa0
  • Fix · CNA iodine (boazsegev) Fixed in 0.7.59

Timeline

  1. 2026-10-02 Threatist record created from CVE-2026-41146
  2. 2026-10-03 Alias added: GHSA-2x79-gwq3-vxxm

References

  • TI-2026-47389 facil.io 0.7.5 - 0.7.6 HTTP/1.1 Chunked Transfer Encoding Parser Crash DoS CVSS 4.0HIGH 8.7
  • TI-2026-47388 facil.io 0.6.0 - 0.7.6 Infinite Loop DoS via Multipart MIME Body Parser CVSS 4.0HIGH 8.7
  • TI-2026-47387 facil.io 0.6.0 - 0.7.6 Integer Underflow DoS via Multipart MIME Body Parser CVSS 4.0HIGH 8.7
  • TI-2026-13899 boazsegev facil.io Public Folder http.c http_sendfile2 path traversal CVSS 4.0MEDIUM 6.9
  • TI-2026-13880 boazsegev facil.io WebSocket Frame websocket_parser.h websocket_on_protocol_error input validation CVSS 4.0MEDIUM 6.9
  • TI-2024-14668 Iodine Static File Server Path Traversal Vulnerability CVSS 3.1HIGH 7.5

Sources