В библиотеке OpenPGP.js выявлена уязвимость (CVE-2025-47934), позволяющая злоумышленнику отправить модифицированное сообщение, которое будет воспринято получателем как верифицированное (функции openpgp.verify и openpgp.decrypt вернут признак успешной проверки цифровой подписи, несмотря на то, что содержимое заменено и отличается от данных, для которых создавалась подпись). Уязвимость устранена в выпусках OpenPGP.js 5.11.3 и 6.1.1. Проблема проявляется только в ветках OpenPGP.js 5.x и 6.x, и не затрагивает OpenPGP.js 4.x...Подробнее: https://www.opennet.dev/opennews/art.shtml?num=63278
Красивое...
Что-то подобное было в реализациях JWT в своё время
Получается, системой выдавался jwt-ключ, содержащий открытый ключ асимметричного шифрования
Достаточно было в полученном jwt-ключе поменять тип на симметричный, проставить туда тот же открытый ключ, им же "подписать" и... всё норм. Меняй параметры ключа как хочешь - заходи под любым пользователем с любыми правами итд итп
Протонмайл спалился
Я с самого начало этому протону не доверял. Мутная контора какая-то.
Зашёл я в код посмотреть, а там ужас что на***верчено. Даже по сообщению коммита `Don't mutate message during verification` видно квалификацию.
Интересно, смотрели ли, кто это коммитил, когда и, главное, не упало ли ему на счет большая сумма денег.
Пример ХЗ показал, что опесорсные проекты супер уязвимы к внедрению васянов без имени и фамилии.
Так и запишем: в безопасных системах структуры данных организованы в иерархические структуры, где если только одна запись имеет силу - то исключительно её можно поместить в родительскую структуру.
Пакетная структура OpenPGP - хлам. От неё пора избавляться.
в пользу чего?
видимо, вражеских гостов
Зачем такое писать на жс не ясно, когда есть васм.
Wasm не спасёт от мамкиных криптогрофов.Даже проверенные алгоритмы могут иметь уязвимости в конкретной имплементации, и это не сильно зависит от языка.
> Wasm не спасёт от мамкиных криптогрофов.
> Даже проверенные алгоритмы могут иметь уязвимости в конкретной имплементации, и это не
> сильно зависит от языка.Только взять готовую библиотеку лучше, чем реализовывать криптографию самому на жс.