Skip to main content
Vulnerability Database/CVE-2026-92388

CVE-2026-92388: libcurl FTP Use-After-Free Vulnerability

CVE-2026-92388 is a use-after-free flaw in libcurl that occurs during failed FTP wildcard LIST operations, potentially causing crashes or memory corruption. This post explains its impact, affected versions, and mitigation steps.

Published:

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Sources: National Vulnerability Database, CISA KEV, Exploit-DB

CVE-2026-92388 Overview

CVE-2026-92388 affects libcurl's handling of failed FTP wildcard LIST operations. When the listing fails, libcurl skips the cleanup path that normally restores the application-supplied write callback and write data pointer. The internal listing parser remains installed as the write callback, and the write data pointer continues to reference the easy handle itself.

Reusing the affected handle crashes immediately. Cloning the handle with curl_easy_duphandle() propagates the corrupted state to the duplicate. Freeing the original then transferring on the clone produces a heap use-after-free read. Alternatively, changing only CURLOPT_WRITEDATA without resetting CURLOPT_WRITEFUNCTION causes type confusion that writes server bytes to the application-supplied pointer.

Critical Impact

Attackers who influence FTP server responses can trigger memory corruption, process crashes, or controlled writes against application memory in programs reusing libcurl easy handles after a failed FTP wildcard listing.

Affected Products

  • libcurl (FTP wildcard LIST code path)
  • Applications linking libcurl that use CURLOPT_WILDCARDMATCH with FTP
  • Downstream distributions and language bindings embedding the vulnerable libcurl build

Discovery Timeline

  • 2026-10-20 - CVE-2026-92388 published to NVD
  • 2026-10-22 - Last updated in NVD database

Technical Details for CVE-2026-92388

Vulnerability Analysis

The flaw sits in libcurl's FTP wildcard matching feature. When an application enables CURLOPT_WILDCARDMATCH, libcurl temporarily swaps the user's write callback and write data pointer for an internal listing parser. The parser consumes LIST output and feeds matched filenames back through the application callback.

On the success path, libcurl restores the original CURLOPT_WRITEFUNCTION and CURLOPT_WRITEDATA. On the failure path, the restoration step is skipped. The easy handle is left with its write callback pointing at the internal listing parser and its write data field aliased to the easy handle structure itself.

Root Cause

The root cause is missing cleanup on an error branch combined with type confusion between the internal parser's expected context and arbitrary application pointers. The write callback and its data pointer are not treated as atomic state, so partial restoration is possible when LIST fails.

Attack Vector

A malicious or compromised FTP server can force the LIST operation to fail after libcurl has installed the internal parser. The application then holds a handle in a corrupted state. Three outcomes follow depending on how the application reuses the handle.

Reusing the handle directly dereferences the stale parser context and crashes. Duplicating with curl_easy_duphandle() and freeing the original yields a use-after-free when the clone performs a transfer. Setting only CURLOPT_WRITEDATA without also setting CURLOPT_WRITEFUNCTION causes the parser to interpret inbound server bytes as its own structure and write into the attacker-chosen pointer.

No verified exploit code is published. Technical details are documented in the curl Security Advisory CVE-2026-92388 and the HackerOne Report #4022070.

Detection Methods for CVE-2026-92388

Indicators of Compromise

  • Application crashes or segmentation faults in processes using libcurl shortly after FTP transfers that use CURLOPT_WILDCARDMATCH.
  • Unexpected FTP LIST failures from servers followed by abnormal process behavior or memory writes to application buffers.
  • Core dumps showing faulting addresses inside libcurl's FTP wildcard listing parser functions.

Detection Strategies

  • Audit source code for use of CURLOPT_WILDCARDMATCH combined with handle reuse through curl_easy_reset() or curl_easy_duphandle().
  • Run fuzzing or targeted integration tests that force FTP LIST to fail and then exercise the same easy handle.
  • Enable AddressSanitizer in test builds to surface the use-after-free read on cloned handles.

Monitoring Recommendations

  • Collect and triage crash telemetry from applications that perform FTP wildcard listings against untrusted servers.
  • Monitor outbound FTP connections and flag unusual destinations for processes using libcurl.
  • Alert on repeated libcurl crashes correlated with FTP sessions in endpoint and workload logs.

How to Mitigate CVE-2026-92388

Immediate Actions Required

  • Inventory applications and container images that link libcurl and identify those using FTP wildcard matching.
  • Upgrade libcurl to the fixed release identified in the curl Security Advisory CVE-2026-92388.
  • Restrict FTP transfers to trusted servers until the patched libcurl is deployed everywhere.

Patch Information

The curl project publishes patch metadata in the curl JSON Advisory CVE-2026-92388. Rebuild statically linked binaries against the patched libcurl and redeploy container images that bundle the library.

Workarounds

  • Disable CURLOPT_WILDCARDMATCH and perform directory listing and filename matching in application code.
  • Avoid reusing or duplicating easy handles after any FTP wildcard transfer error; call curl_easy_cleanup() and create a fresh handle instead.
  • When reconfiguring a handle, always set both CURLOPT_WRITEFUNCTION and CURLOPT_WRITEDATA together, never one in isolation.
bash
# Verify installed libcurl version and FTP feature support
curl --version
ldconfig -p | grep libcurl

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Sources: National Vulnerability Database, CISA KEV, Exploit-DB

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.