25.01.2022

Разработчик внёс деструктивные изменения в NPM-пакеты colors и faker, применяемые в 20 тысячах проектах

Марак Сквайрс (Marak Squires), автор популярных пакетов colors (расцветка консоли node.js) и faker (генератор фиктивных данных для полей ввода), насчитывающих 2.8 и 25 млн еженедельных загрузок, разместил в репозитории NPM и на GitHub новые версии своих продуктов, включающие деструктивные изменения, целенаправленно приводящие к сбоям на стадии сборки и выполнения зависимых проектов. В результате действий Марака была нарушена работа многих проектов, включая AWS CDK, использующих указанные библиотеки — библиотека colors используется в качестве зависимости у 18953 проектов, а faker — у 2571.

В код библиотеки «colors» был добавлен вывод в консоль текста «LIBERTY LIBERTY LIBERTY» и бесконечный цикл, блокирующий работу зависимых проектов и выводящий поток из искажённых слов «tesing». В библиотеке faker удалено содержимое репозитория, в коммите «endgame» добавлены файлы .gitignore и .npmignore для исключения файлов проекта, а вместо содержимого файла README размещён вопрос «Что на самом деле случилось с Аароном Шварцем». Проблемы присутствуют в версиях colors 1.4.1+ и faker 6.6.6.

В ответ на совершённые действия GitHub заблокировал доступ Марака к своим репозиториям (90 публичных + несколько приватных), а NPM откатил вредоносную версию пакета. При этом законность действий GitHub вызывает вопросы, так как удаление разработчиком кода из одного из своих репозиториев не может рассматриваться как нарушение правил сервиса. Более того, в тексте лицензии на пакеты colors и faker явно обозначено отсутствие любых гарантий и обязательств в отношении работоспособности кода.

Интересно, что первое предупреждение о прекращении разработки было опубликовано больше года назад. В сентябре 2020 года Марак потерял всё имущество из-за пожара, после чего в начале ноября в ультимативной форме призвал коммерческие компании, использующие его проекты, финансировать продолжение разработки, иначе он обещал прекратить сопровождение, так как не намерен больше работать бесплатно. До инцидента последняя версия colors была выпущена два года назад, а faker — 9 месяцев назад.

Что касается мотивов внесения в пакеты деструктивных изменений, то вероятно Марак пытается дать урок корпорациям, пользующимся трудами сообщества разработчиков свободного ПО, но ничего не возвращающим взамен, или привлечь внимание к переосмыслению обстоятельств смерти Аарона Шварца. Аарон покончил жизнь самоубийством после возбуждённого против него уголовного дела, связанного с копированием научных статей из платной базы данных JSTOR, отстаивая идею предоставления свободного доступа к научным публикациям. Аарону были предъявлены обвинения в компьютерном мошенничестве и незаконном получении информации с защищённого компьютера, максимальный срок наказания по которым составлял 50 лет лишения свободы и штраф в миллион долларов (в случае заключения судебного соглашения и признания обвинений Аарону предстояло отсидеть в тюрьме 6 месяцев).

Считается, что Аарон на фоне депрессии не выдержал давления судебной системы и несправедливости выдвигаемых обвинений (ему грозило 50 лет тюрьмы лишь за то, что он скачал содержимое базы данных научных статей, которые по его мнению должны распространяться без ограничения). Марак Сквайрс в опубликованном вместо удалённого кода вопросе о смерти Аарона и в публикации в Twitter-е намекает на неподтверждённую теорию заговора, в соответствии с которой Аарон Шварц нашёл в архиве MIT какие-то документы, порочащие определённых важных лиц, и его за это убили, замаскировав пришествие под самоубийство (завтра исполнится 9 лет как Аарон ушёл из жизни).

Источник.