
Node.js — это среда выполнения с открытым исходным кодом, используемая для реализации серверной функциональности на JavaScript.
Один из пакетов в составе Node.js содержит уязвимую функцию, связанную с десериализацией, которая приводит к выполнению несанкционированных команд, если клиент предоставляет специально созданный cookie.
Эта уязвимость была воспроизведена и потенциально может запустить reverse shell, что возможно из-за несанитизированных входных данных, читаемых из cookie в запросе клиента. Клиент может изменить свои cookie, внедрить небезопасную полезную нагрузку, содержащую bash-команду, и отправить её на сервер, где она будет вслепую выполнена. Это может привести к тому, что неавторизованные пользователи получат доступ к базам данных или целым машинам.
Этические последствия такого типа уязвимости связаны с данными, к которым можно получить доступ в базах данных на сервере. В зависимости от данных это может нанести вред безопасности пользователя и сказаться на надёжности и репутации компании. Из-за этого поиск уязвимостей раньше других злоумышленников. Существует множество различных инструментов, таких как Snyk, Burp Suite и другие платные варианты, доступных для выявления этих уязвимостей.
Лучший способ снизить эту уязвимость — применять надлежащую санитизацию входных данных и отказаться от любого использования уязвимой функции unserialise в node.js. Рекомендуется заменить эту уязвимую функцию на JSON.parse