IT SBIT Services
Schneeberger
DEEN
CVE tracker

wolfSSH: ECDSA host key curve not validated against negotiated algorithm

CVE-2026-16516Critical 9.0

← All vulnerabilities

Summary

wolfSSH does not check that the ECDSA curve in a received host key blob matches the algorithm negotiated during key exchange. An attacker in an active man-in-the-middle position can substitute a host key on a different curve, and the client imports it without error. Exploitation also requires a lax public key check in the application, such as trust-on-first-use or an algorithm-name-only check.

Affected

  • wolfSSH up to and including 1.5.0
  • Default configuration is unaffected according to the CVE record; the affected condition is the application's public key check.

Fixed in

  • Fixed in wolfSSH 1.6.0 (released October 6, 2026).
  • Verify the SHA256 hash of the download before use, because the download page and the release notes list different dates.

Workaround

  • No official workaround; upgrade is the fix.
  • Until patched, enforce strict host key verification: pin the server's host key obtained out of band and do not accept keys based on algorithm name alone.

Exploitation

  • No known exploitation in the wild; not listed as known exploited.
  • No public proof of concept found; the issue and fix commit are public and can be studied.
  • CISA SSVC: exploitation none, not automatable, partial technical impact.
  • EPSS 0.0015 (low).

Our recommendation

  • Inventory software that embeds or uses wolfSSH, especially outbound clients in management tools, file-transfer utilities and IoT devices.
  • Upgrade to wolfSSH 1.6.0 or a distribution package built from it.
  • Where an upgrade is not possible, enforce strict host key verification on clients connecting over untrusted networks.
  • Also check for CVE-2026-83540 (wolfSSHd on Windows, privilege escalation), fixed in the same release.

Public exploits

PoC-in-GitHub, Metasploit and Exploit-DB list nothing for this CVE.

Research sources

Researched and written up in English and German by an AI (Claude by Anthropic) based on NVD, CISA, EPSS and the sources listed. The vendor information is authoritative. Researched on 31 Oct 2026, 08:14.

Original description (NVD)

wolfSSH does not validate that the ECDSA curve identifier in a KEXDH_REPLY host key blob matches the algorithm negotiated during key exchange. In ParseECCPubKey() (src/internal.c), the blob's algorithm string is used to derive the curve via NameToId/wcPrimeForId without checking against the negotiated ssh->handshake->pubKeyId, and the RFC 5656 curve identifier string is discarded via GetSkip() rather than compared. An active network man-in-the-middle attacker can substitute a host key blob containing a different ECDSA curve, causing the client to import the key on the wrong curve. Because the attacker controls the private key for the substituted curve, signature verification passes. Exploitation requires an active MitM position and a lax public key check callback (e.g., TOFU, algorithm-name-only check, or fingerprint match against the parsed key).

NVD references (2)

Sources

The tracker combines official, freely usable data sources – updated continuously:

This product uses data from the NVD API but is not endorsed or certified by the NVD. EPSS data © FIRST.org.

Affected? We can help.

We check whether your systems are affected, install updates and close the gap – continuously with the System Health Checker if you wish.