CVE-2025-9086
High · 7.5CVSS
7.5
EPSS
1.5%
Published
Sep 12, 2025
CISA due date
—
Cloudanix analysis
A bug in curl's cookie handling can let an attacker crash programs or interfere with secure website logins when a connection is downgraded from encrypted to plain-text.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Moderate
- Impact
- Denial Of Service
- Component
- Application
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The flaw triggers an out-of-bounds heap read during cookie path comparison when a secure cookie set over HTTPS is followed by an HTTP cookie with path=/ on the same host; the incorrect boundary check either crashes the process or allows the insecure cookie to incorrectly override the secure one based on adjacent heap memory contents.
Why it matters to the business
Applications using curl for HTTPS requests face risk of denial-of-service crashes or session-cookie tampering that can expose authenticated sessions or disrupt automated transfers; the issue affects any downstream software depending on the library.
How an attack unfolds
An attacker first ensures a secure cookie is set over HTTPS, then forces or redirects curl to the same hostname over plain HTTP while supplying a second cookie with path=/; the buggy path logic reads past the single-byte path allocation and either crashes or accepts the insecure override, contrary to the secure-cookie isolation rule.
How to fix it
Upgrade curl to the version containing commit 11b991232fbcaa88e2b1faecac224416b0001e35 or later; rebuild any statically linked dependents and re-test cookie-handling workflows after deployment.
How to confirm the fix worked
Confirm the installed curl binary reports a version built after commit 11b991232fbcaa88e2b1faecac224416b0001e35; replay the HTTPS-to-HTTP redirect cookie scenario in a controlled test and verify the secure cookie is not overridden and no crash occurs.
Typical attack path
- Establish a secure cookie on the target host over HTTPS
- Cause curl to follow a redirect or connect to the same host over HTTP
- Supply a cookie of the same name with path=/ over the insecure channel
- Trigger the path-comparison code path that performs the out-of-bounds read
How to detect it
Search process and application logs for curl segmentation faults or assertion failures immediately following HTTPS-to-HTTP redirects; inspect network traces for cookie headers containing path=/ sent over unencrypted channels to the same host that previously received a secure cookie.
What your security team should do
- Prioritize patching curl in all environments within the next maintenance window
- Scan build pipelines and container images for the vulnerable commit and replace with the fixed version
- Add curl version checks to dependency scanners and CI gates
- Monitor application logs for curl crashes correlated with HTTP redirects
The record
1. A cookie is set using the `secure` keyword for `https://target` 2. curl is redirected to or otherwise made to speak with `http://target` (same hostname, but using clear text HTTP) using the same cookie set 3. The same cookie name is set - but with just a slash as path (`path=\"/\",`). Since this site is not secure, the cookie *should* just be ignored. 4. A bug in the path comparison logic makes curl read outside a heap buffer boundary The bug either causes a crash or it potentially makes the comparison come to the wrong conclusion and lets the clear-text site override the contents of the secure cookie, contrary to expectations and depending on the memory contents immediately following the single-byte allocation that holds the path. The presumed and correct behavior would be to plainly ignore the second set of the cookie since it was already set as secure on a secure host so overriding it on an insecure host should not be okay.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| AlmaLinux:8 | curl | 0 | 7.61.1-34.el8_10.9 |
| AlmaLinux:8 | libcurl | 0 | 7.61.1-34.el8_10.9 |
| AlmaLinux:8 | libcurl-devel | 0 | 7.61.1-34.el8_10.9 |
| AlmaLinux:8 | libcurl-minimal | 0 | 7.61.1-34.el8_10.9 |
| Debian:11 | curl | 0 | No fix |
| Debian:12 | curl | 0 | No fix |
| Debian:13 | curl | 0 | No fix |
| Debian:14 | curl | 0 | No fix |
| Debian:14 | curl | 0 | 8.16.0~rc2-1 |
| Mageia:9 | curl | 0 | 7.88.1-4.8.mga9 |
| SUSE:Enterprise Storage 7.1 | brotli | 0 | 1.0.7-150200.3.5.1 |
| SUSE:Enterprise Storage 7.1 | curl | 0 | 8.14.1-150200.4.91.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS | brotli | 0 | 1.0.7-150200.3.5.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS | curl | 0 | 8.14.1-150200.4.91.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS | brotli | 0 | 1.0.7-150200.3.5.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS | curl | 0 | 8.14.1-150400.5.69.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS | brotli | 0 | 1.0.7-150200.3.5.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS | curl | 0 | 8.14.1-150400.5.69.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP5-ESPOS | brotli | 0 | 1.0.7-150200.3.5.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP5-ESPOS | curl | 0 | 8.14.1-150400.5.69.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP5-LTSS | brotli | 0 | 1.0.7-150200.3.5.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP5-LTSS | curl | 0 | 8.14.1-150400.5.69.1 |
| SUSE:Linux Enterprise Installer Updates 15 SP4 | curl | 0 | 8.14.1-150400.5.69.1 |
| SUSE:Linux Enterprise Installer Updates 15 SP5 | curl | 0 | 8.14.1-150400.5.69.1 |
| SUSE:Linux Enterprise Micro 5.1 | brotli | 0 | 1.0.7-150200.3.5.1 |
| SUSE:Linux Enterprise Micro 5.1 | curl | 0 | 8.14.1-150200.4.91.1 |
| SUSE:Linux Enterprise Micro 5.2 | brotli | 0 | 1.0.7-150200.3.5.1 |
| SUSE:Linux Enterprise Micro 5.2 | curl | 0 | 8.14.1-150200.4.91.1 |
| SUSE:Linux Enterprise Micro 5.3 | brotli | 0 | 1.0.7-150200.3.5.1 |
| SUSE:Linux Enterprise Micro 5.3 | curl | 0 | 8.14.1-150400.5.69.1 |
| SUSE:Linux Enterprise Micro 5.4 | brotli | 0 | 1.0.7-150200.3.5.1 |
| SUSE:Linux Enterprise Micro 5.4 | curl | 0 | 8.14.1-150400.5.69.1 |
| SUSE:Linux Enterprise Micro 5.5 | brotli | 0 | 1.0.7-150200.3.5.1 |
| SUSE:Linux Enterprise Micro 5.5 | curl | 0 | 8.14.1-150400.5.69.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP6 | brotli | 0 | 1.0.7-150200.3.5.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP6 | curl | 0 | 8.14.1-150600.4.28.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP7 | brotli | 0 | 1.0.7-150200.3.5.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP7 | curl | 0 | 8.14.1-150600.4.28.1 |
| SUSE:Linux Enterprise Server 15 SP3-LTSS | brotli | 0 | 1.0.7-150200.3.5.1 |
| SUSE:Linux Enterprise Server 15 SP3-LTSS | curl | 0 | 8.14.1-150200.4.91.1 |
| SUSE:Linux Enterprise Server 15 SP4-LTSS | brotli | 0 | 1.0.7-150200.3.5.1 |
| SUSE:Linux Enterprise Server 15 SP4-LTSS | curl | 0 | 8.14.1-150400.5.69.1 |
| SUSE:Linux Enterprise Server 15 SP5-LTSS | brotli | 0 | 1.0.7-150200.3.5.1 |
| SUSE:Linux Enterprise Server 15 SP5-LTSS | curl | 0 | 8.14.1-150400.5.69.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP3 | brotli | 0 | 1.0.7-150200.3.5.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP3 | curl | 0 | 8.14.1-150200.4.91.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP4 | brotli | 0 | 1.0.7-150200.3.5.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP4 | curl | 0 | 8.14.1-150400.5.69.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP5 | brotli | 0 | 1.0.7-150200.3.5.1 |
| SUSE:Manager Proxy LTS 4.3 | brotli | 0 | 1.0.7-150200.3.5.1 |
| SUSE:Manager Proxy LTS 4.3 | curl | 0 | 8.14.1-150400.5.69.1 |
| SUSE:Manager Server LTS 4.3 | brotli | 0 | 1.0.7-150200.3.5.1 |
| SUSE:Manager Server LTS 4.3 | curl | 0 | 8.14.1-150400.5.69.1 |
| openSUSE:Leap 15.6 | brotli | 0 | 1.0.7-150200.3.5.1 |
| openSUSE:Leap 15.6 | curl | 0 | 8.14.1-150600.4.28.1 |
| openSUSE:Leap 16.0 | curl | 0 | 8.14.1-160000.3.1 |
| openSUSE:Tumbleweed | curl | 0 | 8.16.0-1.1 |
Related vulnerabilities
- CVE-2023-46218 This flaw allows a malicious HTTP server to set "super cookies" in curl that are then… Also affects curl
- CVE-2023-38546 This flaw allows an attacker to insert cookies at will into a running program using… Also affects curl
- CVE-2023-28322 An information disclosure vulnerability exists in curl <v8.1.0 when doing HTTP(S)… Also affects curl
- CVE-2023-28321 An improper certificate validation vulnerability exists in curl <v8.1.0 in the way it… Also affects curl
- CVE-2023-27536 An authentication bypass vulnerability exists libcurl <8.0.0 in the connection reuse… Also affects curl
- CVE-2023-27535 An authentication bypass vulnerability exists in libcurl <8.0.0 in the FTP connection… Also affects curl
- CVE-2023-23916 An allocation of resources without limits or throttling vulnerability exists in curl… Also affects curl
- CVE-2022-43552 A use after free vulnerability exists in curl <7.87.0. Also affects curl