
Учебная лаборатория, демонстрирующая CVE-2026-2964 — уязвимость загрязнения прототипа (prototype pollution) в web-audio-recorder-js, приводящую к RCE. Включает уязвимый и исправленный серверы, скрипты настройки и эксплойт-пейлоады для практического обучения безопасности.
Этот репозиторий содержит полную лабораторную среду для CVE‑2026‑2964 — уязвимости prototype pollution в библиотеке web‑audio‑recorder‑js, которая при определённых условиях может привести к удалённому выполнению кода.
Лабораторная среда включает:
index-vulnerable.js), демонстрирующий цепочку атаки.index-fixed.js), реализующий надлежащую санитизацию и проверку по белому списку.Предварительные требования:
npm (поставляется вместе с Node.js)curl (для загрузки файла библиотеки во время настройки)Клонируйте репозиторий и установите зависимости:
git clone https://github.com/bughuntblueprint/cve-2026-2964-lab.git
cd cve-2026-2964-lab
npm install
Установка автоматически загрузит оригинальный WebAudioRecorder.js из репозитория higuma на GitHub и поместит его в папку lib/.
Если вы предпочитаете выполнить настройку вручную:
npm run setup
Уязвимый сервер работает на порту 3000 и настроен на приём пользовательской конфигурации, которая приводит к prototype pollution.
node index-vulnerable.js
Ожидаемый вывод:
Original WebAudioRecorder loaded successfully.
Server is running on http://localhost:3000
Теперь вы можете отправлять запросы на http://localhost:3000/api/audio/config. Сервер будет регистрировать все входящие полезные нагрузки и указывать, произошло ли загрязнение.
Исправленный сервер работает на порту 3000 и применяет как рекурсивную санитизацию ключей, так и белый список для блокировки любых опасных ключей до того, как они попадут в конструктор библиотеки. Убедитесь, что вы изменили package.json и указали main на index-fixed.js
node index-fixed.js
Ожидаемый вывод:
Original WebAudioRecorder loaded successfully.
Server is running on http://localhost:3000
Эта лабораторная среда предназначена исключительно для образовательных целей. Не запускайте её на производственных системах и не используйте против любых целей без явного разрешения. Продемонстрированные методы предназначены для того, чтобы помочь разработчикам и специалистам по безопасности понять уязвимость и применить надлежащие меры защиты.