Skip to main content
← All vulnerabilities
CVE-2026-92389

TFTP direction confusion

Affects libcurl 7.15.0 through 8.22.0. curl rates it Low, while its CVSS score is 8.1. Fixed in 8.23.0.

Published
Last modified
published
Not listed in CISA KEV
Unclear
Low (curl)
Fix
Fixed in 8.14.3, 8.16.2, 8.20.2, 8.23.0
None on Exploit-DB, Metasploit or GitHub
  • Exploitation: poc
  • Automatable: no
  • Technical impact: total

Summary

libcurl's TFTP state machine fails to validate state transitions against the requested transfer direction, accepting opening server responses for both reads and writes interchangeably. A malicious TFTP server can respond to a download request in a way that forces the client into transmit mode, prompting libcurl to consume and transmit data from the handle's persistent `CURLOPT_READDATA` pointer - including data remaining from unrelated prior operations, such as an HTTP POST request executed on a reused handle.

Timeline

  1. CVE published
  2. CISA SSVC assessment

    Exploitation: poc · Automatable: no · Technical impact: total

  3. Record last updated

Affected versions

  • curl curl

    From 8.22.0 · through 8.22.0; From 8.21.0 · through 8.21.0; From 8.20.0 · through 8.20.0; From 8.19.0 · through 8.19.0; From 8.18.0 · through 8.18.0; From 8.17.0 · through 8.17.0; From 8.16.0 · through 8.16.0; From 8.15.0 · through 8.15.0; From 8.14.1 · through 8.14.1; From 8.14.0 · through 8.14.0; From 8.13.0 · through 8.13.0; From 8.12.1 · through 8.12.1; From 8.12.0 · through 8.12.0; From 8.11.1 · through 8.11.1; From 8.11.0 · through 8.11.0; From 8.10.1 · through 8.10.1; From 8.10.0 · through 8.10.0; From 8.9.1 · through 8.9.1; From 8.9.0 · through 8.9.0; From 8.8.0 · through 8.8.0; From 8.7.1 · through 8.7.1; From 8.7.0 · through 8.7.0; From 8.6.0 · through 8.6.0; From 8.5.0 · through 8.5.0; From 8.4.0 · through 8.4.0; From 8.3.0 · through 8.3.0; From 8.2.1 · through 8.2.1; From 8.2.0 · through 8.2.0; From 8.1.2 · through 8.1.2; From 8.1.1 · through 8.1.1; From 8.1.0 · through 8.1.0; From 8.0.1 · through 8.0.1; From 8.0.0 · through 8.0.0; From 7.88.1 · through 7.88.1; From 7.88.0 · through 7.88.0; From 7.87.0 · through 7.87.0; From 7.86.0 · through 7.86.0; From 7.85.0 · through 7.85.0; From 7.84.0 · through 7.84.0; From 7.83.1 · through 7.83.1; From 7.83.0 · through 7.83.0; From 7.82.0 · through 7.82.0; From 7.81.0 · through 7.81.0; From 7.80.0 · through 7.80.0; From 7.79.1 · through 7.79.1; From 7.79.0 · through 7.79.0; From 7.78.0 · through 7.78.0; From 7.77.0 · through 7.77.0; From 7.76.1 · through 7.76.1; From 7.76.0 · through 7.76.0; From 7.75.0 · through 7.75.0; From 7.74.0 · through 7.74.0; From 7.73.0 · through 7.73.0; From 7.72.0 · through 7.72.0; From 7.71.1 · through 7.71.1; From 7.71.0 · through 7.71.0; From 7.70.0 · through 7.70.0; From 7.69.1 · through 7.69.1; From 7.69.0 · through 7.69.0; From 7.68.0 · through 7.68.0; From 7.67.0 · through 7.67.0; From 7.66.0 · through 7.66.0; From 7.65.3 · through 7.65.3; From 7.65.2 · through 7.65.2; From 7.65.1 · through 7.65.1; From 7.65.0 · through 7.65.0; From 7.64.1 · through 7.64.1; From 7.64.0 · through 7.64.0; From 7.63.0 · through 7.63.0; From 7.62.0 · through 7.62.0; From 7.61.1 · through 7.61.1; From 7.61.0 · through 7.61.0; From 7.60.0 · through 7.60.0; From 7.59.0 · through 7.59.0; From 7.58.0 · through 7.58.0; From 7.57.0 · through 7.57.0; From 7.56.1 · through 7.56.1; From 7.56.0 · through 7.56.0; From 7.55.1 · through 7.55.1; From 7.55.0 · through 7.55.0; From 7.54.1 · through 7.54.1; From 7.54.0 · through 7.54.0; From 7.53.1 · through 7.53.1; From 7.53.0 · through 7.53.0; From 7.52.1 · through 7.52.1; From 7.52.0 · through 7.52.0; From 7.51.0 · through 7.51.0; From 7.50.3 · through 7.50.3; From 7.50.2 · through 7.50.2; From 7.50.1 · through 7.50.1; From 7.50.0 · through 7.50.0; From 7.49.1 · through 7.49.1; From 7.49.0 · through 7.49.0; From 7.48.0 · through 7.48.0; From 7.47.1 · through 7.47.1; From 7.47.0 · through 7.47.0; From 7.46.0 · through 7.46.0; From 7.45.0 · through 7.45.0; From 7.44.0 · through 7.44.0; From 7.43.0 · through 7.43.0; From 7.42.1 · through 7.42.1; From 7.42.0 · through 7.42.0; From 7.41.0 · through 7.41.0; From 7.40.0 · through 7.40.0; From 7.39.0 · through 7.39.0; From 7.38.0 · through 7.38.0; From 7.37.1 · through 7.37.1; From 7.37.0 · through 7.37.0; From 7.36.0 · through 7.36.0; From 7.35.0 · through 7.35.0; From 7.34.0 · through 7.34.0; From 7.33.0 · through 7.33.0; From 7.32.0 · through 7.32.0; From 7.31.0 · through 7.31.0; From 7.30.0 · through 7.30.0; From 7.29.0 · through 7.29.0; From 7.28.1 · through 7.28.1; From 7.28.0 · through 7.28.0; From 7.27.0 · through 7.27.0; From 7.26.0 · through 7.26.0; From 7.25.0 · through 7.25.0; From 7.24.0 · through 7.24.0; From 7.23.1 · through 7.23.1; From 7.23.0 · through 7.23.0; From 7.22.0 · through 7.22.0; From 7.21.7 · through 7.21.7; From 7.21.6 · through 7.21.6; From 7.21.5 · through 7.21.5; From 7.21.4 · through 7.21.4; From 7.21.3 · through 7.21.3; From 7.21.2 · through 7.21.2; From 7.21.1 · through 7.21.1; From 7.21.0 · through 7.21.0; From 7.20.1 · through 7.20.1; From 7.20.0 · through 7.20.0; From 7.19.7 · through 7.19.7; From 7.19.6 · through 7.19.6; From 7.19.5 · through 7.19.5; From 7.19.4 · through 7.19.4; From 7.19.3 · through 7.19.3; From 7.19.2 · through 7.19.2; From 7.19.1 · through 7.19.1; From 7.19.0 · through 7.19.0; From 7.18.2 · through 7.18.2; From 7.18.1 · through 7.18.1; From 7.18.0 · through 7.18.0; From 7.17.1 · through 7.17.1; From 7.17.0 · through 7.17.0; From 7.16.4 · through 7.16.4; From 7.16.3 · through 7.16.3; From 7.16.2 · through 7.16.2; From 7.16.1 · through 7.16.1; From 7.16.0 · through 7.16.0; From 7.15.5 · through 7.15.5; From 7.15.4 · through 7.15.4; From 7.15.3 · through 7.15.3; From 7.15.2 · through 7.15.2; From 7.15.1 · through 7.15.1; From 7.15.0 · through 7.15.0

References 3

curl.se

hackerone.com

FAQ

Questions about CVE-2026-92389

What does this mean?

A malicious TFTP server can make libcurl send data from the handle's persistent CURLOPT_READDATA pointer, including leftover data from earlier operations such as an HTTP POST on a reused handle. This can expose sensitive information.Source: curl.se, curl.se

Am I affected, and how do I check?

Affected versions are libcurl 7.15.0 through 8.22.0. Check the installed version with curl --version, and check whether TFTP is used on a handle that was previously used for other transfers.Source: curl.se, curl.se

What should I do about it?

Upgrade to curl 8.23.0. The vendor also lists fixed releases 8.14.3, 8.16.2, and 8.20.2 for their branches.Source: curl.se, curl.se

Is it being exploited?

It is not in CISA's Known Exploited Vulnerabilities catalog, and CISA's SSVC assessment does not mark exploitation as active. That does not mean it has not been attacked: vendors and researchers can report attacks before CISA lists them. CISA's SSVC assessment notes a proof of concept exists. No public exploit code is tracked.Source: cve.now feed data

Why is it rated 8.1 High?

The CVSS score of 8.1 reflects the worst case. curl's own rating of Low reflects how the vendor judges the likelihood of the affected setup.Source: curl.se, curl.se