Chrome Dawn WebGPU UAF 취약점 CVE-2026-5281 대응
CVE-2026-5281 Dawn WebGPU UAF 취약점의 공격 체인, 브라우저 샌드박스 영향, CISA KEV 패치 대응을 정리한다.
2026-08-14 · 최초 발행 2026-04-19
GPU 프로세스 경계를 겨냥한 Dawn UAF
2026년 4월 1일, CISA는 Google Chrome의 WebGPU 구현체 Dawn에서 발견된 Use-After-Free 취약점 CVE-2026-5281을 Known Exploited Vulnerabilities(KEV) 카탈로그에 등재했다. 이미 실제 공격에 사용되고 있었고, 연방 기관에는 2주 이내 패치 적용을 요구하는 긴급 조치가 뒤따랐다.
이 취약점은 GPU 경계를 겨냥한다. 단순한 메모리 오류에 그치지 않고, 복잡해진 브라우저 프로세스 구조가 어떤 방식으로 공격 체인에 편입될 수 있는지를 보여준다.
CVE-2026-5281은 Chromium의 WebGPU 구현 라이브러리 Dawn에 존재하는 Use-After-Free(UAF) 취약점으로 CVSS High 등급을 받았다. 공식 취약점 설명은 "Google Chrome 146.0.7680.178 이전 버전의 Dawn에서 발생한 Use-After-Free로 인해, 렌더러 프로세스를 이미 장악한 원격 공격자가 조작된 HTML 페이지를 통해 임의 코드를 실행할 수 있다."고 설명한다.
핵심 조건은 렌더러 프로세스가 먼저 침해돼야 한다는 점이다. 따라서 CVE-2026-5281만으로 시스템 전체를 장악하는 것이 아니라, 렌더러 침해 이후 GPU 프로세스 권한 상승을 노리는 2단계 공격 체인에 포함된다.
| 플랫폼 | 취약 버전 | 패치 버전 |
|---|---|---|
| Windows / macOS | 146.0.7680.177 이하 | 146.0.7680.177/178 |
| Linux | 146.0.7680.176 이하 | 146.0.7680.177 |
| Chromium 기반 브라우저 | Edge, Brave, Opera, Vivaldi 등 동일 영향 | 각 벤더 업데이트 필요 |
같은 연구자가 같은 시기에 보고한 CVE-2026-4675(WebGL 힙 버퍼 오버플로우), CVE-2026-4676(Dawn UAF), CVE-2026-5284(Dawn UAF)도 함께 공개됐다. Dawn 컴포넌트에서 이어진 취약점 발견은 코드베이스의 구조적 위험을 시사한다.
해제된 객체를 다시 가리키는 문제
UAF는 해제(free)한 메모리를 이후에도 참조(use)할 때 발생한다. 현대 C++ 코드에서는 원시 포인터(raw pointer)와 참조 카운팅(reference counting) 객체의 수명 관리가 어긋날 때 이 문제가 나타나기 쉽다.
[정상적인 메모리 수명 주기]
객체 생성 → 포인터 참조 → 사용 → 메모리 해제 → 포인터 무효화(NULL)
[UAF 발생 시나리오]
객체 생성 → 포인터 A, 포인터 B 모두 참조
→ 포인터 A를 통해 메모리 해제
→ 포인터 B는 여전히 해제된 주소를 참조 (댕글링 포인터)
→ 포인터 B를 통한 접근 시 해제된 메모리 조작 가능
브라우저에서 UAF가 위험한 이유는 공격자가 해제된 슬롯을 자신이 제어하는 데이터로 채우는 힙 스프레이(heap spray)를 적용할 수 있기 때문이다. 비동기 작업 큐, 크로스 스레드 실행, 크로스 프로세스 소유권, 콜백, 객체 재사용, 수동 메모리 관리가 함께 얽힌 구조는 UAF가 반복해서 발견되는 배경이 된다.
Dawn에는 Chromium 문서가 언급한 "객체들이 참조 카운팅 객체에 대한 원시 포인터를 보유하면서 참조가 다른 곳에서 유지되고 있다고 가정하는 패턴"이 있다. 이 가정이 깨지면 해제된 객체를 다시 참조하는 상황이 생긴다.
WebGPU 호출이 네이티브 GPU API에 도달하는 경로
Dawn은 Google이 개발한 오픈소스 크로스플랫폼 WebGPU 구현체다. JavaScript WebGPU API 호출을 Vulkan, Metal, Direct3D 12 등 플랫폼별 네이티브 GPU API로 변환하는 번역 레이어이며, Chromium에서는 렌더러 프로세스와 GPU 프로세스 양쪽에 걸쳐 동작한다. 두 프로세스는 Dawn Wire 프로토콜로 통신한다.
WebGPU 호출은 렌더러의 Dawn Wire Client에서 직렬화되고, Chrome GPU Command Buffer를 통해 GPU 프로세스로 전달된다. GPU 프로세스의 Dawn Wire Server는 이를 역직렬화한 뒤 Dawn Native를 호출하며, Dawn Native가 플랫폼 GPU API를 통해 실제 GPU 작업을 수행한다.
객체 수명은 JavaScript 객체, 렌더러의 Wire Client 객체, GPU 프로세스의 Wire Server 객체, 플랫폼 네이티브 GPU 객체에 각각 걸쳐 있다. 이들은 독립적인 수명을 가지므로, 비동기 커맨드 큐와 크로스 스레드 객체 소유권이 만나는 지점의 불일치를 주의해야 한다.
Dawn은 다음과 같은 메모리 안전성 설계를 사용한다.
- GPU 프로세스의 역직렬화기는 렌더러에서 전달받은 공유 메모리를 정적 힙 할당 버퍼에 복사한 뒤 Dawn Native를 호출한다. 역직렬화 중 공유 메모리를 바꾸는 TOCTOU 공격을 차단하기 위한 방식이다.
- 모든 아키텍처에서 참조 카운팅 객체에 64비트 정수를 사용해 정수 오버플로우 기반 공격을 방지한다.
- WebGPU 셰이더 언어(WGSL) 컴파일러는 GPU 프로세스 내부의 별도 샌드박스에서 실행된다.
이런 방어 설계가 있어도 비동기 커맨드와 객체 소유권의 경계에서 수명 주기 불일치는 남는다.
렌더러 침해가 GPU 프로세스 장악으로 이어질 때
Chrome의 다중 프로세스 샌드박스는 렌더러가 침해되더라도 시스템 전체 장악으로 바로 이어지지 않게 설계됐다. 그러나 GPU 프로세스는 렌더러보다 넓은 시스템 접근 권한을 가진다.
CVE-2026-5281이 포함되는 공격 경로는 별도의 렌더러 취약점으로 임의 코드 실행 권한을 얻는 데서 시작한다. 원본에서 예시로 든 V8 버그나 CSS 파서 취약점이 여기에 해당한다. 이어 침해된 렌더러는 Dawn Wire 프로토콜로 조작된 커맨드를 GPU 프로세스에 보내고, GPU 프로세스 측 Dawn Wire Server의 메모리 손상에 CVE-2026-5281이 활용된다.
GPU 프로세스는 GPU 하드웨어 드라이버와 커널 레벨 API에 상호작용한다. 이 프로세스에서 임의 코드 실행이 가능해지면 렌더러 샌드박스를 벗어나는 더 강한 권한 상승이 성립한다.
2026년에는 CSS UAF(CVE-2026-2441), 비디오 컴포넌트 UAF(CVE-2026-6302), ANGLE 힙 오버플로우(CVE-2026-6296)에서도 이와 같은 렌더러-GPU 체인 공격 사례가 확인되고 있다.
Dawn에 집중된 2026년 Chrome 제로데이
CVE-2026-5281은 2026년에 실제 공격에 악용된 네 번째 Chrome 제로데이다. 절대 건수뿐 아니라 공격 표면의 변화가 중요하다.
| 연도 | 전체 플랫폼 제로데이 | Chrome 특정 제로데이 | 주요 공격 유형 |
|---|---|---|---|
| 2023 | 100건 (기록적 최고) | 다수 | V8, Skia, libvpx |
| 2024 | 78건 | 감소 추세 | V8, WebAudio |
| 2025 | 90건 | 8건 | V8, Skia, CSS, WebRTC |
| 2026 (4월 기준) | 집계 중 | 4건 이상 | Dawn(WebGPU), V8, Skia |
CVE-2026-4676, CVE-2026-5281, CVE-2026-5284는 모두 Dawn의 UAF이며 같은 연구자가 동시에 보고했다. 이는 WebGPU API 표면이 주요 공격 대상으로 부상했음을 나타낸다.
2025년 Google Threat Intelligence Group 분석에서는 브라우저 기반 공격이 역사적 저점으로 감소한 반면, 엔터프라이즈 기술 대상 공격은 사상 최고인 전체의 48%를 기록했다. 2026년에는 WebGPU가 브라우저 취약점 지형을 다시 넓히는 공격 표면으로 등장했다.
KEV 등재 이후 조직이 점검할 범위
CISA의 KEV 등재는 단순 권고가 아니라 연방 민간 행정 기관(FCEB)에 법적 구속력이 있는 패치 의무를 부과한다. CVE-2026-5281은 등재일인 2026-04-01로부터 14일 뒤인 2026년 4월 15일까지 패치를 완료해야 했다.
즉각적 조치로는 Chrome과 Chromium 기반 브라우저를 146.0.7680.177/178 이상으로 강제 업데이트하고, Microsoft Edge·Brave·Opera·Vivaldi 등 서드파티 Chromium 브라우저의 벤더 패치를 확인해야 한다. 엔드포인트 관리 솔루션으로 브라우저 버전 현황을 일괄 파악하는 작업도 포함된다.
단기적으로는 웹 필터링 및 프록시에 WebGPU 관련 이상 트래픽 모니터링 규칙을 추가하고, EDR에서 Chrome GPU 프로세스 이상 행위 탐지 룰셋을 갱신할 수 있다. 드라이브바이 다운로드 공격 시나리오에 관한 보안 인식 교육도 대상이다.
중장기 대응 범위에는 브라우저 격리(Browser Isolation) 솔루션 검토, 취약한 브라우저 버전에 대한 네트워크 접근 제어 정책, 서드파티 Chromium 기반 제품의 패치 주기 SLA 검토가 포함된다.
CVE-2026-5281은 단독으로 완전한 공격 체인을 구성하지 않는다. 다만 렌더러 취약점과 결합하면 샌드박스 탈출로 이어지는 2단계 체인이 완성될 수 있으므로, 브라우저 업데이트와 심층 방어 체계의 점검을 함께 진행해야 한다.
Sources
- CVE-2026-5281: Chrome WebGPU Zero-Day Exploited In The Wild - SOCRadar
- New Chrome Zero-Day CVE-2026-5281 Under Active Exploitation — Patch Released - The Hacker News
- CVE-2026-5281: The Chrome Zero-Day That Targets the GPU Boundary - CyberSpit
- CVE-2026-5281 - Understanding the "Use After Free" Vulnerability in Dawn - cve.news
- Google fixes Chrome zero-day with in-the-wild exploit (CVE-2026-5281) - Help Net Security
- CVE-2026-5281, What Chrome's Dawn Zero-Day Actually Means - Penligent
- Google fixes fourth Chrome zero-day exploited in attacks in 2026 - BleepingComputer
- Chromium Docs - WebGPU Technical Report
- Chrome Zero-Day CVE-2026-5281: A Use-After-Free in Dawn's WebGPU Layer - Dark Web Informer
- Look What You Made Us Patch: 2025 Zero-Days in Review - Google Cloud Blog