보안 취약점 · 3 min read · Feb 04, 2026
침묵 공격 취약점으로 5억 대의 안드로이드 스마트폰이 작동 불능 상태가 될 수 있습니다

목차
- 침묵 공격: 젤리빈에서 롤리팝까지의 안드로이드 스마트폰에서 미디어 서버 취약점으로 인해 작동 불능 상태가 됩니다 (업데이트됨)
- 침묵 공격
- 개념 증명
침묵 공격: 젤리빈에서 롤리팝까지의 안드로이드 스마트폰에서 미디어 서버 취약점으로 인해 작동 불능 상태가 됩니다 (업데이트됨)
트렌드 마이크로 연구소의 연구자들은 안드로이드 기기에서 이상한 취약점을 발견했습니다. 이 취약점이 악용되면 기기가 침묵 상태가 됩니다. 여기서 침묵 상태란, 이 취약점이 악용된 안드로이드 스마트폰이 작동 불능 상태가 되어 통화도 할 수 없고 수신도 할 수 없으며 화면이 작동하지 않는 상태를 의미합니다.
트렌드 마이크로 연구소 웹사이트에 따르면 이 취약점은 안드로이드 4.3 젤리빈부터 안드로이드 5.1.1(롤리팝)까지의 모든 안드로이드 스마트폰과 태블릿에 존재합니다. 트렌드는 현재 안드로이드 M 버전이 이 공격에 취약한지 여부를 명확히 하지 않았습니다.
안드로이드 4.3부터 안드로이드 5.1.1(젤리빈에서 롤리팝까지)까지의 버전은 유통되는 안드로이드 스마트폰의 거의 절반에서 사용되고 있으며, 이는 거의 5억 대의 안드로이드 스마트폰이 이 취약점에 노출되어 있음을 의미합니다.
침묵 공격
이 취약점은 두 가지 방법으로 악용될 수 있습니다: 기기에 설치된 악성 앱을 통해서 또는 PoC 코드를 호스팅하는 특별히 제작된 웹사이트를 통해서입니다.
첫 번째 기술은 안드로이드 기기에 장기적인 영향을 미칠 수 있습니다. 피해자가 MKV 파일이 포함된 앱을 설치하고, 그러한 앱이 안드로이드 스마트폰이 부팅될 때마다 자동으로 시작되도록 등록하면, 이 취약점이 발생하여 기기가 충돌하게 됩니다.
두 번째 기술에서는 안드로이드 스마트폰 소유자가 코드가 호스팅된 잘못된 형식의 웹사이트를 방문하거나 기기가 그러한 웹사이트를 방문할 때 취약점이 발생합니다.
트렌드 마이크로 연구자들은 이 취약점이 안드로이드가 안드로이드 기기에 위치한 미디어 파일을 인덱싱하는 데 사용하는 mediaserver 서비스에 있다고 말합니다.
공격자가 잘못된 형식의 비디오 파일을 안드로이드 기기로 전송하면, mediaserver 서비스는 .mkv 확장자를 가진 파일에서 사용되는 Matroska 컨테이너를 사용하여 이 비디오를 처리할 수 없습니다.
잘못된 형식의 MKV 파일을 처리할 수 없기 때문에, 이 서비스는 충돌하여 기기가 작동 불능 상태가 될 수 있습니다.
이 취약점은 mediaserver 서비스가 MKV 파일을 구문 분석할 때 정수 오버플로우로 인해 발생합니다. 오디오 데이터를 구문 분석할 때 메모리를 버퍼 밖으로 읽거나 NULL 주소에 데이터를 쓰게 됩니다.
아래의 소스 코드는 frameworks/av/media/libstagefright/matroska/MatroskaExtractor.cpp 파일에서 발견된 취약점을 자세히 보여줍니다:
865 size_t offset = 1; 866 size_t len1 = 0; 867 while (offset < codecPrivateSize && codecPrivate[offset] == 0xff) {//codecPrivate는 mkv 파일에 의해 제어됨 868 len1 += 0xff; 869 ++offset; 870 } 871 if (offset >= codecPrivateSize) { 872 return ERROR_MALFORMED; 873 } 874 len1 += codecPrivate[offset++]; 875 876 size_t len2 = 0; 877 while (offset < codecPrivateSize && codecPrivate[offset] == 0xff) { 878 len2 += 0xff; 879 ++offset; 880 } 881 if (offset >= codecPrivateSize) { 882 return ERROR_MALFORMED; 883 } 884 len2 += codecPrivate[offset++]; 885 886 if (codecPrivateSize < offset + len1 + len2) {//len1 또는 len2가 0xffffffff일 수 있으며, 이 경우 정수 오버플로우가 발생함887 return ERROR_MALFORMED; 888 } 889 890 if (codecPrivate[offset] != 0x01) { 891 return ERROR_MALFORMED; 892 } 893 meta->setData(kKeyVorbisInfo, 0, &codecPrivate[offset], len1);//여기서 충돌
개념 증명
개념 증명(PoC) 앱은 트렌드 마이크로에서 제공하며 아래에 재현되었습니다. 이 앱은 공격이 어떻게 작동하는지를 보여주기 위해 잘못된 형식의 MKV 파일(res/raw/crash.mkv)을 포함하고 있습니다. 앱이 시작되면 mediaserver 서비스가 계속 충돌하게 됩니다.

그림 1. 공격이 발생한 후 mediaserver 서비스가 계속 재시작됨
이로 인해 기기는 완전히 침묵 상태가 되고 반응하지 않게 됩니다. 이는 다음을 의미합니다:
벨소리, 문자음 또는 알림 소리가 들리지 않습니다. 사용자는 수신 전화/메시지에 대한 아무런 아이디어가 없으며, 전화를 받을 수도 없습니다. 양쪽 모두 서로의 목소리를 들을 수 없습니다.
UI가 매우 느리게 반응하거나 완전히 반응하지 않을 수 있습니다. 전화가 잠겨 있는 경우 잠금을 해제할 수 없습니다.
여러 면에서 이 취약점은 어제 보고한 스테이지프라이트 공격과 유사합니다. 스테이지프라이트 공격은 안드로이드 OS 생태계가 미디어 파일을 처리하는 특정 방식으로 인해 발생합니다. 유일한 차이점은 스테이지프라이트 공격 취약점이 거의 모든 안드로이드 스마트폰에 영향을 미치는 반면, 침묵 공격 취약점은 젤리빈에서 롤리팝까지의 버전에서만 영향을 미치며 두 취약점이 미디어 파일을 처리하는 방식입니다.
트렌드 마이크로 연구소는 2015년 5월에 이 취약점에 대해 구글(안드로이드 엔지니어링 팀)에 알렸다고 말하지만, 현재까지 안드로이드 엔지니어링 팀이 이 취약점을 수정하기 위해 안드로이드 오픈 소스 프로젝트(AOSP) 코드에 패치를 발행하지 않았습니다.
Techworm은 이 취약점에 대해 구글에 의견을 요청했으며, 구글 대변인은 이메일 회신에서 다음과 같이 말했습니다.
“연구자에게 감사드립니다. 그들의 보고서는 안드로이드 보안을 강화하는 데 도움이 됩니다. 우리 팀은 잠재적인 악용을 면밀히 모니터링하고 있지만, 실제 악용의 증거는 발견되지 않았습니다. 만약 실제로 이 취약점이 악용된다면, 사용자에게는 기기에서 미디어 재생이 일시적으로 중단되는 위험만 있습니다. 따라서 응답하지 않는 애플리케이션을 단순히 제거하거나 브라우저가 멈추게 하는 웹사이트로 돌아가지 않으면 문제가 해결됩니다. 또한, 우리는 향후 안드로이드 버전에서 수정 사항을 제공할 것입니다.”
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.