CVE-2026-11856
Analyzed Analyzed - Analysis Complete

Authorization Header Reuse in libcurl

Vulnerability report for CVE-2026-11856, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-07-03

Last updated on: 2026-07-07

Assigner: curl

Description

Successfully using libcurl to do a transfer to a specific HTTP origin (`hostA`) with **Digest** authentication and then changing the origin to a different one (`hostB`) for a second transfer, reusing the same handle, makes libcurl wrongly pass on the `Authorization:` header field meant for `hostA`, to `hostB`.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-07-03
Last Modified
2026-07-07
Generated
2026-07-23
AI Q&A
2026-07-03
EPSS Evaluated
2026-07-22
NVD
EUVD

Affected Vendors & Products

Showing 1 associated CPE
Vendor Product Version / Range
haxx curl From 7.10.6 (inc) to 8.21.0 (exc)

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-294 A capture-replay flaw exists when the design of the product makes it possible for a malicious user to sniff network traffic and bypass authentication by replaying it to the server in question to the same effect as the original message (or with minor changes).

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

CVE-2026-11856 is a vulnerability in libcurl where reusing a handle to perform a transfer to one HTTP origin (hostA) with Digest authentication and then switching to a different origin (hostB) causes libcurl to incorrectly send the Authorization header meant for hostA to hostB.

This means that the authenticated state intended for hostA is mistakenly passed to hostB, allowing hostB to impersonate the client when communicating with hostA. However, hostB cannot see the details of hostA, and the credentials themselves are not exposed, only the ability to replay the specific request for the exact path.

The vulnerability is classified as CWE-294 (Authentication Bypass by Capture-replay) with medium severity and affects libcurl versions 7.10.6 through 8.20.0. It was fixed in version 8.21.0.

Detection Guidance

This vulnerability involves libcurl incorrectly sending an Authorization header meant for one HTTP origin (hostA) to a different origin (hostB) when reusing the same handle with Digest authentication.

To detect this issue on your network or system, you can monitor HTTP traffic for unexpected Authorization headers being sent to origins different from the authenticated host.

A practical approach is to capture and inspect HTTP requests using tools like tcpdump or Wireshark, filtering for HTTP Authorization headers and verifying if they are sent to multiple different hosts within the same session or connection reuse.

  • Use tcpdump to capture HTTP traffic on port 80 or 443 (if unencrypted or decrypted): tcpdump -A -s 0 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'
  • Use Wireshark to filter HTTP requests with Authorization headers: http.authheader
  • Manually review captured HTTP requests to check if the Authorization header intended for one host is being sent to a different host.

Note that this vulnerability does not affect the curl command line tool and is specific to libcurl library usage with reused handles across different origins.

Impact Analysis

This vulnerability can allow an unintended server (hostB) to receive and reuse the Authorization header intended for another server (hostA), effectively letting hostB impersonate the client in requests meant for hostA.

While the actual credentials are not exposed, the attacker controlling hostB can replay the authenticated request for the exact path, potentially gaining unauthorized access or causing unintended actions on hostA.

The impact is limited because hostB cannot see the details of hostA or the credentials themselves, but the authentication bypass by replaying requests can still lead to security risks.

Compliance Impact

This vulnerability causes libcurl to send an Authorization header intended for one HTTP origin (hostA) to a different origin (hostB) when reusing the same handle. While this can allow hostB to impersonate the client for hostA, the credentials themselves are not exposed, and hostB cannot see the details of hostA. The impact is limited to replaying a specific authenticated request.

Because the vulnerability involves potential unauthorized reuse of authentication headers, it could pose risks related to unauthorized access or data exposure, which are relevant concerns under standards like GDPR and HIPAA that require protection of sensitive data and authentication credentials.

However, the provided information does not explicitly discuss compliance implications or how this vulnerability directly affects adherence to these regulations.

Mitigation Strategies

To mitigate this vulnerability, users should upgrade libcurl to version 8.21.0 or later where the issue is fixed.

Alternatively, users can apply the available patch that addresses this issue.

As a temporary workaround, avoid reusing the same libcurl handle when switching between different HTTP origins.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-11856. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart