Wasmtime 취약점 패치 버전 — 36.0.19·48.0.7·49.0.4, 9.9점 샌드박스 탈출 두 건은 컴파일러에서 나왔다
The Bytecode Alliance published advisories on October 19, 2026 for two critical flaws in Wasmtime's Cranelift compiler, each rated CVSS 9.9, that could let a malicious WebAssembly module escape its sandbox. CVE-2026-115889 is a silent bit-packing overflow causing miscompilation on all architectures; CVE-2026-115893 makes very large br_table instructions jump to the wrong target on ARM64. Fixed versions are 36.0.19, 48.0.7 and 49.0.4. No exploitation has been reported. Wasmtime issued 29 advisories in three batches in October.
웹어셈블리 실행기 Wasmtime을 만드는 바이트코드 얼라이언스가 2026년 10월 19일 크레인리프트 컴파일러의 CVSS 9.9점 취약점 두 건을 공개했다. 조작된 웹어셈블리 모듈이 샌드박스를 벗어나 임의 코드를 실행할 수 있다. CVE-2026-115889는 모든 CPU 구조, CVE-2026-115893은 ARM64에 해당한다. 패치 버전은 36.0.19·48.0.7·49.0.4이며 실제 공격 보고는 없다
3줄 요약
- 취약점 — 크레인리프트 9.9점 두 건, 조작한 Wasm 모듈로 샌드박스 탈출 가능
- 패치 — 36.0.19·48.0.7·49.0.4로 올리면 10월 권고 29건이 모두 해결
- 영향 — 남이 올린 Wasm 코드를 돌리는 서버·플러그인 환경이 우선, 공격 보고는 없음
핵심 질문
- Wasmtime 패치 버전
- **36.0.19, 48.0.7, 49.0.4다.** | 사용 중인 계열 | 올릴 버전 | |---|---| | 36.x(장기지원) | 36.0.19 | | 37~48.x | 48.0.7 | | 49.x | 49.0.4 |
- CVE-2026-115889
- **크레인리프트 컴파일러의 비트 패킹 오버플로로 코드가 잘못 컴파일되는 취약점이다.** | 항목 | 내용 | |---|---| | 점수 | CVSS 9.9(치명) | | 구조 | 모든 CPU | | 영향 버전 | 36.0.19 미만, 37.0.0~43.0.0 미만 | | 패치 | 36.0.19(43.0.0 이상은 영향 없음) | | 권고 | GHSA-897f-g5gm-fmxm |
- CVE-2026-115893
- **ARM64에서 아주 큰 br_table 명령이 엉뚱한 주소로 점프하는 취약점이다.** | 항목 | 내용 | |---|---| | 점수 | CVSS 9.9(치명) | | 구조 | ARM64(aarch64)만 | | 조건 | 분기 대상 약 25만6천 개 이상 | | 패치 | 36.0.19·48.0.7·49.0.4 | | 권고 | GHSA-mghf-wjfp-p5xm |
이번 구멍은 상자의 벽이 아니라 상자를 짓는 기계에서 났다. 웹어셈블리(Wasm) 실행기 Wasmtime을 관리하는 바이트코드 얼라이언스가 2026년 10월 19일 CVSS 9.9점짜리 취약점 두 건을 공개했다. 두 건 모두 Wasm 코드를 기계어로 바꾸는 크레인리프트(Cranelift) 컴파일러에서 나왔다. 공격자가 조작한 Wasm 모듈을 올리면 컴파일러가 코드를 잘못 만들어, 모듈이 샌드박스 밖 메모리에 손을 대거나 원하는 코드로 점프할 수 있다.
결론부터: 36.0.19, 48.0.7, 49.0.4 중 자기 계열에 맞는 버전으로 올리면 이번 두 건을 포함해 10월에 나온 Wasmtime 권고 29건이 모두 해결된다. 실제 공격 보고는 아직 없다.
1. 내 버전은 영향을 받나
| 사용 중인 버전 | CVE-2026-115889(모든 CPU) | CVE-2026-115893(ARM64) | 올릴 버전 |
|---|---|---|---|
| 36.0.18 이하 | 영향 | 영향 | 36.0.19 |
| 37.0.0 ~ 42.x | 영향 | 영향 | 48.0.7 |
| 43.0.0 ~ 48.0.6 | 영향 없음 | 영향 | 48.0.7 |
| 49.0.0 ~ 49.0.3 | 영향 없음 | 영향 | 49.0.4 |
| 36.0.19 / 48.0.7 / 49.0.4 | 해결 | 해결 | — |
x86 서버에서 43 이상을 쓰면 이번 9.9점 두 건 중 ARM64 건은 해당하지 않는다. 하지만 같은 날 함께 나온 중간·낮음 등급 권고 4건과 10월 14일·10월 2일 권고가 있어서 최신 패치로 올리는 것이 가장 단순하다. 아마존 그래비톤이나 애플 실리콘 같은 ARM64 위에서 돌린다면 CVE-2026-115893이 직접 해당한다.
2. 두 취약점은 어떻게 작동하나
| 항목 | CVE-2026-115889 | CVE-2026-115893 |
|---|---|---|
| 권고 번호 | GHSA-897f-g5gm-fmxm | GHSA-mghf-wjfp-p5xm |
| 위치 | 크레인리프트 공통 | 크레인리프트 ARM64 백엔드 |
| 원인 | 내부 값 번호를 비트로 압축 저장하다 넘침(오버플로), 릴리스 빌드에선 조용히 지나감 | 분기 대상이 약 25만6천 개 이상인 br_table 명령을 잘못된 조건 분기로 컴파일 |
| 결과 | 잘못된 컴파일 → 타입 혼동 → 샌드박스 탈출 가능 | 공격자가 정한 위치로 점프 → 임의 코드 실행 |
| 공격 조건 | 아주 크거나 특수하게 만든 Wasm 함수를 컴파일시키기 | 거대한 br_table을 넣은 모듈을 컴파일시키기 |
| CVSS | 9.9 | 9.9 |
Wasm의 안전은 두 겹이다. 언어 규칙상 모듈은 자기 메모리 칸 밖을 볼 수 없고, 실행기는 그 규칙을 지키는 기계어를 만들어 낸다. 이번 두 건은 두 번째 겹, 즉 규칙을 기계어로 옮기는 단계의 실수다. 원본 코드는 규칙을 지켰는데 번역이 틀려서 벽에 구멍이 생긴다. 타입 혼동이 어떻게 메모리 접근으로 이어지는지는 「타입 혼동 취약점이란」에서 다뤘다.
점수가 10점이 아니라 9.9점인 것은 공격자가 '모듈을 올릴 수 있는 권한'을 가져야 하기 때문이다(권한 요구 낮음). CVSS 점수가 이렇게 갈리는 원리는 「CVSS란」에서 설명했다.
3. 누가 서둘러야 하나
| 사용 환경 | 위험도 | 이유 |
|---|---|---|
| 사용자·고객이 올린 Wasm을 실행하는 서버(플러그인, 엣지 함수, 서버리스) | 높음 | 공격자가 모듈을 직접 넣을 수 있다 |
| AI 에이전트가 만든 코드를 Wasm 샌드박스에서 돌리는 환경 | 높음 | 모델이 생성한 코드를 신뢰할 수 없다 |
| 자기 회사가 직접 만든 Wasm만 실행 | 낮음 | 악성 모듈이 들어올 통로가 작다 |
| 브라우저에서 웹페이지의 Wasm 실행 | 해당 없음 | 크롬·사파리·파이어폭스는 Wasmtime을 쓰지 않는다 |
Wasmtime은 '남의 코드를 안전하게 가둬 돌리는 상자'로 쓰인다. 그래서 위험은 누가 모듈을 넣을 수 있느냐로 갈린다. 패치가 당장 어렵다면 해커와이어 정리 기준으로 신뢰할 수 없는 Wasm을 컴파일하는 서비스를 따로 격리하고, CPU·메모리 제한을 걸어 두는 것이 임시 대책이다. 다만 근본 해결은 업데이트다.
4. 10월에만 권고 29건 — 세 번의 묶음
| 공개일 | 권고 수 | 가장 높은 등급 | 패치 버전 |
|---|---|---|---|
| 10월 2일 | 8건 | 치명 1건(비동기 콜백 스택 버퍼 오버플로) | 36.0.17·48.0.4·49.0.2 |
| 10월 14일 | 15건 | 높음 1건(심볼릭 링크 이름 변경 시 파일시스템 샌드박스 탈출) | 36.0.18·48.0.6·49.0.3 |
| 10월 19일 | 6건 | 치명 2건(이번 크레인리프트 두 건) | 36.0.19·48.0.7·49.0.4 |
한 달에 세 번 묶음 패치가 나왔다. 10월 14일 묶음의 파일시스템 탈출 건은 별개 문제다. 웹어셈블리 시스템 인터페이스(WASI)가 허락한 폴더 밖 파일에 손댈 수 있는 취약점이었다. 같은 달 노드JS(「Node2Shell」)와 PHP(「PHP2Shell 취약점 패치 버전」)에서도 원격 코드 실행 취약점이 나왔다. 실행 환경 전반의 패치 주기가 빨라지고 있다.
5. 남은 것과 확인되지 않은 것
- 실제 공격: 보고된 것은 없다. 10월 26일 기준 CISA KEV 목록에 없다.
- 24.x 계열: 이번 권고 패치 목록에 없다. 24.x를 쓰고 있다면 지원 상태부터 확인해야 한다.
- 취약점 번호 혼선: 10월 14일 파일시스템 탈출 건에 대해 일부 취약점 데이터베이스가 다른 CVE 번호와 패치 버전을 적었다. 깃허브 권고 원문을 기준으로 삼는 것이 안전하다.
- 웹어셈블리 자체: 왜 Wasm이 서버와 AI 플러그인의 '가두는 상자'로 쓰이는지는 같은 날 「웹어셈블리(Wasm)란」에서 정리했다.
출처
- 깃허브 바이트코드 얼라이언스 Wasmtime — GHSA-897f-g5gm-fmxm(CVE-2026-115889) 보안 권고 (2026-10-19)
- 깃허브 바이트코드 얼라이언스 Wasmtime — GHSA-mghf-wjfp-p5xm(CVE-2026-115893) 보안 권고 (2026-10-19)
- 더 해커 뉴스 — Two Critical Wasmtime Flaws Could Let Malicious WebAssembly Modules Escape Sandboxes (2026-10-26)
- 더 해커와이어 — CVE-2026-115889: Wasmtime is a runtime for WebAssembly
- 스트릭스 — CVE-2026-115893