CVE-2022-27780: percent-encoded path separator in URL host
What the report claims
URL decoding the entire proxy string could lead to SSRF filter bypasses.
Compare with curl's recorded outcome
Known vulnerability
A real vulnerability: CVE-2022-27780 percent-encoded path separator in URL host
Shown for comparison after analysis. The pipeline did not see this label.
ProveIt's finding
There is not enough information to verify the reported bug.
Why this finding?
- No curl source code was provided for the target revision (fa40e15ae742), making it impossible to verify any claims about curl's proxy string parsing and URL decoding behavior.
- The deterministic checks indicate the revision was grounded but the curl_source section explicitly states no code could be retrieved.
- Without the relevant proxy parsing code (likely in lib/url.c or similar), the central claim about URL decoding of the host component cannot be assessed.
What still needs checking
- curl source code for revision fa40e15ae742, particularly the proxy URL parsing and handling logic (likely in lib/url.c, lib/http_proxy.c, or similar files)
How this analysis ran 6 claims · 0 citations verified
Checked against curl master on 2022-04-28 (fa40e15ae742). Dev 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 report. We cannot evaluate this without the curl source code for the target revision. Please provide the relevant proxy URL parsing code (likely in lib/url.c or lib/http_proxy.c) from commit fa40e15ae742, or confirm the revision you tested against so we can retrieve the correct files.
Inspect all claims and source code 6 claims · 0 code excerpts
Report claims
URL decoding the entire proxy string could lead to SSRF filter bypasses.
Read the reasoning
No curl source code was provided to verify whether URL decoding of the entire proxy string occurs and could lead to SSRF filter bypasses.
When the following curl specifies the proxy string `http://example.com%2F127.0.0.1`
Read the reasoning
This describes a proxy string example but cannot be verified against curl's parsing logic without the source code.
If curl URL parser or another RFC3986 compliant parser parses the initial string http://127.0.0.1%2F.example.com, it will derive 127.0.0.1%2Fexample.com or 127.0.0.1/example.com as the host
Read the reasoning
Claims about how curl's URL parser or RFC3986-compliant parsers handle percent-encoded separators cannot be verified without curl's parsing code.
curl will then URL decode the entire proxy string to http://127.0.0.1/example.com and send it to the server
Read the reasoning
The claim that curl URL-decodes the entire proxy string and sends it to the server cannot be verified without the relevant curl source code.
Perform the following: curl -x http://127.0.0.1:8899 http://example.com%2F127.0.0.1
Read the reasoning
Reproduction step provided but cannot be validated against curl's actual behavior without the source code.
curl -x http://127.0.0.1:8899 -H "Host: example.com" http://example.com%2F127.0.0.1/%2e%2e/
Read the reasoning
Second reproduction step with Host header override cannot be verified without curl's source code.
What the report says about other projects
confirmed nghttpx normalizes host by converting to lower case and decodes percent-encoded unreserved characters in path per RFC 3986
“For host part, they are converted to lower case. For path part, percent-encoded unreserved characters defined in RFC 3986 are decoded, and any dot-segments (".." and ".") are resolved and removed.” source
confirmed RFC 7239 defines node identifier syntax for proxy forwarding
“The node identifier is one of the following: o The client's IP address, with an optional port number o A token indicating that the IP address of the client is not known to the proxy server o A generated token, allowing for tracing and debugging, while allowing the internal structure or sensitive information to be hidden” source
Read the original report (excerpt)
Source code
No source code was retrieved for this analysis. The evidence may be incomplete.