5Ghoul: MediaTek 5G modem vulnerabilities (CVE-2023-32842/32844/20702/32846/32841/32843/32845)¶
Sahte (rogue) bir 5G baz istasyonu, NAS security kurulmadan önce bozuk downlink RRC/RLC frame'leri göndererek MediaTek Dimensity 5G modem firmware'ini havadan (over the air) crash ettirir veya reboot'a sokar.
Mechanism¶
Note
5Ghoul, ASSET Research Group (NUS) tarafından açıklanan, ticari 5G NR (New Radio) modem firmware'lerindeki bir implementation flaw ailesidir. İhlal edilen temel invariant şudur: modem, karşılıklı authentication tamamlanmadan önce downlink control-plane mesajlarına güven uzatıyor.
5G attach prosedürü sırasında cihaz (UE) ile network, NAS-layer security ve
authentication müzakere edilmeden önce Radio Resource Control (RRC) ve alt
katman (MAC/RLC) mesajlarını değiş tokuş eder. Cihaz bu noktada meşru bir
gNB ile sahte bir gNB'yi henüz ayırt edemediği için bu frame'leri körü
körüne parse edip onlara göre davranmak zorundadır. MediaTek modem firmware'i
(açıklamada Dimensity 900/1200) ASN.1-encoded RRC yapıları için
(spCellConfig, pucch/CSIReportConfig, searchSpacesToAddModList,
physicalCellGroupConfig, uplink config element'leri) ve RLC PDU'lar için
spec dışı veya truncated encoding'lere karşı hardened olmayan parser'lar
içerir.
Radio link'i kontrol eden bir attacker (SDR + open-source bir 5G stack'ten kurulmuş bir rogue gNB) UE'ye bozuk bir frame verdiğinde, parser ya bir reachable assert'e (firmware'i abort ettiren internal bir sanity check) çarpar ya da null/invalid bir pointer'ı dereference ederek modem'i fault'a sokar. Bu pre-authentication gerçekleştiği için attacker'ın hiçbir SIM secret'ına veya önceden pairing'e ihtiyacı yoktur — aşılan trust boundary şudur: "camp ettiğim cell üzerinde gönderilen her şey iyi niyetli bir network olmalı."
Walkthrough¶
ASSET grubu bu bug'ları bir over-the-air fuzzing framework ile buldu: bir rogue gNB ve 5G core (OpenAirInterface ve Open5GS üzerine kurulu) gerçek bir hedef handset'e gönderilen downlink frame'leri mutate eder, ardından modem crash'leri, reboot'lar veya connectivity kaybı için izler.
Açıklamaya göre MediaTek tarafındaki CVE'ler ve trigger'ları:
| CVE | Kısa ad | Bug sınıfı | Trigger (katman) |
|---|---|---|---|
| CVE-2023-32842 | Invalid RRC Setup spCellConfig | Reachable assert | Bozuk RRC Setup spCellConfigDedicated |
| CVE-2023-32844 | Invalid RRC pucch CSIReportConfig | Reachable assert | Hatalı searchSpacesToAddModList element'i içeren RRC Setup |
| CVE-2023-20702 | Invalid RLC Data Sequence | Null pointer deref | Bozuk RLC Status PDU / RLC header alanları |
| CVE-2023-32846 | Truncated RRC physicalCellGroupConfig | Null deref / mem access | Truncated RRC Setup physicalCellGroupConfig |
| CVE-2023-32841 | Invalid RRC searchSpacesToAddModList | Reachable assert | Hatalı monitoringSymbolsWithinSlots alanı |
| CVE-2023-32843 | Invalid RRC Uplink Config Element | Reachable assert | Hatalı qcl-Type / resourceAllocation değerleri |
| CVE-2023-32845 | Null RRC Uplink Config Element | Reachable assert | pdsch-Config'in release olarak ayarlanıp uplink element'inin null bırakılması |
Note
CVE-2023-20702'nin ID'si diğerlerinden (CVE-2023-32841..32846) sayısal
olarak düşüktür; bu bir typo değildir. MediaTek kendi CNA'sı olarak
CVE-2023-207xx bloğundan numara atar, dolayısıyla aynı yıl içinde farklı
bir aralık kullanılır. Bu CVE, MediaTek advisory'sinde (RLC / NRLC DoS)
ve NVD'de doğrulanmıştır.
Kavramsal olarak attacker rogue cell'i ayağa kaldırır, kurban'ın camp edip RRC setup'a başlamasına izin verir, ardından mutate edilmiş bir downlink frame inject eder:
[rogue gNB] -- RRC Connection Setup (spCellConfigDedicated mutated) --> [victim UE]
[victim modem firmware] -- parse ASN.1 --> reachable assert / NULL deref --> CRASH
Observed effect
Açıklama, inject edilen her frame başına modem'in crash olup reboot ettiğini (saniyeler mertebesinde) bildiriyor. Sürekli denial of service, rogue cell'i aktif tutup her re-attach'te bozuk frame'i tekrar inject eden bir attacker tarafından sağlanır; bu, kurban için sürekli bir reboot loop'u ve 5G connectivity kaybı üretir.
Warning
Bunlar production handset'lere karşı gerçek radio-layer saldırılarıdır. Bunları yeniden üretmek, bir SDR'dan lisanslı 5G spectrum üzerinde yayın yapmayı gerektirir; bu, yetki olmadan yasa dışıdır ve yakındaki meşru cihazları bozabilir. Bu tür çalışmayı yalnızca uygun yetkiyle, shielded/Faraday bir test ortamında yapın.
Detection¶
Semptom seviyesinde tespit: açıklanamayan baseband/modem crash'leri ve reboot'lar, tekrarlayan RRC re-attach'ler veya bir rogue cell mevcutken beklenmedik 5G servis kaybı. Network tarafında, tanınan bir PLMN yayınlayan yetkisiz bir gNB'nin varlığı rogue-base-station monitoring ile tespit edilebilir.
Mitigation¶
MediaTek, etkilenen Dimensity modem'leri için firmware patch'leri yayınladı (cihaz vendor'larına teslim edilip OEM security update'leri üzerinden push edildi). Genel savunma ilkesi, pre-authentication RRC/RLC/MAC parser'larını spec dışı encoding'lere karşı hardening yapmak ve reachable assert'leri firmware abort yerine zarif (graceful) error handling ile değiştirmektir. Handset firmware/security patch seviyesini güncel tutun.