Description
A use-after-free vulnerability exists in libcurl when an application
configures an HTTP/2 stream-dependency tree via `CURLOPT_STREAM_DEPENDS` or
`CURLOPT_STREAM_DEPENDS_E`, subsequently invokes `curl_easy_reset()`, and
finally terminates the handle with `curl_easy_cleanup()`. During this final
cleanup phase, libcurl attempts to access and modify an internal structure
that was already freed during the reset operation.
Published: 2026-07-03
Score: 9.8 Critical
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

A use‑after‑free flaw exists in libcurl's handling of HTTP/2 stream‑dependency configuration options (CURLOPT_STREAM_DEPENDS and CURLOPT_STREAM_DEPENDS_E). After an application configures a dependency tree and then calls curl_easy_reset(), the library frees internal structures prematurely. During the final cleanup call curl_easy_cleanup(), the freed memory is accessed and modified, potentially corrupting the process’s memory. This weakness is classified as CWE‑825, a use‑after‑free vulnerability. Based on the design, the corruption could allow an attacker to execute arbitrary code within the application that uses libcurl.

Affected Systems

The issue affects libcurl implementations that expose the CURLOPT_STREAM_DEPENDS and CURLOPT_STREAM_DEPENDS_E options. Any application built against such a libcurl library—regardless of operating system—may be vulnerable if it resets an easy handle after setting a stream‑dependency tree and then cleans up the handle. All current public releases of libcurl with HTTP/2 stream‑dependency support are potentially impacted because no specific version ranges are listed.

Risk and Exploitability

The CVSS score of 9.8 indicates critical severity; the EPSS score below 1% suggests a low probability of real‑world exploitation at this time, and the vulnerability is not yet listed in CISA’s KEV catalog. The likely attack vector requires an attacker to influence the client’s configuration or trigger the reset/cleanup sequence, which is most plausibly a remote scenario where the client makes an HTTP/2 request with a deliberate stream‑dependency configuration. From the description, it is inferred that successful exploitation could grant remote code execution inside the client process, affecting confidentiality, integrity, and availability.

Generated by OpenCVE AI on July 23, 2026 at 16:30 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade to the latest libcurl release that includes the stream‑dependency use‑after‑free patch.
  • If an upgrade is not immediately possible, avoid setting CURLOPT_STREAM_DEPENDS or CURLOPT_STREAM_DEPENDS_E until that option is safely handled, and ensure that curl_easy_reset() is not called while those options are active before calling curl_easy_cleanup(); consider removing or disabling stream‑dependency features in the application.
  • Rebuild the application against the newest libcurl source code that contains the fix, and test HTTP/2 functionality to confirm that the flaw no longer triggers; if stream dependency is required, coordinate with the libcurl developers for a stable fix.
  • Monitor libcurl security advisories for a patch or additional mitigations.

Generated by OpenCVE AI on July 23, 2026 at 16:30 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Ubuntu USN Ubuntu USN USN-8525-1 curl vulnerabilities
History

Fri, 10 Jul 2026 03:00:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Thu, 09 Jul 2026 00:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-825
References
Metrics threat_severity

None

threat_severity

Moderate


Wed, 08 Jul 2026 17:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Wed, 08 Jul 2026 11:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Tue, 07 Jul 2026 20:00:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Tue, 07 Jul 2026 08:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Mon, 06 Jul 2026 19:30:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 9.8, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H'}

ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'poc', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Mon, 06 Jul 2026 10:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Mon, 06 Jul 2026 04:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Sun, 05 Jul 2026 17:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Sun, 05 Jul 2026 09:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Sun, 05 Jul 2026 01:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Sat, 04 Jul 2026 12:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Sat, 04 Jul 2026 05:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Fri, 03 Jul 2026 21:00:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Fri, 03 Jul 2026 13:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Fri, 03 Jul 2026 08:30:00 +0000

Type Values Removed Values Added
First Time appeared Curl
Curl curl
Vendors & Products Curl
Curl curl

Fri, 03 Jul 2026 06:45:00 +0000

Type Values Removed Values Added
Description A use-after-free vulnerability exists in libcurl when an application configures an HTTP/2 stream-dependency tree via `CURLOPT_STREAM_DEPENDS` or `CURLOPT_STREAM_DEPENDS_E`, subsequently invokes `curl_easy_reset()`, and finally terminates the handle with `curl_easy_cleanup()`. During this final cleanup phase, libcurl attempts to access and modify an internal structure that was already freed during the reset operation.
Title HTTP/2 stream-dependency tree UAF
References

cve-icon MITRE

Status: PUBLISHED

Assigner: curl

Published:

Updated: 2026-07-06T18:29:27.171Z

Reserved: 2026-06-01T11:49:55.548Z

Link: CVE-2026-10536

cve-icon Vulnrichment

Updated: 2026-07-06T18:29:23.421Z

cve-icon NVD

No data.

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-07-03T06:11:15Z

Links: CVE-2026-10536 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-07-23T16:45:03Z

Weaknesses
  • CWE-825

    Expired Pointer Dereference