
Starlink Dish의 MARMALDE 2 (CVE-2025-67780) 취약점에 대한 Exploit PoC
Starlink 디시(Dishes)의 MARMALDE 2 (CVE-2025-67780) 취약점에 대한 Exploit PoC
이 취약점을 어떻게 발견했는지, 그리고 이를 어떻게 원하는 대로 활용할 수 있는지에 대한 전체 블로그 글을 읽어보세요: https://www.akawlabs.com/blog/starlink-grpc-execution
로컬 네트워크에 있는 Starlink 디시가 강제로 재부팅될 수 있음을 입증하는 여러 PoC(proof-of-concept) 구현을 개발했습니다. 이 문제는 디시의 진단 인터페이스를 통해 노출된 특정 gRPC 명령에 대한 인증 및 화이트리스트 처리가 충분하지 않았기 때문에 발생했습니다.
SpaceX에 책임 있는 공개(responsible disclosure)를 진행한 후 여러 명령에 대한 비인증 접근이 제한되었지만, 테스트 시점에는 재부팅 기능에 계속 접근할 수 있었습니다. 그 결과, 로컬 네트워크를 통해 전송된 비인증 요청은 여전히 디시의 강제 재부팅을 유발할 수 있습니다. 이를 반복적으로 트리거하면 서비스 거부(denial-of-service)가 발생합니다.
이러한 동작은 디시가 특정 비인증 입력을 수락하고 이를 내부적으로 펌웨어의 재부팅 명령 식별자에 매핑한 다음, 적절한 권한 검사 없이 실행하기 때문에 발생합니다.
이 작업은 매우 간단합니다. 진단 포트 9201에서 IP 192.168.100.1로 하드코딩된 디시에 HTTP POST 패킷으로 올바른 바이트를 보내기만 하면 됩니다. 재부팅 명령의 경우 해당 바이트는 바이너리로 전송되는 '03 ca 3e 00'입니다. 디시는 이를 HTTP를 통해 수신하여 해당하는 gRPC 명령 ID(펌웨어에서 재부팅은 1001)로 변환한 후 실행합니다.