FlawOpen

flawopen.com/Teardowns/cve-2026-0628-chrome-gemini-webview-extension-policy

● CVE-2026-0628 · CVSS 8.8[3] · 높음
보안 연구 · FlawOpen

Chrome CVE-2026-0628: Gemini WebView 취약점

CVE-2026-0628은 Chrome 확장 프로그램이 DNR로 Gemini의 권한 WebView에 영향을 주게 했습니다. Chrome 143.0.7499.192 이상으로 업데이트하세요.[1], [3], [5]

CVSS 벡터CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H[3]
💡 알기 쉬운 설명 (ELI5)

Gemini Live를 공공 도서관의 안내 창구와 그 뒤의 직원 전용 문으로 생각해 보세요. Chrome은 확장 프로그램이 그 문으로 들어가는 것을 막았지만, 배송 경로를 바꾸는 규칙은 Gemini 창구에서 로드되는 스크립트를 바꿀 수 있었습니다. 스크립트는 이 내장 창구에서 실행됐고, 창구에는 브라우저 기능을 요청할 수 있는 직원용 통로가 연결돼 있었습니다. CVE-2026-0628은 배송 경로에 검사가 빠져 있던 문제입니다.[2], [5]

핵심 개념 및 용어

권한 있는 WebView
브라우저가 관리하는 화면에 삽입되어 일반 웹사이트에는 없는 브라우저 기능과 통신할 수 있는 페이지.[2], [5]
declarativeNetRequest (DNR)
일치하는 네트워크 요청에 선언형 규칙을 적용하는 Chrome 확장 API로, 리디렉션과 응답 헤더 변경 등을 지원합니다.[2], [6]
CVE-2026-0628
Google이 High 심각도로 분류한 Chrome 취약점: Chrome 143.0.7499.192 이전 WebView 태그의 정책 적용이 불충분했습니다.[3], [4]
BragJack / prompt forcing
확장 프로그램이 브라우저 AI 에이전트를 제어하는 방식을 다룬 2026년 9월 연구 보고서입니다. 연구 명칭이며 별도의 Chrome CVE가 아닙니다.[2], [4]

프레임워크 매핑

  • 이 가이드에서 설명하는 약점의 CWE 참조: CWE-862

근본 원인 분석 (Root Cause)

Google은 CVE-2026-0628을 Chrome WebView 태그의 정책 적용 부족으로 설명합니다. Forever Security의 기술 공개에 따르면 Gemini Live는 브라우저가 관리하는 chrome://glic 페이지를 사용해 WebView 안에 gemini.google.com을 삽입했습니다. Chromium은 권한 페이지에 대한 확장 프로그램의 직접 상호작용을 차단했지만, 보고된 결함은 declarativeNetRequest (DNR) 권한이 있는 확장 프로그램이 삽입된 페이지의 일치하는 HTTPS 요청에 영향을 주도록 했습니다. 연구자는 응답 헤더를 변경하고 스크립트를 대체해 삽입된 Gemini origin에서 코드를 실행하고 브라우저 에이전트 브리지와 통신하는 경로를 설명합니다. 이는 일반 확장 권한과 권한 패널 기능 사이의 경계를 넘을 수 있었습니다. 보고서는 페이지 컨텍스트, 로컬 파일 내용, 스크린샷 접근을 보여 주며 카메라/마이크 접근 가능성도 설명합니다. 이는 연구자가 보고한 영향이지 실제 공격에서 악용됐다는 증거는 아닙니다. CVE 악용에는 사용자가 악성 확장 프로그램을 설치해야 합니다. Google은 Windows/macOS Chrome 143.0.7499.192/.193 및 Linux .192에서 WebView 경계를 수정했습니다. 공개된 Chromium 수정은 경계를 확인해 줍니다. request.is_web_view가 true이면 RulesetManager는 기존 허용 판단 전에 false를 반환합니다. Chromium은 ChromeSignInWebViewTest.DeclarativeNetRequestRulesNotMatched를 추가했지만, 테스트가 MPArch를 건너뛰므로 이 회귀 테스트는 해당 아키텍처를 다루지 않습니다.[3], [2], [5], [4]

단계별 공격 실행 흐름

단계 1

전제 조건 확인

보고된 Chrome 경로에는 취약한 빌드와 사용자가 설치한 악성 또는 손상된 확장 프로그램이 필요하며, 해당 확장에는 DNR 및 일치하는 호스트 권한이 있어야 합니다. 웹페이지를 방문하는 것만으로 발생하는 공격은 아닙니다.[3], [2], [6]

단계 2

브라우저 관리 에이전트 화면 열기

Gemini Live는 브라우저 페이지 chrome://glic를 사용하고 WebView 안에 Gemini 웹 앱을 삽입합니다. 이 페이지는 일반 웹사이트에 허용되지 않은 기능을 호출할 수 있습니다.[2]

단계 3

WebView 요청 경계 넘기

연구자에 따르면 권한 화면에 대한 확장 프로그램 상호작용이 제한되어도 DNR 규칙은 삽입된 WebView 내 HTTPS 리소스에 영향을 줄 수 있었습니다.[2], [5]

단계 4

권한 페이지 동작에 도달

응답 정책과 Gemini origin에서 로드되는 코드를 바꾸면 시연된 체인이 브라우저 에이전트 브리지와 통신할 수 있었습니다. 연구자는 로컬 파일과 스크린샷 접근을 보고했으며 실제 악용에 대한 공개 증거는 없습니다.[2], [3]

단계 5

패치하고 확장 노출 줄이기

Google 수정은 플랫폼별로 Chrome 143.0.7499.192/.193에 포함됐습니다. 현재 안정 버전으로 업데이트하고 넓은 호스트 및 DNR 권한을 가진 확장 프로그램을 제한하세요.[1], [3], [5]

소스 코드 비교: 취약한 구현 vs 보안 패치

이 코드는 exploit 재현이 아니라 Chromium upstream C++ 변경입니다. 기존 허용 판단 전에 WebView에서 시작된 요청을 거부해 Declarative Net Request 규칙이 해당 요청에 적용되지 않게 합니다. Chromium은 ChromeSignInWebViewTest.DeclarativeNetRequestRulesNotMatched도 추가했지만, 이 브라우저 테스트는 MPArch를 건너뛰므로 해당 아키텍처의 검증 범위를 입증하지 않습니다.[5]

취약한 구현
// 발췌: extensions/browser/api/declarative_net_request/ruleset_manager.cc
// 수정 전에는 이 최종 판단에서 WebView 출처인지 확인하지 않았습니다.
return true;
보안 강화 패치
// 발췌: extensions/browser/api/declarative_net_request/ruleset_manager.cc
// 기존 최종 허용 처리 앞에 추가된 Chromium 변경 9722f06a:
// Declarative Net Request 규칙을
// WebView에서 시작된 요청에 적용해서는 안 됩니다.
if (request.is_web_view) {
  return false;
}
return true;

엔지니어링 및 시스템 보안 강화 체크리스트

출처