
CVE 2021-21315 PoC
Это Proof of Concept для CVE-2021-21315, которая затрагивает библиотеку System Information для Node.js (npm-пакет "systeminformation"). npmjs.com/systeminformation
"обязательно проверяйте или санируйте параметры сервисов, которые передаются в si.inetLatency(), si.inetChecksite(), si.services(), si.processLoad() ... допускайте только строки, отклоняйте любые массивы. Санация строк работает как ожидается."
Поскольку эта уязвимость плохо объяснена (на мой взгляд), я решил написать небольшое приложение на основе уязвимой версии systeminformation. PoC содержит:
Шаги для воспроизведения:


Это не сработает из-за санации строк:

Как сказано в описании CVE: "санация работает как ожидается, отклоняйте любые массивы [...]"
На этот раз, если вы посмотрите на значение "name", оно не было санировано — успех! Давайте проверим, была ли выполнена команда
Успех! Наша команда выполнена. Конечно, никому не нужен "pwn.txt", но потенциальный злоумышленник может:
«Инъекция команд» звучит безобидно, но может иметь огромное влияние при определённых условиях
Проблема была исправлена в версии 5.3.1 "systeminformation" Спасибо https://www.huntr.dev/users/EffectRenan (Он нашёл уязвимость, однако, на мой взгляд, его "PoC" не показал реального влияния)
Также, не стесняйтесь использовать этот PoC в каких-нибудь CTF, но было бы круто, если вы укажете автора находки — EffectRean и создателя PoC — меня, всего доброго!
Этот проект может использоваться только в образовательных целях. Использование этого программного обеспечения против целевых систем без предварительного разрешения незаконно, и автор не несёт ответственности за любой ущерб от неправильного использования этого программного обеспечения.