Syncframe이 돌비 통합 디코더(Dolby Unified Decoder) 안으로 폭발하듯 침투합니다. 쾅! mediacodec 컨텍스트에서 임의 코드 실행이 발생하며, 픽셀 9은 0클릭으로 장악당합니다.
구글 메시지 앱이 최근 RCS 오디오 첨부 파일을 자동으로 디코딩하는 기능을 탑재했습니다. 음성 인식(transcription)을 위한 ‘편의’ 기능인데, 이게 안드로이드 폰의 0클릭 공격 표면을 엄청나게 넓혀버렸습니다. 제조사들은 이 돌비 코드 덩어리를 아무런 검증 없이, 픽셀 9에서는 libcodec2_soft_ddpdec.so에 정적으로 링크된 채로 출하합니다. 프로젝트 제로 팀(매디 스톤, 이반 프라트릭, 세스 젠킨스)은 단순히 버그 몇 개를 찾은 게 아닙니다. 이들은 버그들을 엮어 완전한 익스플로잇 체인을 만들었고, 회의론자들의 코를 납작하게 만들어 버렸죠.
픽셀 9의 돌비 악몽: CVE-2025-54957
DD+ 비트스트림. 싱크프레임. 오디오 블록. 아무것도 아닌 것 같죠? 천만에요. 해당 표준은 디코더가 블록당 최대 0x1FF 바이트를 ‘X8’에 동기화되는 EMDF 형식의 스킵 버퍼로 복사하도록 허용합니다. 그런데 이 버퍼를 교묘하게 조작하면, variable_bits 파싱이 엉망진창이 되면서 오버플로우나 원하는 어떤 혼돈이든 일으킬 수 있는 상태가 됩니다.
이것이 비극의 씨앗이 된 표준 스니펫입니다:
구문 (Syntax) 비트 수 (Number of bits) skiple 1 if(skiple) skipl 9 skipfld 9 * 8 }
저 skipfld? 그대로 비트스트림이 버퍼로 쏟아져 들어갑니다. 아무런 검증 없이 말이죠. 이후 EMDF 동기화 단어를 찾지만, 이미 제어권을 쥔 상태라면… 게임 끝입니다.
프로젝트 제로는 이를 이용해 샌드박스화된 mediacodec 프로세스 내에서 코드 실행을 감행했습니다. 이론적인 이야기가 아닙니다. 현실입니다. 그리고 2026년 1월 5일에 패치가 나왔지만, 예전 패치에 머물러 있는 기기들에게는 너무 늦은 거죠.
짧은 단락은 지루합니다. 이건 좀 밀도가 높네요. UDC는 OEM에 바이너리 덩어리로 제공되는데, 심볼 정보도 없고 내부 구조도 숨겨져 있습니다. 안드로이드의 자동 디코딩 강화 추세—AI 음성 인식, 검색 기능 등—는 모든 SMS 오디오 클립을 열어보기도 전에 이 코드를 실행시킵니다. 여기에 CVE-2025-36934(픽셀 9 커널 권한 상승 취약점) 같은 드라이버 버그까지 더해지면, 메시지 하나로 루트 권한을 얻는 시나리오가 완성됩니다. 제조사들은 이 공격의 실현 가능성에 의문을 제기했지만, 프로젝트 제로는 증거를 제시하며 답했습니다.
왜 안드로이드의 0클릭 공격 표면은 계속 늘어나는가?
자동화된 기능들은 그럴싸하게 들립니다. 스마트한 기능을 위해 미디어를 조용히 디코딩하는 거죠. 하지만 공격자들에게는 그야말로 뷔페입니다. 삼성의 Monkey’s Audio가 먼저 당했습니다(CVE-2025-49415). 이제 돌비가 여기저기—안드로이드, iOS, 윈도우까지—퍼져 있습니다. 픽셀이 여기서 가장 큰 타격을 입었죠.
하나의 결정타: 샌드박스? 네. 유용한가요? 물론이죠—커널로 넘어가는 데 말입니다.
2015년 Stagefright 사태를 기억하시나요? MMS 동영상으로 넥서스 기기들이 원격으로 장악당했었죠. 이번 사태는 더 크게 울려 퍼집니다. RCS의 보편화, AI 열풍이 위험을 증폭시키고 있습니다. 안드로이드의 완화 조치—샌드박싱, 검증된 부팅—는 여전히 유효하지만, 미디어 디코더와 드라이버들이 구멍을 냅니다. 프로젝트 제로의 익스플로잇 체인은 이들을 잔혹하게 시험합니다.
“우리의 연구가 이러한 공격이 실제로 어떻게 이루어지는지, 이러한 공격을 방지하는 데 있어 안드로이드 보안 기능의 강점과 약점, 그리고 모바일 장치에서 미디어 및 드라이버 취약점을 해결하는 것의 중요성을 방어자들이 더 잘 이해하는 데 도움이 되기를 바랍니다.”
원문에서 그대로 가져온 말입니다. 고귀하죠. 하지만 구글의 PR 홍보는요? 발견 몇 달 후에 패치가 나왔습니다. 사용자들은 OTA 운명에 맡겨야 할 뿐이고요.
공격자는 정말 이것으로 루트까지 탈취할 수 있는가?
2부에서는 CVE-2025-36934를 통해 커널로 점프하는 과정이 예고되어 있습니다. mediacodec 샌드박스에서 발생한 드라이버 유출이죠. 샌드박스 탈출은 신화가 아닙니다. 수학입니다. 픽셀 기기들은 ForcedEntry 이후 강화되었지만, 드라이버는 뒤처지고 있습니다.
독특한 각도: 이는 NSO 그룹의 초기 익스플로잇 체인과 유사합니다. 잠금 모드(Lockdown) 완화 조치 이전이었죠. 당시에는 WhatsApp 통화가 디코더를 트리거했습니다. 오늘날에는 메시지 앱이 RCS 오디오를 사용합니다. 예측: 총체적인 해결책 없이는, 2027년까지 0클릭 RCS 익스플로잇이 3배로 급증할 것입니다. AI 미디어 파싱이 iMessage에도 퍼질 테니까요.
기업들의 과대 광고는 이런 것을 ‘엣지 케이스’라고 부릅니다. 개뿔. 매일 수십억 개의 파일이 디코딩됩니다. 악성 클립 하나면, 폰은 장악당합니다.
깊이 파고들 시간입니다. variable_bits 의사 코드:
variable_bits (n_bits) {
value = 0;
do {
value += read n_bits
read_more 1
if (read_more) {
value <<= n_bits;
value += (1<<n_bits);
}
}
while (read_more);
return value;
}
루프가 제어되지 않으면? 오버플로우 천국이죠. EMDF 컨테이너는 버전, 추가적인 variable_bits를 통한 key_id 확장 등 페이로드를 체인으로 연결합니다. 판을 짜고, 파서를 부숴버리는 겁니다.
픽셀 9에서 UDC는 vendor/lib64 폴더 안에 둥지를 틀고 있습니다. 샌드박스화 되어 있죠. 하지만 인접한 드라이버들은요? 세스 젠킨스가 그 틈을 찾아냈습니다.
제조사들의 부인, 산산조각 나다
질문이 쏟아졌습니다: ‘실현 가능성이 있나? 일반인에게 0클릭인가? 실행 후 유용한가?’ 프로젝트 제로는 그 체인을 완성했습니다. mediacodec 코드 실행은 데이터 유출, 키로깅, 권한 상승으로 이어집니다. 플랫폼은 디코더를 강화하고, 드라이버를 격리하며, 자동 디코딩 옵트인 기능을 중단해야 합니다.
공포 속의 아이러니: 돌비 애트모스는 몰입감을 약속합니다. 여기서는 공격자들을 몰입시키고 있군요.
3부의 교훈이 다가옵니다. 완화 조치에 대한 비판이 예상됩니다. 안드로이드의 바이너리 덩어리 의존성이 문제가 되고 있죠.
🧬 관련 인사이트
자주 묻는 질문
CVE-2025-54957이란 무엇인가요?
돌비 UDC의 스킵 버퍼 파싱 과정에서 발생하는 버퍼 처리 오류로, DD+ 오디오 디코딩 시 코드 실행을 초래합니다.
제 픽셀 9은 0클릭 돌비 익스플로잇으로부터 안전한가요?
2026년 1월 또는 그 이후의 패치를 적용했는지 확인하세요. 설정 > 시스템 > 시스템 업데이트에서 확인 가능합니다. 패치가 안 되었다면 취약합니다.
안드로이드 메시지의 0클릭 공격은 어떻게 작동하나요?
RCS 오디오가 사용자 오픈 전에 음성 인식을 위해 자동으로 디코딩되면서 취약점을 건드립니다.