Это пример того, что:
-
есть баги не менее серьезные, чем всякие переполнения буферов и «заплетания» потоков; и от таких багов никто кроме мозга не защитит;
-
работает - не трожь;
-
иметь на руках надо формальную модель, понимать поведение на граничных значениях; и уже потом говнокодить.
Итак, теперь к делу. В криптографической библиотеке оракловской Java нашли баг в проверке подписи ECDSA. Элементы подписи (r и s) необходимо проверять на нулевые значения, иначе математические операции над ними будут приводить к некорректному результату. В более древних версиях джавы был взят код на C++, и там, видимо, данное условие проверялось. В новом коде Java 15+ проверки уже нет. В результате с новыми версиями оракловской джавы можно любой сертификат сделать проверяемым, если тупо забить в r и s нули.
Багфикс от оракла уже готов.
https://www.theregister.com/2022/04/20/java_authentication_bug/