2026년 4월 Ars Technica 보도에 따르면, 구글의 Project Zero는 인터넷을 통해 Pixel 휴대전화 모뎀에서 원격 코드 실행이 가능하다는 것을 입증했다. 이들은 Exynos 모뎀에서 20여 개가 넘는 취약점을 발견했으며, 그중 18개는 심각한 것으로 분류되었다. 모뎀 펌웨어는 수십 년에 걸쳐 구축된 레거시 C 및 C++로, 크기가 수십 메가바이트에 달하고 일부는 영업 비밀로 취급되기 때문에 재작성은 현실적이지 않았다.

구글은 대신 DNS 파서에 집중했다. 이제 셀룰러 기능이 DNS에 의존하고, 신뢰할 수 없는 데이터를 파싱하는 것이 주요 위험이기 때문이다. 구글은 특별히 최적화되지는 않았지만 널리 채택된 오픈소스 hickory-proto Rust 라이브러리를 선택했다. 가비지 컬렉션 방식의 안전한 언어들은 실시간 모뎀 펌웨어에 너무 느리기 때문에 배제되었고, Rust는 대신 컴파일 시점 검사를 통해 메모리 안전성을 확보한다.

Pixel 모뎀은 메모리 제약이 없기 때문에, 팀은 라이브러리의 표준 라이브러리 의존성을 제거하고 기계어로 컴파일한 뒤 기존 코드에 이식했다. 추가된 Rust 구성 요소는 371KB였다.

수십 메가바이트의 모뎀 코드를 재작성하지 말고, 신뢰할 수 없는 DNS 데이터를 파싱하는 부분만 메모리 안전한 Rust로 교체하라.

Rust는 느린 가비지 컬렉터 없이 컴파일 시점에 메모리 안전성을 강제하므로 실시간 성능이 유지된다.

DNS 파싱은 네트워크에서 오는 신뢰할 수 없는 데이터를 처리하므로 가치가 높고 범위가 좁은 대상이다.

Pixel 모뎀은 371KB 추가를 감당할 메모리 여유가 있다.

전체 펌웨어를 재작성하는 것은 그 크기와 관련된 영업 비밀을 고려할 때 비현실적이었다.

전체 재작성 대신 적대적 입력을 처리하는 좁은 구성 요소를 교체함으로써 레거시 시스템의 보안을 높일 수 있다.

Pixel 10 휴대전화가 이 모뎀 구현을 탑재하고 출시되는 첫 제품이다. 구글은 다른 플랫폼도 뒤따르기를 바라지만, 라이브러리의 크기는 더 단순한 임베디드 시스템에 문제가 될 수 있으며, 더 모듈화된 라이브러리가 이를 해결할 수 있을 것이다. 구글은 이 작업을 기저대역에 더 많은 메모리 안전 구성 요소를 추가하기 위한 기반으로 본다. 보도에서는 취약점이 얼마나 감소했는지에 대한 측정 결과는 제시하지 않았다.

근거 확인하기

출처

  1. Google shoehorned Rust into Pixel 10 modem to make legacy code safer Ars Technica · arstechnica.com ·