✓ProveIt
Examples / Report #1826048 Saved analysis

CVE-2023-23916: HTTP multi-header compression denial of service

curl · 2023-01-087.2s analysis · $0.005 in model calls

What the report claims

A server can send an HTTP response with many occurrences of Transfer-Encoding and/or Content-Encoding headers, each allocating a buffer, leading to memory exhaustion.

Compare with curl's recorded outcome

Known vulnerability

A real vulnerability: CVE-2023-23916 HTTP multi-header compression denial of service

Shown for comparison after analysis. The pipeline did not see this label.

ProveIt's finding

More detail needed

There is not enough information to verify the reported bug.

Why this finding?
  • No curl source code was retrieved for the target revision (5a9a5e171e18), making it impossible to verify any of the claims about header processing, buffer allocation, or bounds checking.
  • The report references a patch and test (test418) but neither the patch nor the test code is included in the provided materials.
  • Deterministic checks returned 'nothing_to_check', confirming no code was available for analysis.
What still needs checking
  • The curl source code for revision 5a9a5e171e18, particularly the HTTP header parsing and content/transfer encoding handling (likely in lib/http.c or similar).
  • The referenced patch that fixes the issue and adds test418.
How this analysis ran 3 claims · 0 citations verified

Checked against curl master on 2023-01-08 (5a9a5e171e18). Dev evaluation split. Citation verification checks that a referenced line was in the evidence; it does not prove the model interpreted it correctly.

1 · Grounding
nothing to check
no model · 0 references checked out, 0 did not
2 · Claims
NVIDIA-Nemotron-3-Nano-30B-A3B
3 claims · 965 tokens · $0.0001
3 · Evidence
0 code snippets
real curl source at 5a9a5e171e18
4 · Judgment
Nemotron-3-Ultra-550b-a55b
2572 tokens · 5.3s · $0.0049
5 · Receipts
0 of 0 citations verified
every citation must point at code the judge was shown
Review a draft reply to the reporter

Edit and verify before sending.

Thank you for the report. To assess this issue, we need the curl source code at the revision you tested (5a9a5e171e18) and the patch you mention. Could you provide the relevant files (e.g., lib/http.c, lib/transfer.c) or a link to the patch? Without the code, we cannot verify the claims about unbounded header counts and buffer allocation.

Inspect all claims and source code 3 claims · 0 code excerpts

Report claims

C1flaw not verifiable

Each listed encoding allocates a buffer

Read the reasoning

No curl source code was provided for the revision in question (5a9a5e171e18). The claim that each listed encoding allocates a buffer cannot be verified without seeing the relevant header parsing and buffer allocation code.

C2flaw not verifiable

The number of headers is not bounded

Read the reasoning

No curl source code was provided. The claim that the number of Transfer-Encoding and Content-Encoding headers is not bounded cannot be verified without seeing the header processing logic and any loop limits.

C3impact not verifiable

An HTTP response can consume all available memory

Read the reasoning

No curl source code was provided. The impact claim that an HTTP response can consume all available memory depends on the previous two claims and cannot be assessed without the implementation.

Read the original report

Full report on HackerOne ↗

## Summary: A server can send an HTTP response with many occurrences of Transfer-Encoding and/or Content-Encoding headers. Each listed encoding allocates a buffer. The number of encodings listed within each header is already bounded but the number of headers is not, allowing an HTTP response to consume all available memory. ## Steps To Reproduce: Using the curl test environment: 1. Extract test418 from the attached patch 2. runtests.pl 418 ## Supporting Material/References: Patch fixing the problem and new test for the case. ## Impact Denial of service.

Source code

No source code was retrieved for this analysis. The evidence may be incomplete.