Description
Improper Encoding or Escaping of Output vulnerability in ninenines cowlib allows Link header directive smuggling via unescaped special characters in cow_link:link/1.
cow_link:do_link/1 in cowlib interpolates the target URI, rel value, and attribute keys directly into the serialized Link: header value without escaping or token-grammar validation. A > byte in target prematurely closes the URI slot, allowing an attacker to append additional link entries with attacker-chosen rel directives. A " or \ in rel escapes the quoted string and opens new parameters. Any byte — including whitespace, =, and " — in an attribute key is emitted verbatim. Because browsers act on Link: directives such as rel="preconnect", rel="preload", and rel="prerender", an attacker who can influence these fields in an application that round-trips parsed Link headers through cow_link:link/1 can force victim browsers to make out-of-band connections to attacker-controlled origins.
This issue affects cowlib: from 2.9.0 before 2.20.0.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| ninenines | cowlib | 2.9.0 – < 2.20.0 | 2.20.0 |
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Debian
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian 14 | erlang-cowlib | 2.20.0-1 | — |
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 26.10 | erlang-cowlib | No fix yet | — |
| Ubuntu 26.04 LTS | erlang-cowlib | No fix yet | — |
| Ubuntu 24.04 LTS | erlang-cowlib | No fix yet | — |
| Ubuntu 22.04 LTS | erlang-cowlib | No fix yet | — |
| Ubuntu 20.04 LTS | erlang-cowlib | No fix yet | — |
Show 2 more (older releases, extended support, other products)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 18.04 LTS | erlang-cowlib | No fix yet | — |
| Ubuntu 16.04 LTS | erlang-cowlib | No fix yet | — |
Red Hat
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Red Hat Hardened Images 1 | rabbitmq-server4.3 | 4.3.5-1.1.hum1 | RHSA-2026:66210 |
Azure Linux
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Azure Linux 3 | rabbitmq-server | 3.13.7-9 | — |
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| Hex | cowlib | >= 2.9.0, < 2.20.0 | 2.20.0 | EEF-CVE-2026-43971 |
Advisories 1
- RHSA-2026:66210 Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update Red Hat Security Advisories (RHSA) · Sep 10, 2026
References
- EEF CNA record for CVE-2026-43971 related third-party-advisory
- OSV record EEF-CVE-2026-43971 related
- Introducing commit 485d58d in ninenines/cowlib related
- Fix commit 89da27e in ninenines/cowlib patch