CVE-2026-23830
SandboxJS에 비보호 AsyncFunction 생성자를 통한 샌드박스 탈출 취약점 존재
- 게시됨
- 2026. 1. 27.
- 업데이트됨
- 2026. 1. 28.
- CNA 할당 중
- GitHub_M
- 증거 관찰됨
- 2026. 8. 25.
기본 CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H낮음 · 다음 30일
- 백분위수
- 65.5%
- 모델 날짜
- 2026. 9. 21.
EPSS는 통계적 추정치이지 확실성이나 영향의 척도가 아닙니다. 이를 CVSS, KEV 상태, 노출 및 환경과 결합하세요.
요약
SandboxJS는 JavaScript 샌드박싱 라이브러리입니다. 0.8.26 이전 버전에는 `SandboxFunction`에서 `AsyncFunction`이 격리되지 않아 발생하는 샌드박스 탈출 취약점이 있습니다. 이 라이브러리는 전역 `Function` 생성자를 안전한 샌드박스 버전(`SandboxFunction`)으로 교체하여 코드 실행을 샌드박싱하려고 시도합니다. 이는 `utils.ts`에서 조회에 사용되는 맵 내의 `Function`을 `sandboxFunction`에 매핑하여 처리됩니다. 그러나 0.8.26 이전 버전에서는 라이브러리에 `AsyncFunction`, `GeneratorFunction`, `AsyncGeneratorFunction`에 대한 매핑이 포함되어 있지 않았습니다. 이러한 생성자는 전역 속성이 아니지만 인스턴스의 `.constructor` 속성을 통해 접근할 수 있습니다(예: `(async () => {}).constructor`). `executor.ts`에서는 속성 접근이 처리됩니다. 샌드박스 내부에서 실행되는 코드가 비동기 함수(샌드박스가 생성하도록 허용함)에서 `.constructor`에 접근하면 `executor`가 속성 값을 검색합니다. `AsyncFunction`이 안전한 교체 맵에 없었기 때문에 `executor`는 실제 네이티브 호스트 `AsyncFunction` 생성자를 반환합니다. JavaScript의 함수 생성자(`Function`, `AsyncFunction` 등)는 전역 스코프에서 실행되는 함수를 생성합니다. 호스트 `AsyncFunction` 생성자를 획득함으로써 공격자는 샌드박스 컨텍스트를 완전히 벗어나 실행되는 새로운 비동기 함수를 생성할 수 있으며, 모든 제한을 우회하고 호스트 환경에 대한 전체 접근 권한(원격 코드 실행)을 얻을 수 있습니다. 버전 0.8.26에서 이 취약점이 패치되었습니다.
소스
1CVE-2026-23830(SandboxJS 이스케이프)에 대한 익스플로잇 페이로드를 생성 및 전달하며, 블라인드 OOB 외부 유출 및 로컬 calc PoC 모드를 지원합니다. HTTP/HTTPS 리스너를 지원하며 축소된 JavaScript 페이로드를 생성합니다.
책임 있는 사용
귀하가 소유하고 있거나 테스트할 권한이 있는 시스템에 대해서만 취약점 정보를 사용하십시오. Kitploit은 공개 연구 메타데이터에 연결되며 익스플로잇 코드나 악성 페이로드를 저장하지 않습니다.