CVE-2026-43971: Link Header Directive Smuggling via Unescaped target/rel/Attribute Keys in cow_link:link/1

Published Aug 18, 2026
·
Updated

Improper Encoding or Escaping of Output vulnerability in ninenines cowlib allows Link header directive smuggling via unescaped special characters in cowlink:link/1.

cowlink:dolink/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 cowlink:link/1 can force victim browsers to make out-of-band connections to attacker-controlled origins.

This issue affects cowlib: from 2.9.0 onward.

Affected Software

1 affected component
cowlib>=undefined

Event History

Aug 18, 2026
CVE Published
via MITRE·09:01 AM
Data Sourced
via MITRE·09:01 AM
DescriptionWeakness
Data Sourced
via NVD·09:17 AM
DescriptionSeverityWeakness

Frequently Asked Questions

1

What conditions must exist for an attacker to exploit this issue?

Applications are exposed when attacker-controlled values can reach the target URI, rel value, or attribute-key fields and the application parses and reserializes Link headers through cow_link:link/1. The practical browser impact described is the ability to cause victim browsers to make out-of-band connections to attacker-controlled origins through injected Link directives.

2

Which deployments are affected?

cowlib versions from 2.9.0 onward are affected. The provided information does not identify a fixed version or a configuration change that disables the vulnerable serialization behavior.

3

How can I determine whether my application is exposed?

Inspect code paths that round-trip parsed Link headers through cow_link:link/1 or cow_link:do_link/1, and trace whether untrusted input can influence target URIs, rel values, or attribute keys. Inputs containing > in a target, " or \ in a rel value, or special characters such as whitespace, =, or " in attribute keys indicate relevant injection opportunities.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203