Изследователи по киберсигурност разкриха подробности за зловреден npm пакет, наречен „tw-pkgprobe-7731“, който се маскира като инструмент за сигурност, насочен към разработчици, интегриращи Twilio в своите приложения, докато тайно се опитва да събира чувствителни данни.
Пакетът с име „tw-pkgprobe-7731“ първоначално е качен в npm регистъра в средата на август 2026 г. от npm профил с име „twdepprobe7731“. Общо 11 версии на пакета са публикувани в бърза последователност в рамките на един и същ ден за период от около 45 минути. Потребителският профил в npm вече не съществува към момента на писане на настоящата статия.
„Първата версия на tw-pkgprobe-7731 се представяше за оторизирана сонда за изследване на сигурността“, заяви Луция Валентич, изследовател в ReversingLabs, в доклад, публикуван днес.
„Коментарите в пакета го описват като ‚Оторизирана сонда за изследване на уязвимости (програма на Twilio в HackerOne)‘, която ‚работи само в изолираната среда на сървърния пакет на Twilio‘ и ‚събира местен контекст на процеса/хоста и го записва до себе си; без разрушителни действия.‘“
При изпълнение пакетът първо проверява дали текущата среда е среда за разработчици на Twilio. Той незабавно прекратява работа, ако това не е така.
Ако проверката премине успешно, зловредният код преминава към извличане на променливи на средата заедно със системни подробности като монтирани устройства, временни папки и различни конфигурации. Събраната информация след това се източва чрез уебхук (webhook).
Установено е, че последващите версии на npm пакета (а именно версии 1.0.1, 1.0.2 и 1.0.3) се фокусират върху разработчици, използващи API на Twilio, като по-специално търсят папки, свързани със специфични стринг идентификатори (SID) на профили в Twilio. Най-важното е, че той избягва извършването на каквито и да е действия, ако съществува папка с конкретно SID име.
„В противен случай, ако са намерени съвпадащи целеви папки, той сканира инсталираните npm пакети и node_modules, за да инжектира персонализиран npm PoC пакет, създавайки package.json и index.js вътре“, обясняват от ReversingLabs.

За версия 1.0.4 се казва, че е добавила възможност за източване на process.env.ACCOUNT_SID и process.env.AUTH_TOKEN, ефективно компрометирайки идентификационните данни на жертвата за Twilio и потенциално позволявайки на атакуващия да оторизира таксуване и да задейства комуникация.
Въпреки това последните три версии (т.е. 1.0.8, 1.1.0 и 1.1.1) „се върнаха към базовия профил за сондиране на пакета, видян във версия 1.0.0“, премахвайки злонамерената функционалност, включена в предишните итерации.
В допълнение е установено, че последните две версии извършват събиране на разузнавателна информация от открити източници (OSINT), като сондират различни хостове, свързани с Twilio, като support-api.us1.twilio[.]com, kafka-ui.au1.twilio[.]com и litellm.ai-services.corp.twilio[.]com, и дори извличат AWS метаданни, разположени на „169.254.169[.]254/latest/meta-data/“.
Предвид тези необичайни промени в посоката не е ясно какви са крайните цели и дали той е публикуван като част от програма за откриване на уязвимости (bug bounty). От ReversingLabs обаче заявиха, че версиите на пакета не спазват насоките за търсене на уязвимости на Twilio, посочени в HackerOne.
„С други думи, тези пакети ясно нарушават основните насоки за изследване на сигурността, установени от Twilio, което подсказва, че пакетите са имали злонамерени намерения“, каза Валентич. „Въпреки че атакуващият зад кампанията се е опитал да маскира зловредните функции в определени издания, като ги е заобиколил с изглеждащи безобидни функции и код, той не е положил реални усилия да скрие зловредния код или дейността си.
„Липсват обфускация, тайпоскуатинг (typosquatting) или опити да се направи така, че публикуващият npm профил да изглежда легитимен – тактики, които редовно сме виждали в предишни кампании. Това подсказва, че по-малко опитен киберпрестъпник е отговорен за злонамерената кампания, насочена към разработчиците на Twilio.“