CVE-2026-87455 (Google Chrome Aura Use-After-Free) 분석
분류: CVE · 브라우저·클라이언트 · RCE · CVE-2026-87455 · [표준]
브라우저는 웹 페이지를 격리된 샌드박스 안에서 렌더링해, 악성 사이트가 운영체제에 손대지 못하게 막습니다. 이 취약점은 Chrome의 UI·창 관리 계층인 Aura에서 이미 해제된 객체를 다시 사용하는 결함(use-after-free)입니다. 조작된 HTML 페이지를 여는 것만으로 그 재사용을 유발해, 원격 공격자가 샌드박스 바깥에서 코드를 실행할 가능성이 있습니다. 흥미로운 점은 Chromium 자체 등급은 “Medium”인데 NVD의 CVSS 점수는 9.6 Critical이라는, 두 평가 체계의 간극입니다.
개요
Chrome은 각 웹 페이지를 제한된 권한의 렌더러 프로세스 안에서 처리하고, 그 프로세스가 시스템에 직접 닿지 못하도록 샌드박스로 가둡니다. 이 취약점의 무게는 바로 그 샌드박스를 넘어설 수 있다는 데 있습니다. 조작된 HTML 페이지를 열도록 사용자를 유도하면(사용자 상호작용 필요), 원격·무인증 공격자가 Aura 계층의 use-after-free를 유발해 샌드박스 밖에서 임의 코드를 실행할 가능성이 있습니다.
근본은 해제 후 사용(CWE-416, Use After Free)으로 분류됩니다. ⚠️미확인(팩트체크 대상) — CWE 매핑은 리서치 재료(집계 사이트) 기준이며 NVD 원본 대조 대상입니다.
- 영향 범위: 153.0.8010.36 미만 전체의 데스크톱 Chrome(Windows·macOS·Linux). ⚠️미확인 — 리서치 재료 기준, 팩트체커가 NVD·Chrome Releases 원문에서 대조해야 합니다.
- 수정 버전: 153.0.8010.36 이상. ⚠️미확인 — 다수 집계 출처가 일치했으나 벤더(Chrome Releases) 원문과의 최종 대조가 필요합니다.
- CVSS: 3.1 기준 9.6 (Critical), 벡터
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H. ⚠️미확인 — 이 점수·벡터는 NVD/CNA-ADP(CISA) 값으로, 아래 벤더 등급과 갈립니다. - Chromium 자체 심각도: Medium (Google/Chromium 팀 등급). ⚠️미확인 — 집계 사이트 기준. CVSS 9.6과 이 “Medium”은 서로 다른 평가 체계이며, 같은 것으로 섞어 쓰면 안 됩니다(아래 별도 절 참조).
- 취약 컴포넌트: Aura — Chromium의 크로스플랫폼 창·이벤트 추상화 계층. ⚠️미확인 — 컴포넌트명은 리서치 재료 기준.
- 선행 조건: 원격, 사용자 상호작용 필요(조작된 HTML 페이지 방문,
UI:R), 무인증(PR:N). 샌드박스 경계를 넘으므로 스코프 변경(S:C). - 공개일: 2026-09-09(예약 09-08, 갱신 09-10). ⚠️미확인 — 리서치 재료 기준. 보고자 크레딧·바운티 금액은 확인되지 않았습니다(⚠️미확인 — Chrome 공지 본문 미획득).
한 줄 요약: “브라우저가 이미 반납한 메모리를 다시 붙잡아 쓰면, 페이지 한 장이 샌드박스의 벽을 넘는 지렛대가 된다” — UI 계층의 객체 수명(lifetime) 관리 실수가 격리의 마지막 벽까지 흔든 사례입니다.
기술 배경 — Aura, 샌드박스, 그리고 use-after-free
Aura가 무엇인가. Chromium은 Windows·macOS·Linux에서 창을 그리고 마우스·키보드 이벤트를 다루는 방식이 제각각인 문제를, Aura라는 공통 계층으로 추상화합니다. 창·위젯·이벤트를 하나의 모델로 다뤄, 상위 UI 코드가 운영체제별 차이를 신경 쓰지 않게 해 주는 부분입니다. 소스는 공개 저장소 chromium/src의 ui/aura/ 아래에 있습니다.
샌드박스가 무엇인가. Chrome은 웹 페이지를 처리하는 렌더러를 낮은 권한의 프로세스에 가두고, 시스템 자원 접근을 강하게 제한합니다. 악성 페이지가 렌더러를 장악하더라도 그 프로세스 밖으로 나가지 못하게 하는 것이 목적입니다. 그래서 “샌드박스 바깥에서 코드 실행”은 브라우저 취약점 중에서도 무게가 큰 결과입니다.
use-after-free가 무엇인가. 프로그램이 어떤 객체가 쓰던 메모리를 해제(free)한 뒤에도, 그 객체를 가리키던 낡은 포인터로 다시 접근하면 해제 후 사용이 됩니다. 그 메모리에는 이미 다른 데이터가 들어와 있을 수 있어, 공격자가 그 자리를 원하는 값으로 채워 두면 프로그램의 흐름을 자기 쪽으로 틀 수 있습니다. UI 계층에서는 창·위젯이 닫히거나 이벤트가 비동기로 도착하는 과정에서 객체 수명이 어긋나기 쉬워, 이런 결함이 반복해서 나옵니다.
CVE 분석 요약 — 어느 판단이 원인인가
⚠️중요 제약 — 패치 커밋 SHA·취약 파일·함수를 공개 출처에서 확보하지 못했습니다. Chrome/Chromium은 보안 버그 공개 시점에 CVE별 커밋 SHA와 정확한 파일 경로를 공표하지 않으며, 해당 이슈 트래커 항목은 접근이 제한된 상태입니다(보안 버그는 다수 사용자가 업데이트할 때까지 비공개). 따라서 이 글은 고정 SHA·파일·라인번호를 제시하지 않습니다(지어내지 않습니다). 아래는 리서치 재료가 여러 출처에서 교차 확인한 취약점의 성격에 대한 서술이며, 이 CVE의 실제 취약 코드 인용이 아닙니다.
리서치 재료 기준, 공개적으로 확인되는 것은 다음과 같습니다(모두 ⚠️미확인 — 소스 대조 불가).
- 결함 유형: Aura 계층 내 use-after-free. 해제된 객체를 가리키는 포인터를 통해 메모리에 다시 접근하는 구조입니다.
- 유발 경로: 조작된 HTML 페이지가 Aura가 관리하는 창·위젯·이벤트 객체의 수명을 어긋나게 만들어, 해제된 뒤에도 참조가 남게 유도하는 것으로 보입니다(우리 추정 — 정확한 트리거는 비공개).
- 결과: 재사용된 메모리를 공격자가 제어하면 렌더러 흐름을 장악하고, 나아가 Aura가 브라우저 프로세스 쪽에 걸쳐 있는 성격 때문에 샌드박스 경계를 넘을 가능성(스코프 변경,
S:C)이 있습니다.
아래는 use-after-free의 일반 원리를 개념적으로 재구성한 것입니다. 이 CVE의 실제 소스가 아니며, Aura의 특정 코드도 아닙니다.
// 개념용 단순화, 실제 페이로드/원본 코드 아님 (이 CVE의 취약 코드가 아님)
Widget* w = get_active_widget(); // (1) 객체 획득
close_and_delete(w); // (2) 어떤 경로에서 객체가 해제됨(free)
// ... 비동기 이벤트/콜백이 낡은 포인터를 들고 도착 ...
w->handle_event(evt); // (3) 해제된 객체를 다시 사용 → use-after-free
// (2)와 (3) 사이에 그 메모리가 재점유되면
// 공격자 제어 데이터로 흐름이 바뀔 수 있음
핵심은 객체의 수명(누가 언제 해제하는가)과 그 객체를 참조하는 경로(이벤트·콜백)가 어긋난다는 점입니다. UI 계층은 창이 닫히고 이벤트가 비동기로 도는 특성상 이런 어긋남이 나기 쉽고, 그 결과가 샌드박스 탈출까지 닿을 수 있어 위험도가 높게 매겨집니다.
패치(요지, ⚠️미확인): 리서치 재료 기준 수정 버전은 153.0.8010.36으로 보이나, 커밋 diff를 공개 출처에서 확인할 수 없습니다. 이 부류 결함의 통상적 수정은 (a) 객체 소유권·수명을 명확히 하는 스마트 포인터/약참조 도입, (b) 해제 시점에 남은 참조를 무효화, (c) 이벤트·콜백이 이미 소멸된 객체를 만지지 않도록 방어하는 방향일 것입니다(우리 분석·추정, 팩트로 제시하지 않음).
등급이 갈린다 — “Medium”과 9.6 Critical은 다른 자다
이 CVE에서 반드시 짚어야 할 것은 두 심각도 표기가 서로 다른 체계라는 점입니다. Google/Chromium 팀이 붙인 자체 등급은 Medium인 반면, NVD·CNA-ADP가 산정한 CVSS 점수는 9.6 Critical입니다.
이 둘은 모순이 아니라 측정 대상이 다릅니다. Chromium의 자체 severity(Low/Medium/High/Critical)는 벤더가 익스플로잇 난도·기본 완화·실제 도달 가능성 등을 종합해 매기는 내부 등급입니다. 반면 CVSS는 결과의 최악값(샌드박스 밖 코드 실행 = 기밀성·무결성·가용성 모두 High, 스코프 변경)을 기계적으로 벡터로 환산합니다. 그래서 “결과가 심각하나 유발 조건이 까다로운” 브라우저 버그는 CVSS가 벤더 자체 등급보다 높게 나오는 일이 흔합니다.
독자에게 실무적 함의: Chrome 공지에 “Medium”이라 적혀 있다고 해서 방치해도 되는 버그가 아닙니다. 결과는 샌드박스 탈출급이므로 업데이트 우선순위는 높게 잡는 것이 안전합니다. 반대로 CVSS 9.6만 보고 “실제로 원격에서 손쉽게 뚫린다”고 단정해서도 안 됩니다 — 사용자 상호작용이 필요하고(UI:R), 실제 안정적 익스플로잇은 별개의 난도입니다(우리 논평).
공격 시나리오 · 영향도 + 대응방안
공격 시나리오 (단계 압축, 완성형 페이로드 없음):
- 공격자가 조작된 HTML 페이지를 준비하고, 피해자가 취약 버전 Chrome으로 그 페이지를 열도록 유도합니다(악성 링크·광고·워터링홀 등). 로그인은 필요 없습니다.
- 페이지가 Aura가 관리하는 UI 객체의 수명을 어긋나게 만들어, 해제된 객체가 다시 참조되는 상황을 유발합니다.
- 재사용된 메모리를 공격자 제어 데이터로 채워 실행 흐름을 장악하고, 샌드박스 경계를 넘어 코드를 실행할 가능성으로 이어집니다.
영향도: 확인된 성격은 원격·무인증 공격자가 사용자 상호작용을 매개로 유발하는 use-after-free이며, 성공 시 샌드박스 밖 임의 코드 실행 가능성입니다(CVSS 기밀성·무결성·가용성 모두 High, 스코프 변경). 다만 이 CVE에 대한 실제 악용 관측은 보고되지 않았습니다(⚠️미확인 — 다만 같은 릴리스에서 별도로 실제 악용된 0-day가 있으니 아래 혼동 주의 참조). 안정적 익스플로잇은 사용자 상호작용과 메모리 배치 조건에 달려 있습니다.
대응방안:
- 근본: Chrome을 수정 버전(153.0.8010.36 이상)으로 업데이트합니다(⚠️미확인·재확인 필요 — 벤더 Chrome Releases 공지에서 정확한 안전 버전 확인). Chrome은 자동 업데이트되지만, 적용은 브라우저를 완전히 재시작해야 완료됩니다. 조직에서는 최신 stable 채널로의 강제 배포를 점검합니다.
- 차선(즉시 업데이트 불가 시):
- 신뢰할 수 없는 링크·페이지 방문을 자제하고, 사용자 교육으로 조작된 페이지 클릭을 줄입니다(이 취약점은
UI:R, 즉 사용자 동작이 매개입니다). - 광고·스크립트 차단, 격리 브라우징(별도 프로필·컨테이너) 등으로 노출 표면을 줄입니다.
- Chromium 계열 다른 브라우저(Edge·Brave 등)도 같은 Aura 코드를 공유할 수 있으므로, 각 벤더의 대응 버전 배포 여부를 함께 확인합니다(⚠️미확인 — 파생 브라우저 영향은 각 벤더 공지 확인 필요).
- 신뢰할 수 없는 링크·페이지 방문을 자제하고, 사용자 교육으로 조작된 페이지 클릭을 줄입니다(이 취약점은
- 탐지 관점: 조직 환경에서는 구버전 Chrome이 남아 있는 엔드포인트를 인벤토리로 식별하고 강제 업데이트를 유도합니다. 브라우저 크래시(렌더러 비정상 종료) 급증은 메모리 손상 유발 시도의 신호일 수 있으므로, 크래시 리포트를 모니터링합니다.
결론
브라우저의 샌드박스는 마지막 벽입니다. 그 벽을 세우는 것도, 흔드는 것도 결국 UI 계층이 객체를 언제 놓아주느냐 하는 사소해 보이는 판단입니다.
이 부류의 사고가 반복되는 이유는 분명합니다. UI·창 관리 계층은 창이 닫히고 이벤트가 비동기로 도는 특성상 객체 수명과 참조 경로가 어긋나기 쉽고, 그 어긋남 하나가 메모리 손상을 거쳐 샌드박스 탈출까지 닿을 수 있기 때문입니다. Chrome이 매 릴리스마다 use-after-free를 다수 고치는 것도 같은 이유입니다. 이 결함은 우리가 다룬 다른 해제 후 사용(CWE-416) 계열, 그리고 메모리 안전 언어로의 이행 논의와 같은 뿌리를 공유합니다. 정석은 소유권·수명을 타입 수준에서 강제하고(스마트 포인터·약참조), 다층 방어로 렌더러 장악이 곧 시스템 장악이 되지 않게 하는 것입니다. 이 한 버그는 업데이트로 닫히겠지만, “객체를 놓아준 뒤에도 누군가 그 손잡이를 쥐고 있지 않은지”라는 질문은 다음 창, 다음 이벤트 루프에서 또 시험대에 오릅니다. 그래서 우리는 도구가 아니라 방법을 남깁니다.
References / 참고자료
- NVD, “CVE-2026-87455 Detail” — 이 글이 재구성한 1차 정본(취약점 설명·CVSS·CWE). 리서치 단계에서 JS 렌더로 본문 미획득, 식별자·존재만 확인. 팩트체크 재확인 대상. https://nvd.nist.gov/vuln/detail/CVE-2026-87455
- Chrome Releases (Google), “Stable Channel Update for Desktop” — 벤더 advisory 원문(수정 버전·Chromium 자체 등급 정본). ⚠️정확한 URL은 출처 간 변형이 있어(문서 하단 참조) 발행 전 재확인 필요. https://chromereleases.googleblog.com/2026/09/stable-channel-update-for-desktop_0808145027.html
- Chromium Issue Tracker, issue 542565481 — 해당 보안 버그 항목(접근 제한 상태, 본문 미확보 — 존재만 확인). https://issues.chromium.org/issues/542565481
- OpenCVE, “CVE-2026-87455” — 제품·버전·CWE-416·CVSS·컴포넌트(Aura) 교차 확인. https://app.opencve.io/cve/CVE-2026-87455
- OSV / Debian, “DEBIAN-CVE-2026-87455” — 영향/수정 버전 교차 확인. https://osv.dev/vulnerability/DEBIAN-CVE-2026-87455
- THREATINT, “CVE-2026-87455” — CVSS 벡터·CWE·타임라인(공개일) 교차 확인. https://cve.threatint.com/CVE/CVE-2026-87455
이 글은 위 원 자료를 우리 관점에서 다시 쓰고 논평을 더한 것입니다. 특정 문장·코드를 그대로 옮기지 않았으며, 자세한 재현 절차는 원문을 참고하세요. 이 CVE는 패치 커밋 SHA·취약 파일/함수가 공개되지 않아(이슈 트래커 접근 제한 + 벤더 미공표), 코드 인용은 use-after-free 일반 원리의 개념 재구성이며 파일/라인 단정을 하지 않았습니다. ⚠️미확인 표시가 붙은 사실 주장(특히 영향/수정 버전·CWE·CVSS 벡터·컴포넌트·근본원인·공개일)은 발행 전 독립 팩트체크로 1차출처 대조가 끝나야 확정됩니다. 혼동 주의: CVE-2026-79290도 “Use after free in Aura”에 CVSS 9.6으로 매우 유사하나 별개 CVE입니다. 또한 같은 153.0.8010.36 릴리스에서 실제 악용된 0-day는 CVE-2026-87491(별개)이며, 본건(87455)은 악용 보고가 없습니다. Chrome Releases 벤더 URL은 ..._0808145027.html과 ..._01882797386.html 두 변형이 관측되어 발행 전 확인이 필요합니다.