Многие версии JavaScript-библиотеки xrpl.js Ripple в npm оказались скомпрометированы неизвестными злоумышленниками в рамках атаки на цепочку поставок. Вредоносный код похищал seed-фразы и приватные ключи кошельков XRP и передавал информацию на сервер хакеров.
Вредоносный код был добавлен в версии 2.14.2, 4.2.1, 4.2.2, 4.2.3 и 4.2.4 и опубликован в npm 21 апреля 2025 года. В настоящее время скомпрометированные версии уже удалены, и доступен «чистый» релиз 4.2.5, на который всем пользователям следует перейти как можно скорее.
Библиотека xrpl.js поддерживается XRP Ledger Foundation (XRPLF) и является рекомендованной библиотекой Ripple для взаимодействия с блокчейном XRP посредством JavaScript. Она позволяет выполнять операции с кошельками, переводы XRP и другие блокчейн-операции. Поскольку эта библиотека является рекомендованной для взаимодействия с блокчейном XRP, ее широко применяют разработчики: только за последнюю неделю ее загрузили более 140 000 раз.
Сообщается, что библиотека была модифицирована с помощью метода checkValidityOfSeed, добавленного в конец файла /src/index.ts. Таким образом украденные данные передавались с помощью HTTP POST-запросов на сервер по адресу https://0x9c[.]xyz/xcm, принадлежащий злоумышленникам. Вредоносную активность старались скрыть с помощью кастомного user agent ad-referral, чтобы все выглядело как рекламный запрос для систем мониторинга трафика.
По информации исследователей из компании Aikido, функция checkValidityOfSeed() вызывается в различных функциях, где используется для кражи seed, приватных ключей и мнемоники кошельков XRP. В итоге злоумышленники получают возможность использовать эти данные для импорта XRP-кошельков на свои устройства, чтобы похитить из них все средства.
Издание Bleeping Computer сообщает, что в общей сложности скомпрометированные версии библиотеки были загружены 452 раза. Хотя общее количество загрузок невелико, журналисты отмечают, что эта библиотека, вероятно, использовалась для управления и взаимодействия с гораздо большим количеством кошельков XRP.
Вредоносный код был добавлен в xrpl.js от лица разработчика mukulljangid, связанного с Ripple, который, вероятно, пострадал от атаки, из-за чего его учетные данные оказались скомпрометированы.
«Если вы используете одну из перечисленных версий библиотеки, немедленно прекратите работу и проведите ротацию всех приватных ключей и секретов, используемых в затронутых системах. XRP Ledger поддерживает ротацию ключей: https://xrpl.org/docs/tutorials/how-tos/manage-account-settings/assign-a-regular-key-pair. Если мастер-ключ какой-либо учетной записи потенциально скомпрометирован, вам следует немедленно отключить его: https://xrpl.org/docs/tutorials/how-tos/manage-account-settings/disable-master-key-pair», — пишут разработчики.
Кроме того, разработчики сообщили в соцсети X, что кодовая база XRP Ledger или GitHub-репозиторий проекта не пострадали от этой атаки.
«Уточним, что эта уязвимость присутствует в xrpl.js, JavaScript-библиотеке для взаимодействия с XRP Ledger. Она не затрагивает кодовую базу XRP Ledger или репозиторий на GitHub. Проекты, использующие xrpl.js, должны немедленно обновиться до версии 4.2.5», — говорится в сообщении XRP Ledger Foundation.
Также отмечается, что проекты Xaman Wallet, XRPScan, First Ledger и Gen3 Games не пострадали от этой атаки на цепочку поставок.
Инциденту с xrpl.js был присвоен идентификатор CVE-2025-32965 (9,3 балла по шкале CVSS).