Следите за новостями по этой теме!
Подписаться на «Рифы и пачки / Твоя культура»Уязвимость OpenPGP.js сломала публичную криптографию. Ошибка безопасности в реализации OpenPGP.js на JavaScript позволяет злоумышленникам подтверждать поддельные сообщения так, как будто они легитимны, по сути ломая публичную ключевую криптографию. Об этом сообщили исследователи безопасности Эдоардо Джерачи и Томас Ринсма из Codean Labs, которые обнаружили и недавно сообщили об этой уязвимости.
OpenPGP.js — это библиотека на JavaScript с открытым исходным кодом, которая позволяет разработчикам шифровать, расшифровывать, подписывать и проверять сообщения с использованием стандарта OpenPGP. Обычно при цифровой подписи сообщения гарантируется, что содержимое не было изменено.
Но в данном случае уязвимость позволяет злоумышленнику изменить содержание сообщения, при этом все будет выглядеть так, как будто у него есть действительная подпись.
В теории уязвимость можно использовать для подделки авторизации платежей и других целей. Если компания использует OpenPGP.js для проверки цифровых подписей платежных запросов от своих клиентов, злоумышленник сможет получить действительный подписанный запрос, изменить детали платежа и отправить его обратно, фактически похитив деньги.
Уязвимые версии OpenPGP.js: 5.0.1 до 5.12.2 и 6.0.0-alpha.0 до 6.1.0. Проблема была исправлена в версиях 5.11.3 и 6.1.1. Версия 4 является безопасной.
Тем, кто не может немедленно установить патч, следует хотя бы применить обходной путь. Пользователи могут проверять подписи по отдельности, вместо того чтобы просто доверять системе, или расшифровывать сообщения в два этапа, чтобы убедиться, что данные не были изменены.
Ошибка сейчас отслеживается как CVE-2025-47934 и имеет балл серьезности 8.7 из 10 (высокий). В настоящее время нет подтвержденных сведений о злоупотреблении в дикой природе. Доказательство концепции (PoC) и подробный анализ уязвимости скоро будут доступны, как заявили разработчики, вероятно, чтобы дать пользователям достаточно времени для установки патча.
Похоже, как гром среди ясного неба открытая криптография вновь попала в ловушку своих же создателей. Не успели пользователи OpenPGP.js отойти от прошлого скандала, как Эдоардо Джерачи и Томас Ринсма из Codean Labs обнажили на свет божий новую жемчужину — уязвимость, дающую возможность злоумышленникам подделывать сообщения с такой легкостью, что даже профессиональные мошенники могли бы испытать чувство ностальгии.
Наверное, это просто очередной день на работе для лоббистов хакеров, которые теперь могут подтвердить свои подделки, заставив жертвы чувствовать себя безопасно, будто они купили билет на несуществующий лайнер в тропическом раю. Крупные компании, самоотверженно использующие OpenPGP.js для проверки платежных запросов, могут однажды обнаружить, что вместо заказа на яхту с панорамным видом они всего лишь оплатили чью-то курительную трубку и кучу виртуальных роллов.
Мысль, что необходимые патчи теперь теперь требуют от пользователей делать что-то столь диковинное, как проверять подписи по отдельности, звучит как плохая шутка. Хотя, возможно, это тот самый метод проверки, который отличает настоящего гуру программирования от простого пользователя. Подсознательно разработчики библиотек должны быть в восторге от появления такого “признака отваги” в трудные времена: предлагая обходные пути, они словно сами подбадривают злодеев.
Не забудем об ироничном моменте, что за границей уже идёт отслеживание CVE-2025-47934 с серьезностью 8.7 из 10 — это как если бы сообщить, что ваша последняя вечеринка закончилась с открытыми окнами и разбитым стеклом, но никто, к счастью, не пострадал. Признаки безмятежного существования в мнимой безопасности уже не так утешительны, когда ты понимаешь, насколько коварен этот мир.
Итак, чудесный мир OpenPGP.js снова открывает двери для злоумышленников под предлогом необходимости улучшения, а мир криптографии — это, как всегда, игра в прятки с сомнительными друзьями и скрытыми интересами. С одной стороны, высоких стандартов безопасности, с другой — крик о помощи от пользователей, которые заняты выбором: доверять или бежать без оглядки.