CVE-2020-8284: trusting FTP PASV responses
What the report claims
curl trusts FTP PASV responses when CURLOPT_FTP_SKIP_PASV_IP is disabled, allowing an attacker to force curl to perform port scanning on behalf of the server.
Compare with curl's recorded outcome
Known vulnerability
A real vulnerability: CVE-2020-8284 trusting FTP PASV responses
Shown for comparison after analysis. The pipeline did not see this label.
ProveIt's finding
The available evidence does not settle the report. A maintainer should investigate.
Why this finding?
- The provided code snippets only show curl_easy_perform in lib/easy.c, not the FTP PASV handling logic that would decide the claims.
- The deterministic checks confirm CURLOPT_FTP_SKIP_PASV_IP exists but do not show its default value or how the PASV response is processed.
- The report describes a plausible attack (CVE-2020-8284) but verification requires examining lib/ftp.c or similar, which is not in the provided context.
What still needs checking
- The FTP PASV response parsing and connection logic (likely in lib/ftp.c) to see if the IP/port from the PASV response is used without validation when CURLOPT_FTP_SKIP_PASV_IP is disabled.
- The default value of CURLOPT_FTP_SKIP_PASV_IP at the reported revision.
How this analysis ran 5 claims · 0 citations verified
Checked against curl master on 2020-11-21 (0d16a49c16a8). Test evaluation split. Citation verification checks that a referenced line was in the evidence; it does not prove the model interpreted it correctly.
Review a draft reply to the reporter
Edit and verify before sending.
Thank you for the detailed report. The provided code snippets for triage do not include the FTP PASV handling logic (likely in lib/ftp.c). We will examine that code to verify whether curl connects to the PASV-provided IP/port without validation when CURLOPT_FTP_SKIP_PASV_IP is disabled. Please confirm the exact curl version/commit tested (you referenced 0d16a49c16a8).
Inspect all claims and source code 5 claims · 1 code excerpts
Report claims
curl trusts FTP PASV responses when CURLOPT_FTP_SKIP_PASV_IP is disabled
Read the reasoning
The FTP PASV handling code (likely in lib/ftp.c) is not provided in the source snippets. Cannot verify if curl trusts PASV responses when CURLOPT_FTP_SKIP_PASV_IP is disabled.
in libcurl's FTP PASV handling code
Read the reasoning
Location claim references curl_ftp.c but that file is not provided.
by controlling the URL used by curl and sending a PASV response with attacker‑controlled IP and port
Read the reasoning
Trigger mechanism depends on FTP PASV parsing code not provided.
enables port scanning of internal services and potential information disclosure
Read the reasoning
Impact claim relies on the flaw being present; cannot verify without the handling code.
use a malicious FTP server that returns a PASV response containing the target IP and port
Read the reasoning
Reproduction steps reference an attachment not available; the malicious FTP server behavior cannot be verified against curl code.
Read the original report
Source code
| 700 | CURLcode curl_easy_perform(struct Curl_easy *data) |
| 701 | { |
| 702 | return easy_perform(data, FALSE); |
| 703 | } |