안드로이드 ‘죽음의 SMS’ 취약점, 통화 끊고 휴대전화 반복 충돌 유발

읽는 시간 9분
Android SMS of Death Flaw Can Drop Calls and Trap Phones in Repeated Crashes

눈에 보이지 않는 메시지가 통화를 끊을 수 있다

취약한 안드로이드 휴대전화에서는 단 8바이트짜리로 정교하게 조작된 문자 메시지가 통화 서비스를 중단시켜 진행 중인 통화를 끊을 수 있다. 이런 메시지가 반복해서 전송되면 휴대전화가 정상적으로 시작되지 않을 수도 있다. 보안 연구원 마크 블라슈치크는 5월 5일 구글에 처음 문제를 신고한 뒤 2026년 10월 29일 취약점을 공개했다.

목차
  1. 눈에 보이지 않는 메시지가 통화를 끊을 수 있다
  2. 메시지가 받은 편지함에 도달하지 않는 이유
  3. 큰 숫자가 음수 길이로 바뀐다
  4. 짧은 중단이 반복 장애로 이어지는 과정
  5. 복구 화면이 데이터 손실을 뜻할 수 있는 이유
  6. 주의가 필요한 안드로이드 버전은?
  7. 제보 처리와 다른 경로로 진행된 수정
  8. 수정 사항의 내용
  9. 사용자가 지금 할 수 있는 일
  10. 핵심 내용

‘죽음의 SMS(SMS of Death)’로 불리는 이 취약점은 보안 관련 보도에서 CVE-2026-58882로 식별됐다. 메시지가 메시지 앱에 도달하기 전에 특정 수신 메시지를 처리하는 소프트웨어에 영향을 준다. 수신자는 아무것도 열거나 앱을 설치하거나 링크를 누를 필요가 없다. 블라슈치크에 따르면 악성 메시지는 받은 편지함에 표시되지 않고 알림도 생성하지 않는다.

블라슈치크는 2026년 4월 펌웨어를 실행하는 구글 픽셀 9와 갤럭시 A 시리즈 모델을 포함한 삼성 갤럭시 휴대전화 여러 대에서 문제를 재현했다. 해당 기기들을 대상으로 한 모든 테스트에서 재현에 성공했다고 밝혔다. 메시지 한 건만으로도 안드로이드가 통화 프로세스를 다시 시작하는 동안 약 1~2초간 이동통신 서비스가 중단됐다.

독립 보안 연구원인 블라슈치크는 전화 기능을 담당하는 안드로이드 프로세스에 발생하는 즉각적인 영향을 다음과 같이 설명했다.

형식이 잘못된 WAP 푸시 SMS 하나만으로도 안드로이드의 com.android.phone이 충돌해 피해자가 아무 조작도 하지 않아도 진행 중인 통화(긴급 통화 포함)가 끊긴다.

테스트 환경 밖에서 발생한 공격 사례는 보고되지 않았다. 긴급 서비스에 지장을 줄 수 있다는 경고는 연구원의 평가에 근거한다. 영향을 받는 휴대전화와 이동통신망, 국가의 전체 목록은 공개되지 않았다. 실제 우려되는 점은 짧은 서비스 중단으로 대화가 끊길 수 있고, 중단이 반복되면 도움이 필요한 순간에 연결을 유지하지 못할 수 있다는 것이다.

광고

메시지가 받은 편지함에 도달하지 않는 이유

안드로이드는 모바일 네트워크를 통해 데이터와 명령을 전달하는 오래된 방식인 WAP 푸시를 통해 악성 콘텐츠를 받는다. 멀티미디어 메시지를 가져오거나 통신사 설정을 적용하도록 휴대전화에 알리는 것이 정상적인 사용 사례다. 사람이 읽도록 작성된 일반 문자와 달리 이런 메시지는 시스템 소프트웨어가 자동으로 처리한다.

안드로이드의 WapPushOverSms 구성 요소가 이 처리를 담당한다. 메시지 일부의 길이를 나타내는 정보를 휴대전화가 읽는 디코딩 함수에서 결함이 발생한다. 정상적인 메시지 처리가 끝나기 전에 통화 서비스에서 오류가 발생하므로 수신자는 확인하거나 삭제할 수 있는 문자를 보지 못한다.

따라서 이 공격은 사람들이 보통 메시지가 수상한지 판단하는 시점을 우회한다. 모르는 발신자를 무시하거나 링크를 열지 않는 방법은 자동 처리 중 발생하는 오류를 막는 데 거의 도움이 되지 않는다. 보호를 위해서는 주로 메시지를 처리하는 운영체제 구성 요소를 수정해야 한다.

큰 숫자가 음수 길이로 바뀐다

블라슈치크는 숫자 변환 오류가 충돌을 일으킨다는 점을 밝혀냈다. 안드로이드는 큰 숫자를 담을 수 있는 자료형으로 메시지 헤더의 길이를 읽은 뒤, 값이 범위 안에 들어가는지 확인하지 않고 이를 32비트 부호 있는 정수로 변환한다.

설명된 테스트에서는 이 과정에서 2,147,483,648이라는 값이 -2,147,483,648로 바뀐다. 이 크기의 부호 있는 정수가 표현할 수 있는 양수는 최대 2,147,483,647이다. 조작된 값은 그 한계를 딱 넘어선다.

그러면 안드로이드는 음수 길이를 사용해 데이터 블록을 저장할 공간을 확보하려고 한다. 음수 크기는 해당 작업에서 의미가 없으므로 소프트웨어는 NegativeArraySizeException이라는 오류를 발생시킨다. 이 오류가 제대로 처리되지 않아 com.android.phone이 종료된다.

8바이트 메시지에는 문제가 되는 길이 정보를 전달하는 5바이트 시퀀스가 들어 있다. 작은 메시지로도 결함의 심각성을 알 수 있다. 중앙 시스템 프로세스가 메시지를 해석하는 도중 실패하면 아주 짧은 수신 메시지가 훨씬 큰 장애를 일으킬 수 있다.

광고

짧은 중단이 반복 장애로 이어지는 과정

이동통신사는 보통 휴대전화가 메시지를 받았다는 확인 응답을 보낼 것으로 기대한다. 안드로이드가 통신을 완료하기 전에 충돌하면 통신사가 메시지를 다시 전송할 수 있다. 문자 전송의 신뢰성을 높이기 위한 기능이 같은 유해 콘텐츠를 휴대전화로 다시 보내는 결과를 낳을 수 있는 것이다.

안드로이드는 수신 메시지를 처리하는 동안 대기열에도 보관한다. 블라슈치크에 따르면 형식이 잘못된 메시지가 대기열에 남아 있다가 재시작 후 다시 처리되면서 같은 충돌을 일으킬 수 있다.

블라슈치크는 기기를 재시작해도 장애가 끝나지 않을 수 있는 이유를 다음과 같이 설명했다.

형식이 잘못된 메시지가 대기열에 남아 부팅할 때마다 재시도되므로, 메시지를 지울 때까지 휴대전화가 시작 과정에서 충돌할 수 있다.

블라슈치크는 메시지 약 20건이면 기기를 장기간 사용할 수 없게 될 수 있다고 경고했다. 테스트에서는 메시지 약 30건이 빠르게 도착한 뒤 더 지속적인 장애가 발생하는 경우도 설명했다. 이 수치는 테스트 조건을 나타내며 모든 휴대전화에서 동일하게 적용되는 정확한 임계값은 아니다.

연구원은 일부 지속적인 장애의 원인으로 수신 SMS 데이터를 저장하는 SQLite 데이터베이스의 손상을 지목했다. SQLite는 앱과 운영체제가 구조화된 기록을 보관할 때 사용하는 소규모 데이터베이스 시스템이다. 시작 과정에 필요한 기록이 계속 오류를 일으키면 통화 서비스는 휴대전화가 복구를 시도할 때마다 충돌할 수 있다.

테스트에서는 통신사의 재전송으로 최대 일주일 동안 간헐적인 통화 문제가 발생했으며, 악성 메시지 한 건으로 인한 장애도 있었다. 통신사에 보관된 메시지와 휴대전화에 저장된 기록이 함께 작용하면 최초 전송 이후에도 영향이 지속될 수 있는 이유를 알 수 있다.

복구 화면이 데이터 손실을 뜻할 수 있는 이유

안드로이드에는 RescueParty라는 자동 복구 기능이 있다. 중요 구성 요소가 계속 실패하면 복구를 시도하고, 약 90초가 지나면 휴대전화를 복구 모드로 전환할 수 있다. 이때 사용자에게 데이터 삭제 옵션이 표시될 수 있다.

초기화하면 기기의 로컬 데이터와 설정이 삭제된다. 블라슈치크에 따르면 테스트에서는 통신사가 확인 응답을 기다리는 메시지를 나중에 다시 보낼 수 있어 초기화로 얻는 효과는 일시적이었다. 따라서 휴대전화를 초기화한 사람은 개인 정보를 잃고도 이후 다시 충돌을 겪을 수 있다.

광고

블라슈치크는 개발과 유지 관리를 위해 컴퓨터가 안드로이드 기기와 통신하도록 하는 도구인 안드로이드 디버그 브리지(ADB)를 이용한 복구 방법을 설명했다. 이 절차에서는 휴대전화에 잠시 접근할 수 있는 동안 영향을 받은 SMS 기록을 삭제한다.

ADB 복구에는 기술적인 접근 권한이 필요하며, 많은 사용자는 필요한 연결을 미리 설정해 두지 않았을 수 있다. 연구원의 복구 방법에는 실제 SIM 카드를 안드로이드가 아닌 휴대전화로 옮겨 미확인 메시지를 수신하고 확인 응답을 보내는 과정도 포함됐다. 모바일 요금제가 eSIM을 사용하는 경우 복구가 더 어려울 수 있다고 경고했다.

충돌이 반복되는 상황이라면 데이터를 지우기 전에 자격을 갖춘 기술 지원을 받는 것이 우선이다. 보고된 복구 방법은 시스템 기록과 접근 설정을 다루므로 일반 문자 메시지를 삭제하는 것보다 복잡하다.

주의가 필요한 안드로이드 버전은?

기술 관련 설명에서 주된 영향 대상 범위는 안드로이드 12부터 안드로이드 16까지다. 일부 설명에서는 안드로이드 17까지 포함한다. 테스트에서는 픽셀과 삼성 갤럭시 기기를 구체적으로 지목했지만, 문제는 여러 안드로이드 기기에 공통으로 쓰이는 전화 통신 코드에 있어 영향 범위가 더 넓을 가능성이 있다.

2026년 10월 공개된 수정 사항은 안드로이드 14부터 안드로이드 17까지 적용되는 것으로 알려졌다. 안드로이드 12 또는 13을 사용하는 휴대전화는 특히 지원 문제가 뚜렷하다. 해당 버전은 구글의 현재 보안 지원 대상에서 제외된 것으로 설명돼, 사용자들은 제조사나 다른 운영체제 제공업체가 수정 사항을 내놓기를 기다려야 한다.

휴대전화의 안드로이드 버전과 보안 업데이트 상태는 서로 다른 정보를 알려준다. 버전은 운영체제의 세대를 나타낸다. 보안 업데이트 정보는 취약점이 얼마나 최근에 수정됐는지 확인하는 데 도움이 된다. 같은 안드로이드 버전을 실행하는 휴대전화라도 수정 사항을 받는 시기는 다를 수 있다.

업데이트가 각 모델에 도달하는 시점은 제조사와 통신사의 영향을 받는다. 사용자는 설정의 ‘휴대전화 정보’, ‘보안’ 또는 ‘소프트웨어 업데이트’에서 보안 업데이트 날짜를 확인하고, 제공되는 최신 업데이트를 설치해야 한다. 이 취약점에 대한 수정은 2026년 10월 업데이트에 포함된 것으로 알려졌지만, 배포 시기가 불분명하다면 제조사가 해당 모델에 대해 확인해 주는 것이 중요하다.

광고

제보 처리와 다른 경로로 진행된 수정

블라슈치크는 구글이 처음에는 제출 내용을 보안 문제가 아닌 것으로 분류하고 자신이 요청한 조치에 동의하지 않은 채 종료했다고 밝혔다. 그가 공개한 설명에 따르면 이후 추가로 이의를 제기했지만 10월 29일 다시 비보안 문제로 분류됐다. 한편 안드로이드 엔지니어들은 수정 사항을 개발하고 있었다.

공개된 경과를 보면 연구원의 제보 처리와 안드로이드 개발 및 업데이트 시스템에서 코드가 진행된 과정은 별개로 움직였다.

  • 2026년 5월 5일: 블라슈치크가 구글에 취약점을 처음 신고했다.
  • 6월 15일: 구글이 메시지 처리 오류를 수정하는 엔지니어링 작업을 시작했다.
  • 7월: 그래핀OS는 보안 미리보기 버전을 통해 패치를 받았고, 그달 적용했다고 밝혔다.
  • 8월 5일: 수정 사항이 구글의 개발 절차에 반영된 것으로 알려졌다.
  • 10월: 변경 사항이 안드로이드 오픈소스 프로젝트에 공개됐고 안드로이드 14부터 17까지의 업데이트에 포함됐다.
  • 10월 29일: 블라슈치크가 조사 결과를 공개했다.
  • 11월: 그래핀OS는 해당 취약점이 안드로이드 보안 게시판에 포함될 예정이라고 밝혔다.

그래핀OS는 구글의 제보 처리 과정에 내부 소통 문제가 있었을 가능성을 제기했다. 이는 운영체제 프로젝트 개발자들의 추측이다. 여기서 설명한 기록에는 제보가 거부된 사실과 충돌을 막기 위한 엔지니어링 변경이 모두 담겨 있다.

11월 보안 게시판은 다음으로 예정된 공개 일정이었다. 그래핀OS는 7월에 이미 수정 사항을 적용했다고 밝혔으므로, 이후 게시판 공개는 패치 최초 배포가 아니라 공개 보안 문서의 발표 시점에 관한 것이다.

수정 사항의 내용

구글이 공개한 수정 사항은 예외 처리 범위를 넓혀 안드로이드가 런타임 오류를 포착하고 형식이 잘못된 메시지를 대기열에서 삭제하도록 한다. 이를 통해 유해한 기록에서 처리가 멈추는 대신 다음 단계로 진행할 수 있다.

블라슈치크는 변환하기 전에 헤더에 지정된 길이가 유효한지 확인하자고 제안했다. 공개된 엔지니어링 수정 방식은 대신 오류를 처리하고 문제를 일으킨 메시지를 삭제한다. 실질적으로 해당 기록을 삭제하면 한 번의 전송이 지속적인 서비스 장애로 이어지는 반복 처리 문제도 해결된다.

이 수정 사항은 형식이 잘못된 메시지를 발견했을 때 작동하는 것으로 설명됐다. 테스트에서 언급한 약 20건은 반복 장애의 심각성을 보여주는 수치이지, 수정 사항이 작동하기 전에 기다려야 하는 메시지 수가 아니다.

광고

안드로이드 오픈소스 프로젝트에 수정 사항이 공개됐다는 것은 해당 코드가 안드로이드 소프트웨어에 반영될 수 있게 됐다는 뜻이다. 하지만 개별 사용자에게 업데이트가 전달되려면 해당 휴대전화에 맞는 업데이트를 빌드하고 배포해야 한다. 따라서 구글이 코드를 수정했다는 사실과 함께 특정 모델의 지원 상태를 확인하는 것이 중요하다.

사용자가 지금 할 수 있는 일

지원 대상 휴대전화 사용자는 최신 시스템 보안 업데이트를 설치하고, 제조사의 배포 안내나 지원 정보를 확인해 수정 사항이 포함됐는지 살펴야 한다. 안드로이드 12 또는 13을 사용하는 사람은 해당 모델에 패치가 제공될 예정인지, 지원되는 안드로이드 버전으로 업그레이드할 수 있는지 제조사에 문의해야 한다.

블라슈치크는 시연 앱과 소스 코드를 공개했다. 다른 사람을 겨냥하는 행위, 특히 긴급 통신을 방해해 심각한 위험을 초래할 수 있는 행위를 하지 말라는 경고도 공개 자료에 담았다. 이 때문에 신속한 패치 배포가 더욱 시급하다.

휴대전화에서 이동통신 서비스가 반복해서 끊기거나 기기가 재시작되는 사용자는 제조사나 자격을 갖춘 수리 업체에 문의해야 한다. 데이터 보존을 원하는 경우 복구 화면이 표시되면 신중하게 대응해야 한다. 휴대전화로 통화를 유지할 수 없는 상태에서 긴급한 도움이 필요하다면 다른 정상 작동하는 전화기를 사용해야 한다.

사용자가 기억해야 할 핵심은 단순하다. 이 오류는 수상한 메시지가 있는지 판단하기도 전에 발생한다. 지원 대상 기기라면 실제로 사용 중인 휴대전화에 최신 보안 업데이트를 설치하는 것이 가장 실질적인 보호 방법이다.

핵심 내용

  • 형식이 잘못된 WAP 푸시 SMS는 수신자가 아무 조작도 하지 않아도 안드로이드 통화 서비스를 충돌시킬 수 있다.
  • 블라슈치크는 픽셀 9와 삼성 갤럭시 기기에서 취약점을 재현했으며, 한 번 발생한 통화 중단은 약 1~2초간 지속됐다.
  • 반복 처리와 통신사의 재전송으로 장기간 장애와 반복 충돌, 복구 화면이 발생할 수 있다.
  • 2026년 10월 공개된 수정 사항은 안드로이드 14부터 17까지 적용된다. 안드로이드 12 및 13 사용자는 기기 제공업체의 추가 지원에 의존해야 한다.
  • 테스트 환경 밖에서 발생한 공격 사례는 보고되지 않았다. 연구원은 통화 장애가 긴급 서비스 이용에 영향을 줄 수 있다고 경고했다.
  • 초기화하면 데이터가 삭제되며 이후 유해 메시지가 다시 전송될 수 있다. 기술적 복구에는 ADB가 필요할 수 있다.
이 기사 공유

추천 기사