
Техническая документация и анализ CVE-2022-30292, переполнение буфера в куче в Squirrel 3.2, приводящее к отказу в обслуживании, выходу из изолированной среды и выполнению произвольного кода через специально созданные байт-код или исходные файлы.
Эта уязвимость представляет собой переполнение буфера в куче в функции thread_call в Squirrel 3.2 и ниже. Она вызвана отсутствием вызова функции sq_reservestack. Эта уязвимость приводит к отказу в обслуживании (DoS) клиента и может потенциально привести к выходу из песочницы и выполнению произвольного кода.
Для эксплуатации уязвимости необходимо запустить специально подготовленный байт-код или исходный файл Squirrel. Это можно осуществить несколькими способами. Например, сервер отправляет игровую карту клиенту, и тот выполняет вредоносный скрипт Squirrel. Другой способ атаки — установка вредоносного мода для игры на ваш сервер.
Для этой уязвимости существует исправление коммит. Чтобы применить исправление, необходимо перекомпилировать проект из исходных кодов, начиная с этого коммита.
Существует множество игр, использующих Squirrel в качестве основного скриптового языка. Разработчики этих игр должны как можно скорее применить исправление.
Мы не предоставим PoC раньше, чем через 90 дней с даты публикации исправления. Возможно, мы предоставим его позже.