Full Chain Baseband Exploits: Samsung Shannon RLC overflow (CVE-2023-41111 / CVE-2023-41112)¶
TASZK Labs'in Samsung Shannon baseband'inin Radio Link Control (RLC) re-assembly mantığındaki over-the-air heap overflow'u (CVE-2023-41111 + CVE-2023-41112): bir logic/OOB çifti fragment-descriptor listesini desenkronize eder, böylece copy-before-check bir re-assembly döngüsü bir baseband heap buffer'ını taşırır ve modemde code execution üretir (bir Galaxy S21 üzerinde gösterildi).
Scope
Bu girdi, full-chain baseband serisinin condensed radyo-giriş özetidir (MediaTek varyantlarıyla birlikte okunur; aşağıdaki cross-reference'lara bakın). Aynı zafiyet çiftinin bug-by-bug heap-shaping ve code-execution adımlarını içeren standalone detailed walkthrough için bkz. Unburdened By What Has Been.
Mechanism¶
Note
Bir handset baseband'i, cellular protocol stack'ini, application processor (AP) ile izole edilmiş bir processor üzerinde çalıştırır. Burada kırılan güven sınırı Layer 2'de radio-to-baseband'dir: tarihsel olarak çalışılan attack surface üst katmanlardı (NAS/RRC), ama data-plane RLC alt katmanı da network kontrollü framing'i parse eder ve fragment'leri daha büyük PDU'lara re-assemble eder. Sahte bir cell, bu re-assembly mekanizmasını doğrudan sürebilir.
İşbirliği yapan iki bug, re-assemble edilmiş buffer'ın boyutunu belirlemek için kullanılan descriptor listesinin, ona gerçekten kopyalanan fragment listesine eşit olduğu invariant'ını kırar.
- CVE-2023-41111 bir out-of-bounds access bug'ıyla eşleştirilmiş bir logic bug'ıdır. Birlikte, Shannon RLC kodunun LLC data-frame fragment'lerini — bunlar orijinal LLC PDU'ya re-assemble edilip LLC alt katmanına yukarı verilmeden önce — izlemek için kullandığı descriptor array'ini taşırırlar. Etki, "hangi fragment'ler bu PDU'ya ait" defter tutmasının tutarsız hale getirilebilmesidir.
- CVE-2023-41112 heap overflow'un kendisidir: re-assembly rutini, copy döngüsünde klasik önce kopyala, çıkış koşulunu sonra kontrol et desenini kullanır. CVE-2023-41111 saldırganın, hedef PDU'yu allocate etmek için kullanılan fragment listesinin, ona kopyalanan fragment listesinden farklı olduğu bir durum yaratmasına izin verdiği için, döngü allocation'ın ötesine yazar — baseband runtime'ında kontrollü uzunlukta bir heap buffer overflow.
CVE-2023-41112, CVE-2023-41111 olmadan erişilebilir değildir: chain, size/copy uyumsuzluğunu kurmak için descriptor desenkronizasyonuna ihtiyaç duyar.
Walkthrough¶
Aşağıdaki, yalnızca herkese açık TASZK advisory'lerinden ve konferans materyalinden çıkarılmış, açıklayıcı ve kavramsal bir yoldur; silahlandırılmış uçtan uca bir chain'i kasıtlı olarak atlar.
Attack surface. Zafiyet Samsung'un RLC implementasyonunda yaşar (Shannon baseband, başlıca Exynos chipset'leri). RLC re-assembly, bir LLC data-frame fragment dizisi alır, yeniden inşa edilen LLC PDU için bir buffer allocate eder ve her fragment'i sırayla ona kopyalar. Fragment'ler ve uzunlukları nihayetinde network tarafından sağlanan framing'den türetilir.
Desenkronizasyon (CVE-2023-41111). Hazırlanmış bir fragment dizisi, logic + OOB-access çiftini tetikler; böylece descriptor array taşar / tutarsız hale gelir. Araştırmacıların ihtiyaç duyduğu sonuç, allocation boyutunu hesaplamak için başvurulan fragment listesinin, copy döngüsünün daha sonra yürüyeceği fragment listesinden farklı olduğu bir durumdur.
Overflow (CVE-2023-41112). Re-assembly sırasında copy döngüsü çalışır:
Conceptual shape of the copy-before-check re-assembly loop
/* Conceptual illustration of the vulnerable pattern described publicly. */
dst = alloc(total_len_from_descriptor_list_A); /* sized from list A */
off = 0;
for (frag in descriptor_list_B) { /* copied from list B */
memcpy(dst + off, frag.data, frag.len); /* copy FIRST ... */
off += frag.len;
if (off >= total_len) break; /* ... check AFTER */
}
off, exit check ateşlenmeden
önce total_len'i geçer ve heap allocation'ı saldırgan etkili fragment
verisiyle taşırır.
Impact. Açıklanan RLC overflow'larının en kritiği, baseband runtime'ında arbitrary code execution'a kadar exploit edilebilir. TASZK, bir Samsung Galaxy S21'e karşı CVE-2023-41111 ile CVE-2023-41112'yi zincirleyen bir proof-of-concept video yayımladı ve başarıyı, cihazın IMEI'sini ele geçirilmiş modemden yeniden yazarak gösterdi.
Warning
Bu frame'leri iletmek için bir cellular transmitter çalıştırmak, yetki olmadan ya da shielded bir RF chamber olmadan lisanslı spektrumda yasa dışıdır. Bu girdi patch'lenmiş konuları (Samsung security maintenance release'leri) özetler ve heap-grooming ayrıntılarını kavramsal tutar.
Bu baseband RCE, TASZK'ın daha geniş full-chain araştırmasının radyo tarafı giriş aşamasıdır; eşlik eden girdiler MediaTek varyantlarını kapsar: MediaTek baseband RCE and the MediaTek baseband-to-kernel pivot.
Detection¶
- Rogue cell'ler / sahte base station'lar ve anormal RLC fragmentation desenleri (LLC re-assembly'de olağandışı fragment sayıları veya uzunlukları) için network tarafı anomali tespiti.
- Cihaz üstü baseband telemetrisi: RLC re-assembly yolu içindeki modem crash'leri/reset'leri, denenen exploitation'ın bir göstergesidir.
- Fleet yönetimi: bu CVE'leri kapsayan Samsung security patch seviyesinin uygulandığını doğrula (Samsung Mobile Security maintenance release, 2023).
Mitigation¶
- Descriptor defter tutmasını ve copy-before-check sıralamasını düzelten CVE-2023-41111 ve CVE-2023-41112 için Samsung baseband fix'lerini uygula (2023 maintenance release'lerinde geldi).
- Baseband hardening: tek bir desenkronizasyonun bir overflow'a neden olamaması için bounds-checked re-assembly, check-before-copy döngüleri ve allocator integrity'si.
- Ele geçirilmiş bir modemin AP belleğine doğrudan ulaşamaması için güçlü AP/baseband isolation'ı sürdür (inter-processor shared memory üzerinde IOMMU).