ZeroHour

CVE-2026-49846

niche

Path traversal in SignalWire libks HTTP URI canonicalization (clean_uri)

CVSS 3.1
7.5 high
EPSS
Published
()
Modified
AI analysis

SignalWire's libks support library, prior to version 2.0.11, fails to properly canonicalize HTTP request URIs in its clean_uri() function: when a URI path contains more segments than the internal canonicalization buffer can hold, the function silently passes the URI through with embedded '..' sequences left intact instead of rejecting it. An attacker can send a crafted HTTP request URI containing '..' sequences that, when the consuming application joins the parsed URI with a filesystem path, resolves outside the intended directory. The result is unauthorized file reads (confidentiality impact only, per the CVSS score) in any libks consumer that serves or maps HTTP URIs to the filesystem. Any product built on libks below 2.0.11 that uses its HTTP request parser in this way is affected; exploitation status is currently none known, with no public proof-of-concept and no listing in CISA's KEV.

What to do: Upgrade libks to version 2.0.11 or later and rebuild/redeploy any products that statically or dynamically link it. Audit downstream code paths that join parsed HTTP URIs with filesystem paths (e.g., static file handlers) to confirm they re-validate resolved paths. As an interim mitigation, front libks-based services with a reverse proxy or WAF rule that rejects request URIs containing '..' path segments.

Affected
SignalWire libksAll versions prior to 2.0.11
Estimated exposure
nicheunknown; plausibly thousands to low tens of thousands of embedded deployments at most (libks underpins SignalWire's C product stack), with only the subset… — libks is a low-level support library rather than a standalone product with tracked install counts, so exposure depends on downstream SignalWire C products (e.g., FreeSWITCH-ecosystem components) embedding and exposing the affected HTTP…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

libks provides foundational support for signalwire C products. Prior to version 2.0.11, `clean_uri()` in libks's HTTP request parser fails to reject URIs whose path has more segments than its internal canonicalization buffer can hold. The canonicalization step silently passes such URIs through with embedded ".." sequences intact, enabling path traversal in any consumer that later joins the URI with a filesystem path. Version 2.0.11 patches the issue.

Weakness
CWE-22, CWE-697
Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N

In the news

No ingested article mentions this CVE yet.