Вразливість у бібліотеці OpenPGP.js, що дозволяє обійти верифікацію повідомлень

У бібліотеці 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.

Бібліотека OpenPGP.js надає самодостатню реалізацію протоколу OpenPGP мовою JavaScript, що дозволяє виконувати у браузері операції шифрування та працювати з цифровими підписами на основі відкритих ключів. Проект розвивається розробниками Proton Mail і окрім організації наскрізного шифрування повідомлень у Proton Mail застосовується у таких проектах, як FlowCrypt, Mymail-Crypt, UDC, Encrypt.to, PGP Anywhere та Passbolt.

Вразливість зачіпає процедури верифікації вбудованого в текст підпису (openpgp.verify) і підписаних і зашифрованих повідомлень (penpgp.decrypt). вихідного підписаного повідомлення. Вразливість не зачіпає підписи, які розповсюджуються окремо від тексту (проблема проявляється лише при передачі підпису разом із текстом єдиним блоком даних).

Для формування підставного повідомлення атакуючій достатньо наявності одного повідомлення з вбудованим або окремим підписом, а також знання вихідних даних, підписаних у цьому повідомленні. Атакуючий може змінити повідомлення так, що для зміненого варіанта підпис продовжить вважатися коректним. Аналогічно можна змінити зашифровані повідомлення з підписом, під час розпакування яких повертатимуться додані атакуючим дані.

Джерело: opennet.ru

Купити надійний хостинг для сайтів із захистом від DDoS, VPS VDS сервери 🔥 Купити надійний хостинг для сайтів із захистом від DDoS, VPS VDS сервери | ProHoster