CVE-2026-92388None▾ SunlitWhen an FTP wildcard `LIST` operation fails, libcurl omits the restoration path meant for successful listings, leaving the write callback set to the internal listing parser and the write callback data pointing directly to the easy handle…
▾ Sunlit zone — Low / medium · no exploitation signal
impact 2.8 · likelihood 0 · exploitation 0
Need a working PoC? Pro members can cast a request and our team develops one — it lands right here.
When an FTP wildcard LIST operation fails, libcurl omits the restoration
path meant for successful listings, leaving the write callback set to the
internal listing parser and the write callback data pointing directly to the
easy handle. Subsequent reuse of this handle triggers an immediate crash, and
cloning it via curl_easy_duphandle() copies this corrupted state into the
duplicate. If the original handle is subsequently freed, executing a transfer
on the cloned handle causes a heap use-after-free read against the dangling
handle reference; alternatively, reusing the original or cloned handle while
changing only CURLOPT_WRITEDATA (and omitting CURLOPT_WRITEFUNCTION)
results in type confusion, forcing the internal parser to interpret incoming
server response bytes into memory at the application-supplied write data
pointer.
curl >= 8.22.0 <= 8.22.0curl >= 8.21.0 <= 8.21.0curl >= 8.20.0 <= 8.20.0curl >= 8.19.0 <= 8.19.0curl >= 8.18.0 <= 8.18.0curl >= 8.17.0 <= 8.17.0curl >= 8.16.0 <= 8.16.0curl >= 8.15.0 <= 8.15.0curl >= 8.14.1 <= 8.14.1curl >= 8.14.0 <= 8.14.0curl >= 8.13.0 <= 8.13.0curl >= 8.12.1 <= 8.12.1curl >= 8.12.0 <= 8.12.0curl >= 8.11.1 <= 8.11.1curl >= 8.11.0 <= 8.11.0curl >= 8.10.1 <= 8.10.1curl >= 8.10.0 <= 8.10.0curl >= 8.9.1 <= 8.9.1curl >= 8.9.0 <= 8.9.0curl >= 8.8.0 <= 8.8.0curl >= 8.7.1 <= 8.7.1curl >= 8.7.0 <= 8.7.0curl >= 8.6.0 <= 8.6.0curl >= 8.5.0 <= 8.5.0curl >= 8.4.0 <= 8.4.0curl >= 8.3.0 <= 8.3.0curl >= 8.2.1 <= 8.2.1curl >= 8.2.0 <= 8.2.0curl >= 8.1.2 <= 8.1.2curl >= 8.1.1 <= 8.1.1curl >= 8.1.0 <= 8.1.0curl >= 8.0.1 <= 8.0.1curl >= 8.0.0 <= 8.0.0curl >= 7.88.1 <= 7.88.1curl >= 7.88.0 <= 7.88.0curl >= 7.87.0 <= 7.87.0curl >= 7.86.0 <= 7.86.0curl >= 7.85.0 <= 7.85.0curl >= 7.84.0 <= 7.84.0curl >= 7.83.1 <= 7.83.1curl >= 7.83.0 <= 7.83.0curl >= 7.82.0 <= 7.82.0curl >= 7.81.0 <= 7.81.0curl >= 7.80.0 <= 7.80.0curl >= 7.79.1 <= 7.79.1curl >= 7.79.0 <= 7.79.0curl >= 7.78.0 <= 7.78.0curl >= 7.77.0 <= 7.77.0curl >= 7.76.1 <= 7.76.1curl >= 7.76.0 <= 7.76.0Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
Connected by shared product, vendor, weakness, or advisory.
CVE-2022-43552Medium· 5.9A use after free vulnerability exists in curl <7.87.0
CVE-2026-92392High· 8.1During an upload, curl mishandles HTTP/2 `RST_STREAM` received from the server (with reason `HTTP_1_1_REQUIRED` or `REFUSED_STREAM`) leading to a use after free of a `struct Curl_easy` object.
CVE-2021-22901High· 8.1curl 7.75.0 through 7.76.1 suffers from a use-after-free vulnerability resulting in already freed memory being used when a TLS 1.3 session ticket arrives over a connection
CVE-2026-18924Critical· 9.1A flaw in libcurl's handling of HTTP/2 Server Push streams, when the parent handle is set to share connections with other handles, can lead to use-after-free in the cleanup process.
CVE-2026-9080High· 7.3Calling `curl_easy_pause()` within the event-based `CURLMOPT_SOCKETFUNCTION` callback triggers a use-after-free vulnerability, where libcurl attempts to store a flag using a dangling struct pointer immediately after that pointer's memory…
CVE-2026-10536Critical· 9.8A 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…