CVE-2025-10966: missing SFTP host verification with wolfSSH
What the report claims
curl built with wolfSSH does not verify SSH server host keys or provide known_hosts integration, allowing potential man‑in‑the‑middle attacks on SFTP connections.
Compare with curl's recorded outcome
Known vulnerability
A real vulnerability: CVE-2025-10966 missing SFTP host verification with wolfSSH
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.
See the withdrawn model reasoning
The following reasoning failed the citation check and does not support the final finding.
- wolfssh.c state machine skips SSH_HOSTKEY verification state entirely, transitioning from SSH_S_STARTUP directly to SSH_STOP on connection success (lines 637-657)
- wssh_connect function registers authentication callbacks but no host key verification callback or known_hosts loading (lines 399-461)
- SSH_HOSTKEY enum exists in shared ssh.h (line 62) indicating framework expects backends to implement it
- Runtime errors confirm --ssh-knownhosts option is unknown and --hostpubsha256 reports 'does not support this'
- wolfSSH is a selectable backend at build time, not a legacy dependency (wolfssh/1.4.20 is current)
- No project policy section excludes optional backend security flaws
How this analysis ran 5 claims · 0 citations verified
Evidence check: judge said likely_valid without a code citation supporting a central claim
Checked against curl master on 2025-09-23 (67de9924eb9d). 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 detailed report and reproduction steps. The wolfSSH backend indeed lacks host key verification: its state machine goes from SSH_S_STARTUP straight to SSH_STOP without a SSH_HOSTKEY step, and wssh_connect registers no host key callback. The --ssh-knownhosts option is unavailable and --hostpubsha256 is advertised but unsupported. This is a valid security flaw in the wolfSSH backend. We will investigate adding host key verification to wolfssh.c.
Inspect all claims and source code 5 claims · 0 code excerpts
This model judgment was withdrawn. The claim assessments below are preserved for inspection and may be wrong.
Report claims
The wolfSSH backend in curl performs no server host key verification and exposes no host identity options in the curl tool.
Read the reasoning
The wolfSSH backend's connection function and state machine show no host key verification step. The SSH_HOSTKEY state exists in the shared ssh.h enum but wolfssh.c never transitions to it. Runtime errors confirm --ssh-knownhosts is unknown and --hostpubsha256 reports 'does not support this' despite appearing in --help.
The issue is in lib/vssh/wolfssh.c, specifically in the wssh_connect function and the state machine that lacks SSH_HOSTKEY handling.
Read the reasoning
Code snippets directly show the missing host key verification in wssh_connect and the state machine that skips SSH_HOSTKEY.
When curl is built with wolfSSH and used for SFTP, the connection proceeds without any host key verification step.
Read the reasoning
The state machine proceeds from SSH_S_STARTUP directly to SSH_STOP on successful connection, with no intermediate host key verification state.
Any presented server host key is effectively accepted, enabling man‑in‑the‑middle attacks on SSH/SFTP connections.
Read the reasoning
Without any host key verification step or known_hosts integration, the client accepts any server host key presented, enabling MITM attacks on SFTP/SCP connections using this backend.
Build curl with wolfSSH, then run curl --ssh-knownhosts /tmp/kh -vvv sftp://localhost:22/ to see the unknown option error, confirming lack of host verification.
Read the reasoning
Reproduction steps are concrete and the observed errors (unknown option --ssh-knownhosts, --hostpubsha256 not supported) directly match the missing backend implementation.
What the report says about other projects
not addressed The installed libcurl version does not support --hostpubsha256
Read the original report (excerpt)
Source code
No source code was retrieved for this analysis. The evidence may be incomplete.