ワイエルシュトラス形式の点の加算公式は係数 b を使わないため、曲線の方程式を一度も確認しないコードは、小さな部分群を持つ別の曲線上の点 P に対しても、何の疑いもなく d·P を計算してしまいます。各応答(ECDH の共有秘密、暗号化されたメッセージ、MAC)からは小さな素数を法とした d の値がわかり、十分な数が集まれば、中国剰余定理によって鍵全体を復元できます。この攻撃は 2000年に Biehl、Meyer、Müller が報告し、2015年には Jager、Schwenk、Somorovsky が TLS-ECDH の実装に対して実証しました。2017年には、複数の JOSE ライブラリが ECDH-ES で無効な点を受け入れることが判明しました。
対策のコストはわずかです。点が曲線上にあること、無限遠点ではないこと、さらにコファクターが 1 を超える場合は正しい部分群に属することを確認します(SEC 1 §3.2.2、SP 800-56A §5.6.2.3)。最近のライブラリの多くは、インポート時に検証を行います。X25519 と X448 は、ツイスト上でもモンゴメリーラダーが安全に動作するよう設計されているため、残る確認は出力がすべてゼロかどうかだけです。
関連する失敗に、呼び出し側が渡した曲線パラメーターを信頼してしまうものがあります。Windows CryptoAPI の CVE-2020-0601(「CurveBall」)は、明示的なパラメーターで生成元を攻撃者が選んだものに差し替えた証明書を受け入れてしまい、偽造された証明書が信頼されたルート証明書になりすますことを許しました。RFC 5480 が求めるとおり名前付き曲線だけを受け入れれば、この抜け道はふさがります。