Формулы сложения для кривых в форме Вейерштрасса не используют коэффициент b, поэтому код, который не проверяет уравнение кривой, без возражений вычислит d·P для точки P на другой кривой с подгруппой малого порядка. Каждый ответ (общий секрет ECDH, зашифрованное сообщение, MAC) раскрывает d по модулю небольшого простого числа, а китайская теорема об остатках собирает из достаточного числа таких остатков полный ключ. Биль, Майер и Мюллер описали атаку в 2000 году; Ягер, Швенк и Соморовский продемонстрировали её на реализациях TLS-ECDH в 2015 году, а в 2017 году выяснилось, что несколько библиотек JOSE принимают недопустимые точки в ECDH-ES.
Исправление обходится дёшево: проверьте, что точка лежит на кривой, не совпадает с бесконечно удалённой точкой и, если кофактор больше 1, принадлежит нужной подгруппе (SEC 1, § 3.2.2; SP 800-56A, § 5.6.2.3). Большинство современных библиотек выполняют эту проверку при импорте. X25519 и X448 устроены так, что лесенка Монтгомери остаётся безопасной и на кручении кривой (twist), поэтому остаётся лишь проверить, что результат не состоит из одних нулей.
Родственная ошибка — доверять параметрам кривой, которые передал вызывающий код: из-за CVE-2020-0601 («CurveBall») Windows CryptoAPI принимал сертификаты, в явных параметрах которых генератор был заменён на выбранный атакующим, и поддельный сертификат мог выдать себя за доверенный корневой. Использование только именованных кривых, как требует RFC 5480, закрывает эту возможность.