Use of a Broken or Risky Cryptographic Algorithm (CWE-327) in libcurl
What the report claims
The report claims that libcurl uses the insecure DES cipher in the file lib/curl_ntlm_core.c for NTLM authentication.
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: Legacy dependenciesSee the withdrawn model reasoning
The following reasoning failed the citation check and does not support the final finding.
- NTLMv1 is a legacy authentication protocol that mandates DES as part of its specification; curl's use of kCCAlgorithmDES reflects correct implementation of the protocol, not an independent cryptographic choice.
- The project policy explicitly states: 'Problems that can be triggered only by the use of a *legacy dependency* are not considered security problems.' NTLMv1 meets the criteria: released over 10 years ago, modern replacements (NTLMv2, Kerberos) exist and are in common use.
- The recommended fix ('replace kCCAlgorithmDES with kCCAlgorithmAES') demonstrates a misunderstanding: swapping the cipher would break NTLMv1 compatibility, not strengthen it. The vulnerability, if any, lies in the NTLMv1 protocol design, not in curl's implementation.
- No source code was provided to show misuse of DES outside the NTLMv1 protocol context; deterministic checks only confirm the file and symbol exist.
What still needs checking
- The actual source code of lib/curl_ntlm_core.c at the relevant lines to confirm DES is used only for NTLMv1 protocol operations and not for other purposes.
How this analysis ran 6 claims · 0 citations verified
Evidence check: the behavior is real; the project's policy section 'Legacy dependencies' may exclude it
Checked against curl master on 2025-04-29 (e0ebc3ff1349). Test 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.
Thank you for the report. The use of DES in curl_ntlm_core.c is for implementing the NTLMv1 authentication protocol, which mandates DES by specification. Per curl's security policy, issues triggered only by legacy dependencies (protocols released over 10 years ago with modern replacements available) are not considered security vulnerabilities in curl. The suggested fix of replacing DES with AES would break NTLMv1 compatibility rather than improve security. If you believe DES is used outside the NTLMv1 protocol flow, please provide the specific code path.
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
Uses DES cipher in lib/curl_ntlm_core.c
Read the reasoning
The deterministic checks confirm that lib/curl_ntlm_core.c exists and contains the symbol kCCAlgorithmDES at the reported revision. This supports the claim that DES cipher is referenced in the file.
File lib/curl_ntlm_core.c, line 228
Read the reasoning
The deterministic check confirms the file exists at the target revision. Line 228 cannot be verified without source code, but the file location claim is grounded.
NTLMv1 authentication uses DES
Read the reasoning
NTLMv1 protocol specification mandates the use of DES for its cryptographic operations. The presence of kCCAlgorithmDES in curl's NTLM core implementation is consistent with correct implementation of the NTLMv1 protocol.
DES can be brute-forced, vulnerable to cryptanalysis, and non‑compliant with modern standards
Read the reasoning
The external sources (E1-E6) do not contain explicit statements confirming the specific claims about DES being brute-forceable, vulnerable to cryptanalysis, or non-compliant. E2 shows TDES (Triple-DES) as 'Legacy use only' but does not address single DES. The cryptographic weaknesses of DES are generally accepted knowledge but not verified by the provided excerpts.
Inspect lib/curl_ntlm_core.c and locate kCCAlgorithmDES constant
Read the reasoning
The reproduction steps are feasible: the file and symbol exist at the reported revision.
Attacker could intercept and decrypt data or perform MITM attacks
Read the reasoning
The claimed attack impact (intercept/decrypt data, MITM attacks) depends on the cryptographic weakness of DES in NTLMv1. However, this is a property of the NTLMv1 protocol itself, not a flaw in curl's implementation. The external sources do not confirm these specific attack scenarios against curl's usage.
What the report says about other projects
not addressed DES is considered insecure due to its short key length (56 bits) and susceptibility to brute-force attacks
not addressed AES is recommended as a replacement for DES because it provides stronger encryption
Read the original report
Source code
No source code was retrieved for this analysis. The evidence may be incomplete.