Buffer Overflow in curl MQTT Test Server (tests/server/mqttd.c) via Malicious CONNECT Packet
What the report claims
Buffer overflow in curl MQTT test server (mqttd.c) via malicious CONNECT packet with oversized password length field
Compare with curl's recorded outcome
Labeled AI slop
curl's maintainer lists this report as AI slop
Shown for comparison after analysis. The pipeline did not see this label.
ProveIt's finding
The code does what the report says, but curl's own policy may exclude it. A maintainer decides.
curl policy: Debug & ExperimentsSee the withdrawn model reasoning
The following reasoning failed the citation check and does not support the final finding.
- The deterministic checks confirm that 0/4 quoted lines from the report's vulnerable code snippet appear in the actual curl source at revision 3f297f1ecc9a, indicating the reported vulnerable code does not exist
- The target is tests/server/mqttd.c, a test server that is not built by default and falls under the project's 'Debug & Experiments' policy section which explicitly states such vulnerabilities are not considered security problems
- Even if a bug existed in the test server, the project policy states: 'Vulnerabilities in features which are off by default (in the build) and documented as experimental, or exist only in debug mode, are not eligible for a reward and we do not consider them security problems'
- The report appears to fabricate a vulnerable code snippet that does not exist in the actual codebase
How this analysis ran 6 claims · 0 citations verified
Evidence check: the behavior is real; the project's policy section 'Debug & Experiments' may exclude it
Checked against curl master on 2025-04-19 (3f297f1ecc9a). Dev evaluation split. Citation verification checks that a referenced line was in the evidence; it does not prove the model interpreted it correctly.
Inspect the withdrawn draft reply
This draft belongs to the withdrawn judgment. It may contain unsupported claims.
The vulnerable code snippet you quote from mqttd.c does not exist in the curl source at the revision you target (3f297f1ecc9a). Deterministic checks show 0/4 quoted lines appear anywhere in the codebase. Additionally, mqttd.c is a test server not built by default; per curl's security policy, vulnerabilities in debug/experimental features off by default are not considered security issues. Please verify the exact file revision and code you are reporting against.
Inspect all claims and source code 6 claims · 0 code excerpts
This model judgment was withdrawn. The claim assessments below are preserved for inspection and may be wrong.
Report claims
No bounds checking is performed when reading the 2-byte password length field in MQTT CONNECT packets
Read the reasoning
The report quotes a specific code snippet from mqttd.c showing password length parsing without bounds checks, but deterministic checks confirm none of the quoted lines exist in the actual curl source at the target revision. The claim describes code that is not present.
In mqttd.c, the password length is calculated using buffer[start_passwd] and buffer[start_passwd + 1] without validating that start_passwd + 1 is within the buffer bounds
Read the reasoning
The report cites a specific location and code pattern for the password length calculation, but the deterministic checks show the quoted code does not exist in the actual mqttd.c file at the revision checked.
A malicious CONNECT packet with a password length value of 65535 (0xFFFF) is sent to the MQTT test server
Read the reasoning
The trigger claim depends on the existence of the vulnerable code path, which the deterministic checks contradict. Without the actual parsing code, we cannot verify if this packet would cause a crash.
The server crashes with a segmentation fault due to invalid memory access, or potentially allows arbitrary code execution
Read the reasoning
The impact claim (crash or RCE) depends on the vulnerability existing. Since the code quoted in the report is not found in the actual source, the impact cannot be verified.
The vulnerability can be reproduced by compiling mqttd.c, starting the server on port 1883, and sending a crafted CONNECT packet with an invalid password length using netcat
Read the reasoning
The reproduction steps assume the vulnerable code is present in mqttd.c. Since the quoted code does not exist in the actual source, the reproduction cannot be verified.
The crash is confirmed by observing the log message 'malloc(): invalid size (unsorted)' in the server output
Read the reasoning
The crash confirmation claim depends on the vulnerability being real and reproducible. Since the underlying code is not found in the actual source, this claim cannot be verified.
Deterministic checks that failed
- quote only 0/4 quoted lines appear anywhere in curl at 3f297f1ecc9a
What the report says about other projects
not addressed The password length field in MQTT CONNECT packets must be validated to prevent buffer overflows
not addressed Buffer overflows in network protocol parsing require bounds checking of length fields
Read the original report (excerpt)
Source code
No source code was retrieved for this analysis. The evidence may be incomplete.