В популярной Node.js библиотеке systeminformation, суммарно загруженной более 34 000 000 раз (более 800 000 загрузок в неделю), нашли уязвимость, допускавшую инъекции команд. Проблема получила идентификатор CVE-2021-21315.
Как не трудно догадаться по названию, будучи включена в код, библиотека systeminformation позволяет разработчикам получать системную информацию, связанную с процессором и другими компонентами, батареей, сетью, различными службами и системными процессами. По замыслу автора, использоваться все это должно в бэкэнде.
Уязвимость CVE-2021-21315 позволяла потенциальному злоумышленнику выполнять системные команды, осторожно внедряя пейлоады в некорректно очищенные параметры, используемые компонентом. Как видно на скриншоте ниже, в версии 5.3.1 баг был исправлен, и теперь библиотека очищает параметры, в частности проверяя, относятся ли они к string-данным.
Всем пользователям systeminformation рекомендуется как можно скорее обновиться до версии 5.3.1 и выше. Если же это по какой-то причине невозможно, команда безопасности npm выпустила бюллетень безопасности, в котором описаны обходные пути решения проблемы.