{"id":"CVE-2026-92388","title":"FTP wildcard write callback mixup","summary":"When an FTP wildcard `LIST` operation fails, libcurl omits the restoration\npath meant for successful listings, leaving the write callback set to the\ninternal listing parser and the write callback data pointing directly to the\neasy handle…","severity":"none","cwe":["CWE-416"],"vendor":"curl","product":"curl","affected":["curl >= 8.22.0 <= 8.22.0","curl >= 8.21.0 <= 8.21.0","curl >= 8.20.0 <= 8.20.0","curl >= 8.19.0 <= 8.19.0","curl >= 8.18.0 <= 8.18.0","curl >= 8.17.0 <= 8.17.0","curl >= 8.16.0 <= 8.16.0","curl >= 8.15.0 <= 8.15.0","curl >= 8.14.1 <= 8.14.1","curl >= 8.14.0 <= 8.14.0","curl >= 8.13.0 <= 8.13.0","curl >= 8.12.1 <= 8.12.1","curl >= 8.12.0 <= 8.12.0","curl >= 8.11.1 <= 8.11.1","curl >= 8.11.0 <= 8.11.0","curl >= 8.10.1 <= 8.10.1","curl >= 8.10.0 <= 8.10.0","curl >= 8.9.1 <= 8.9.1","curl >= 8.9.0 <= 8.9.0","curl >= 8.8.0 <= 8.8.0","curl >= 8.7.1 <= 8.7.1","curl >= 8.7.0 <= 8.7.0","curl >= 8.6.0 <= 8.6.0","curl >= 8.5.0 <= 8.5.0","curl >= 8.4.0 <= 8.4.0","curl >= 8.3.0 <= 8.3.0","curl >= 8.2.1 <= 8.2.1","curl >= 8.2.0 <= 8.2.0","curl >= 8.1.2 <= 8.1.2","curl >= 8.1.1 <= 8.1.1","curl >= 8.1.0 <= 8.1.0","curl >= 8.0.1 <= 8.0.1","curl >= 8.0.0 <= 8.0.0","curl >= 7.88.1 <= 7.88.1","curl >= 7.88.0 <= 7.88.0","curl >= 7.87.0 <= 7.87.0","curl >= 7.86.0 <= 7.86.0","curl >= 7.85.0 <= 7.85.0","curl >= 7.84.0 <= 7.84.0","curl >= 7.83.1 <= 7.83.1","curl >= 7.83.0 <= 7.83.0","curl >= 7.82.0 <= 7.82.0","curl >= 7.81.0 <= 7.81.0","curl >= 7.80.0 <= 7.80.0","curl >= 7.79.1 <= 7.79.1","curl >= 7.79.0 <= 7.79.0","curl >= 7.78.0 <= 7.78.0","curl >= 7.77.0 <= 7.77.0","curl >= 7.76.1 <= 7.76.1","curl >= 7.76.0 <= 7.76.0"],"published":"2026-10-20","updated":"2026-10-20","sourceUpdated":"2026-10-20T20:20:41.220Z","source":"CVEORG","sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-92388","references":[{"url":"https://curl.se/docs/CVE-2026-92388.json","label":"json"},{"url":"https://curl.se/docs/CVE-2026-92388.html","label":"www"},{"url":"https://hackerone.com/reports/4022070","label":"issue"}],"tags":["cve.org"],"ingestedAt":"2026-10-20T21:19:21.283Z","slug":"CVE-2026-92388","body":"## Overview\n\nWhen an FTP wildcard `LIST` operation fails, libcurl omits the restoration\npath meant for successful listings, leaving the write callback set to the\ninternal listing parser and the write callback data pointing directly to the\neasy handle. Subsequent reuse of this handle triggers an immediate crash, and\ncloning it via `curl_easy_duphandle()` copies this corrupted state into the\nduplicate. If the original handle is subsequently freed, executing a transfer\non the cloned handle causes a heap use-after-free read against the dangling\nhandle reference; alternatively, reusing the original or cloned handle while\nchanging only  `CURLOPT_WRITEDATA` (and omitting `CURLOPT_WRITEFUNCTION`)\nresults in type confusion, forcing the internal parser to interpret incoming\nserver response bytes into memory at the application-supplied write data\npointer.\n\n## Affected\n\n- `curl >= 8.22.0 <= 8.22.0`\n- `curl >= 8.21.0 <= 8.21.0`\n- `curl >= 8.20.0 <= 8.20.0`\n- `curl >= 8.19.0 <= 8.19.0`\n- `curl >= 8.18.0 <= 8.18.0`\n- `curl >= 8.17.0 <= 8.17.0`\n- `curl >= 8.16.0 <= 8.16.0`\n- `curl >= 8.15.0 <= 8.15.0`\n- `curl >= 8.14.1 <= 8.14.1`\n- `curl >= 8.14.0 <= 8.14.0`\n- `curl >= 8.13.0 <= 8.13.0`\n- `curl >= 8.12.1 <= 8.12.1`\n- `curl >= 8.12.0 <= 8.12.0`\n- `curl >= 8.11.1 <= 8.11.1`\n- `curl >= 8.11.0 <= 8.11.0`\n- `curl >= 8.10.1 <= 8.10.1`\n- `curl >= 8.10.0 <= 8.10.0`\n- `curl >= 8.9.1 <= 8.9.1`\n- `curl >= 8.9.0 <= 8.9.0`\n- `curl >= 8.8.0 <= 8.8.0`\n- `curl >= 8.7.1 <= 8.7.1`\n- `curl >= 8.7.0 <= 8.7.0`\n- `curl >= 8.6.0 <= 8.6.0`\n- `curl >= 8.5.0 <= 8.5.0`\n- `curl >= 8.4.0 <= 8.4.0`\n- `curl >= 8.3.0 <= 8.3.0`\n- `curl >= 8.2.1 <= 8.2.1`\n- `curl >= 8.2.0 <= 8.2.0`\n- `curl >= 8.1.2 <= 8.1.2`\n- `curl >= 8.1.1 <= 8.1.1`\n- `curl >= 8.1.0 <= 8.1.0`\n- `curl >= 8.0.1 <= 8.0.1`\n- `curl >= 8.0.0 <= 8.0.0`\n- `curl >= 7.88.1 <= 7.88.1`\n- `curl >= 7.88.0 <= 7.88.0`\n- `curl >= 7.87.0 <= 7.87.0`\n- `curl >= 7.86.0 <= 7.86.0`\n- `curl >= 7.85.0 <= 7.85.0`\n- `curl >= 7.84.0 <= 7.84.0`\n- `curl >= 7.83.1 <= 7.83.1`\n- `curl >= 7.83.0 <= 7.83.0`\n- `curl >= 7.82.0 <= 7.82.0`\n- `curl >= 7.81.0 <= 7.81.0`\n- `curl >= 7.80.0 <= 7.80.0`\n- `curl >= 7.79.1 <= 7.79.1`\n- `curl >= 7.79.0 <= 7.79.0`\n- `curl >= 7.78.0 <= 7.78.0`\n- `curl >= 7.77.0 <= 7.77.0`\n- `curl >= 7.76.1 <= 7.76.1`\n- `curl >= 7.76.0 <= 7.76.0`\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.","depth":"sunlit","depthScore":3,"depthScoreParts":{"impact":2.8,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[]}