Атака на цепочку поставок: скомпрометированы npm-пакеты с 2,6 млрд загрузок

Атака на цепочку поставок: скомпрометированы npm-пакеты с 2,6 млрд загрузок

Атака на цепочку поставок: скомпрометированы npm-пакеты с 2,6 млрд загрузок

В экосистеме JavaScript зафиксирован новый крупный инцидент: в результате фишинговой атаки злоумышленники получили доступ к аккаунту популярного мейнтейнера npm-пакетов Джоша Джунона (известного как qix) и внедрили вредоносный код в целый ряд библиотек, которые суммарно загружаются более 2,6 миллиарда раз в неделю.

Фишинговое письмо пришло с поддельного домена npmjs.help и выглядело как официальное уведомление о необходимости обновить двухфакторную аутентификацию.

В сообщении утверждалось, что в противном случае аккаунты разработчиков будут заблокированы с 10 сентября 2025 года. Попавшись на эту уловку, мейнтейнер лишился доступа к своим проектам.

 

Злоумышленники обновили популярные пакеты, включая chalk, debug, ansi-styles, strip-ansi и другие. В index.js был добавлен вредоносный код, который встраивается в браузер и перехватывает криптотранзакции.

При обращении к кошелькам Ethereum, Bitcoin, Solana, Tron, Litecoin и Bitcoin Cash вредоносная логика подменяет адреса получателей на кошельки атакующих. Для этого код перехватывает вызовы fetch, XMLHttpRequest и web3-API вроде window.ethereum.

По данным Aikido Security, атака затрагивает только часть пользователей — для успешного заражения нужно было установить скомпрометированные пакеты в определённый промежуток времени (с 9:00 до 11:30 утра по восточному времени) и сгенерировать package-lock.json именно в этот период. Тем не менее масштаб всё равно внушительный: под удар попали десятки библиотек, на которых держится огромное количество проектов.

Команда npm уже удалила вредоносные версии, но случай снова показал, насколько уязвимы цепочки поставок ПО. За последние месяцы аналогичные атаки коснулись и других популярных библиотек — в том числе eslint-config-prettier и ещё десятка пакетов, которые были превращены в инфостилеры.

Баг macOS ломает TCP через 49 дней без перезагрузки

В macOS нашли редкий, но очень неприятный баг: если компьютер работает без перезагрузки примерно 49,7 дня, у него может постепенно умирать TCP. По версии исследователей, проблема связана с переполнением 32-битного счётчика времени в ядре XNU, который используется TCP-подсистемой.

После этого внутренние TCP-таймеры якобы перестают нормально обновляться, соединения в состоянии TIME_WAIT не очищаются, временные порты постепенно заканчиваются, и система в какой-то момент просто перестаёт устанавливать новые TCP-соединения.

При этом ping может продолжать работать, что делает сбой особенно странным. В Photon пишут, что заметили аномалию на своих macOS-машинах, которые круглосуточно используются для мониторинга iMessage-сервисов.

По их описанию, часть узлов после примерно 49 дней 17 часов 2 минут 47 секунд аптайма перестала открывать новые TCP-сессии. После перезагрузки всё возвращалось в норму, но таймер, по сути, запускался заново.

Авторы утверждают, что смогли воспроизвести поведение на двух машинах и связали его с переменной tcp_now в XNU. В открытом репозитории Apple действительно есть TCP-код ядра Darwin/XNU, где используются 32-битные значения времени и логика сравнения временных меток TCP, на которую ссылаются исследователи.

Поведения бага выглядит так: сначала ничего не ломается в лоб, но закрытые TCP-соединения перестают вовремя исчезать из TIME_WAIT. Затем их становится всё больше, временные порты забиваются, новые подключения начинают зависать в SYN_SENT, а сервисы, которым нужны новые TCP-сокеты, начинают сыпаться.

Если эта находка подтвердится, то для обычного пользователя баг вряд ли станет массовой проблемой: большинство устройств на macOS перезагружаются чаще (хотя бы из-за обновлений). А вот для долго работающих Mac mini, билд-серверов, CI/CD-ферм, удалённых рабочих станций и серверных компьютеров, которые могут жить без ребута неделями, история выглядит уже куда серьёзнее.

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

RSS: Новости на портале Anti-Malware.ru