Erlang cowlib: Improper Encoding or Escaping of Output vulnerability in ninenines cowlib allows Link header directive smuggling via unescaped special characters in… (CVE-2026-43971)
A vulnerability in the Erlang cowlib library allows improper encoding or escaping of output in the Link HTTP header. This flaw permits an attacker to smuggle additional Link header directives by injecting unescaped special characters into the URI, rel, or attribute keys. Exploitation can cause victim browsers to make unintended out-of-band connections to attacker-controlled origins. The issue affects cowlib versions from 2.9.0 up to but not including 2.20.0.
AI Analysis
Technical Summary
The vulnerability in ninenines cowlib arises from the cow_link:do_link/1 function interpolating the target URI, rel value, and attribute keys directly into the serialized Link header without proper escaping or token-grammar validation. Specifically, a '>' character in the target URI prematurely closes the URI slot, enabling the injection of additional link entries with attacker-chosen rel directives. Similarly, '"' or '\' characters in the rel value can escape the quoted string and open new parameters, while any byte in attribute keys is emitted verbatim. Because browsers act on Link header directives like rel="preconnect", rel="preload", and rel="prerender", an attacker controlling these fields in an application that processes Link headers through cow_link:link/1 can force browsers to initiate connections to attacker-controlled origins. This vulnerability affects cowlib versions >=2.9.0 and specific older versions listed, and is identified as CWE-116.
Potential Impact
An attacker able to influence Link header fields in an application using vulnerable cowlib versions can cause victim browsers to perform out-of-band connections to attacker-controlled servers. This can lead to privacy violations, potential information leakage, or other side-channel impacts depending on the attacker's control of the linked resources. The vulnerability does not require user interaction and can be exploited remotely without privileges. The CVSS vector indicates low attack complexity and no user interaction, with partial impact on integrity and availability, resulting in a medium severity rating.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. Until an official fix is available, avoid passing untrusted input directly into cow_link:link/1 or ensure proper escaping and validation of Link header components to prevent injection of special characters. Monitor vendor channels for updates and apply official patches once released.
Erlang cowlib: Improper Encoding or Escaping of Output vulnerability in ninenines cowlib allows Link header directive smuggling via unescaped special characters in… (CVE-2026-43971)
Description
A vulnerability in the Erlang cowlib library allows improper encoding or escaping of output in the Link HTTP header. This flaw permits an attacker to smuggle additional Link header directives by injecting unescaped special characters into the URI, rel, or attribute keys. Exploitation can cause victim browsers to make unintended out-of-band connections to attacker-controlled origins. The issue affects cowlib versions from 2.9.0 up to but not including 2.20.0.
CVSS v4.0
Affected software
pkg:deb/ubuntu/erlang-cowlib?arch=source&distro=xenialpkg:deb/ubuntu/erlang-cowlib?arch=source&distro=bionicpkg:deb/ubuntu/erlang-cowlib?arch=source&distro=focalpkg:deb/ubuntu/erlang-cowlib?arch=source&distro=jammypkg:deb/ubuntu/erlang-cowlib?arch=source&distro=noblepkg:deb/ubuntu/erlang-cowlib?arch=source&distro=resoluteRun on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
Weaknesses
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The vulnerability in ninenines cowlib arises from the cow_link:do_link/1 function interpolating the target URI, rel value, and attribute keys directly into the serialized Link header without proper escaping or token-grammar validation. Specifically, a '>' character in the target URI prematurely closes the URI slot, enabling the injection of additional link entries with attacker-chosen rel directives. Similarly, '"' or '\' characters in the rel value can escape the quoted string and open new parameters, while any byte in attribute keys is emitted verbatim. Because browsers act on Link header directives like rel="preconnect", rel="preload", and rel="prerender", an attacker controlling these fields in an application that processes Link headers through cow_link:link/1 can force browsers to initiate connections to attacker-controlled origins. This vulnerability affects cowlib versions >=2.9.0 and specific older versions listed, and is identified as CWE-116.
Potential Impact
An attacker able to influence Link header fields in an application using vulnerable cowlib versions can cause victim browsers to perform out-of-band connections to attacker-controlled servers. This can lead to privacy violations, potential information leakage, or other side-channel impacts depending on the attacker's control of the linked resources. The vulnerability does not require user interaction and can be exploited remotely without privileges. The CVSS vector indicates low attack complexity and no user interaction, with partial impact on integrity and availability, resulting in a medium severity rating.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. Until an official fix is available, avoid passing untrusted input directly into cow_link:link/1 or ensure proper escaping and validation of Link header components to prevent injection of special characters. Monitor vendor channels for updates and apply official patches once released.
Technical Details
- Gcve Source
- db.gcve.eu
- Osv Id
- GHSA-gg23-fwhr-prjh
- Osv Schema Version
- 1.4.0
- Aliases
- ["CVE-2026-43971"]
- Database Specific Severity
- MODERATE
- Cvss Version
- 4.0
- State
- PUBLISHED
Threat ID: 6a8460a2c6e8be033245a897
Added to database: 08/18/2026, 13:39:46 UTC
Last enriched: 09/24/2026, 08:25:16 UTC
Last updated: 10/03/2026, 14:46:07 UTC
Views: 73
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
External Links
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.