Skip to content

LogoFAIL Phoenix image parser (CVE-2023-5058)

LogoFAIL'in Phoenix-firmware örneği (CVE-2023-5058): Phoenix SecureCore, kullanıcının sağladığı bir boot splash-screen image'ını işlerken improper input validation, boot sırasında firmware seviyesinde denial of service ya da arbitrary code execution'a izin verir.

Mechanism

Note

Phoenix SecureCore, diğer büyük UEFI kod tabanları gibi, boot'un erken aşamasında bir boot splash screen / logo render eder ve ayrıcalıklı DXE çağı firmware bağlamında çalışan bir image parser ile gelir. Kırılan trust boundary, LogoFAIL sınıfının geri kalanıyla aynıdır: logo image'ı, Secure Boot execution'ı yönetmeden önce ayrıcalıklı firmware tarafından parse edilen, saldırganın etkileyebileceği bir veri parçasıdır ve Secure Boot logo image'ını kapsamaz.

Başarısız olan değişmez, splash image'ının input validation'ıdır. Advisory'ye göre, CVE-2023-5058 bir Improper Input Validation in the processing of a user-supplied splash screen during system boot'tur. Crafted bir image, bir saldırganın parser'ı amaçlanan sınırlarının dışına sürmesine izin verir, "potentially [allowing] denial-of-service attacks or arbitrary code execution." Parser firmware'de çalıştığından, başarılı bir code execution OS'in altında bir dayanak noktasıdır.

Walkthrough

Genel Phoenix advisory'sinden ve Binarly araştırmasından kavramsal yeniden üretim; parser iç ayrıntıları örnekleme amaçlı tutulmuştur.

Splash image'ını yerleştirme. Daha geniş sınıfta olduğu gibi, boot splash image'ı platformun logo mekanizması üzerinden sağlanabilir (sisteme bağlı olarak firmware volume / logo store / ESP). Saldırgan hatalı biçimlendirilmiş bir image saklar.

Parser'ı tetikleme. Phoenix SecureCore, boot sırasında kullanıcının sağladığı splash screen'i parse eder. Hatalı biçimlendirilmiş image, eksik/yetersiz input validation'ı başarısız kılar:

Conceptual shape of the input-validation failure (CVE-2023-5058)

Advisory (Phoenix SecureCore Technology 4):
  "Improper Input Validation in the processing of user-supplied
   splash screen during system boot ... potentially allows
   denial-of-service attacks or arbitrary code execution."

Class behavior: malformed image header/payload field (dimensions,
compression/run-length descriptors, chunk lengths) is consumed without a
bound, driving an out-of-bounds write / overflow in the DXE-phase decoder.
Belirli savunmasız image format'ı ve kesin field açık advisory'de yayımlanmamıştır; genel materyal bug sınıfını (image işlemede improper input validation) ve etkiyi (DoS ya da ACE) verir.

Etki. Boot sırasında denial of service ya da firmware seviyesinde arbitrary code execution — Insyde BMP örneği ve AMI parser CVE'leri ile aynı kalıcı, OS-altı sonuç.

Warning

Patch'lenmiş sorun; implant zinciri kasıtlı olarak atlanmıştır. Açık advisory kesin parser/offset'i adlandırmadığı için, buradaki parser-içi ayrıntılar kavramsaldır.

Detection

  • Firmware integrity attestation: kurcalanmış bir splash image, ölçülen DXE durumunu değiştirir — TPM PCR'larını izle ve bir firmware-integrity tarayıcısı çalıştır.
  • Logo/splash store'a ya da korumasız firmware volume'larına yetkisiz yazmaları izle.

Mitigation

  • CVE-2023-5058 için Phoenix firmware güncellemesini (koordineli LogoFAIL açıklaması, Aralık 2023) ve onun üzerine kurulu OEM BIOS güncellemesini uygula.
  • SPI flash write protection'ı zorunlu kıl ve logoyu signature kapsamındaki bölge içinde tut (bkz. SPI flash BIOS write-protection misconfig).
  • Gerekmeyen yerlerde özel boot-logo özelliklerini devre dışı bırak; Secure Boot ve capsule signing'i doğrula.

References