논리 버그만으로 엣지 전체 체인 공략, 16만 5천 달러 획득
원제 Forging a Microsoft Edge Full Chain with Logic Bugs Only
110 포인트댓글 19
Key Point
메모리 손상 없이 순수 논리 버그만으로 현대 브라우저의 완전한 권한 상승 체인을 구축한 사례로, 브라우저 보안의 새로운 취약점 면(Navigation Throttles, UXSS 프리미티브, 프로토콜 핸들러 재설정)을 시연했다.
핵심 요약
- Orange Tsai 연구원이 Pwn2Own Berlin 2026에서 논리 버그 5개와 Windows 기능 2개를 조합해 Microsoft Edge 풀 체인을 완성하고 17만 5천 달러와 17.5 Master of Pwn 포인트를 획득했다.
- Navigation Throttles는 브라우저 프로세스에서 모든 네비게이션을 가로채는데, Edge의 EdgeCAGuidanceNavigationThrottle은 회사 계정 로그인 시 사용자를 올바른 프로필로 안내하기 위해 설계되었다.
- 이 throttle은 login.live.com 같은 Microsoft 도메인에서만 발동되도록 제한되지만, GetLastCommittedURL()로 검증하면서 크로스 윈도우 네비게이션을 간과해 window.open()으로 우회 가능하다.
- throttle에서 browser 프로세스가 source_contents를 지정하지 않으면 현재 활성 탭을 자동으로 사용해, 지연 후 탭을 전환하면 UXSS(Universal XSS)가 발생한다.
- 공격 실행을 위해 4가지 문제를 해결했다: (1) 크로스 윈도우로 origin 검증 우회, (2) about:blank#quickAuthPopup를 이용한 팝업 차단 우회, (3) OneAuth 기능으로 Windows OOBE 기본 MSA 로그인 활용, (4) assets.msn.com의 CORS 오류로 서명된 사용자 이메일 탈취.
- UXSS는 browser 프로세스에서 시작되므로 CSP를 무시하고 google.com, facebook.com 등 모든 사이트에서 JavaScript를 실행할 수 있다.
- Immersive Reader의 read:// 스키마는 JavaScript URL 차단 목록에서 빠져 있어 privileged WebUI에 접근 가능하다.
- chrome.edgeFeedbackPrivate.zipDiagnosticLogFiles()로 파일명과 내용을 제어 가능한 임의 파일 쓰기가 가능하고, NULL 바이트로 .json 확장자를 제거할 수 있다.
- protocols.json을 덮어써 AutoLaunchProtocolsComponent에서 모든 origin에서 임의 프로토콜 핸들러를 실행하도록 할 수 있다.
- telnet:// 프로토콜 핸들러로 PATH 환경 변수의 writable 폴더(\Users\lowpriv\AppData\Local\Microsoft\WindowsApps)에 32비트 PE를 생성해 임의 코드 실행을 달성했다.
- 2개월간 LLM/AI 없이 수동으로 모든 버그를 찾았으며, Pwnie Awards Epic Achievement 상을 수상했다.