
Ubuntu 22.04’ün baskı alt sisteminde, özellikle “IPPUSBXD” paketinde yakın zamanda keşfedilen bir güvenlik açığı, saldırganların kilitli dizüstü bilgisayarlarda keyfi kod yürütmesine izin verebilirdi.
Bununla birlikte, modern derleyici özellikleri, riski azaltmak için devreye girerek bir sistem çökmesinin ötesinde sömürü önler.
Güvenlik açığı, açık kaynaklı fincan paketi ile ortak bir temeli paylaşan MacOS Printing Alt Sisteminin bir kod denetimi sırasında tanımlanmıştır.
Talos araştırmacıları, USB aracılığıyla bağlı yazıcılar için İnternet Baskı Protokolü (IPP) aracılığıyla ağ yazdırmasını sağlayan IPP-USB protokolüne dikkat çekti. Ubuntu 22.04’teki IPP-USB işlevselliğini ele almaktan sorumlu “IPPUSBXD” paketi soruşturmanın odak noktası oldu.
Kodu inceledikten sonra, “-WStringop-Overflow” bayrağı tarafından tetiklenen bir derleyici uyarısı get_format_paper
işlev.
Bu işlev, başlatma sırasında yazıcı tarafından bildirilen kağıt boyut bilgilerini ayrıştırır. Güvenlik açığı kullanımından kaynaklandı strncpy
hedef arabellek boyutundan ziyade kaynak işlenen uzunluğundan türetilen bir uzunluk argümanı ile.
Ubuntu baskı güvenlik açığı
Bir saldırgan, aşırı büyük medya boyutlarını bildiren ve bir tampon taşmasına yol açan kötü niyetli bir yazıcıyı bağlayarak bunu kullanabilir.
Talos Intelligence’dan Aleksandar Nikolich, kod bağlamını analiz ederek güvenlik açığını doğruladı ve özel olarak hazırlanmış bir “medya boyutu destekli” yükün yığın arabelleğinin üzerine yazabileceğini ortaya koydu.
Kilitli bir dizüstü bilgisayardaki bu güvenlik açığından yararlanmak, saldırganlara yüksek ayrıcalıklarla keyfi kod yürütme verebilir.
Bir USB yazıcısını taklit eden bir Raspberry Pi Zero kullanarak güvenlik açığının potansiyelini göstermek için bir kavram kanıtı (POC) istismar geliştirilmiştir.
Linux USB Gadget API, özel bir yazılım tanımlı USB cihazının oluşturulmasını kolaylaştırdı. Pappl yazıcı gadget’ını değiştirerek, taklit yazıcı, “Exploit_string” adlı bir ortam değişkeni kullanılarak kötü niyetli ortam boyutlarını rapor edecek şekilde yapılandırılmıştır.
Raspberry Pi Zero’yu Hedef Ubuntu makinesine bağladıktan sonra, ippusbxd
Daemon, güvenlik açığının tetikleyicisini teyit ederek bir segmentasyon hatasıyla çarptı.
Bununla birlikte, kazanın daha derin bir analizi, amaçlanan bellek yolsuzluğunun ve potansiyel kod yürütülmesinin “Forify_Source” adlı bir derleyici özelliği tarafından önlendiğini ortaya koydu.
Bu özellik, potansiyel olarak güvensiz işlevleri otomatik olarak daha güvenli alternatiflerle değiştirerek, tampon taşma koşulunu ortaya çıkmadan önce algılar. Güvenlik açığının etkisi, taşıma tespiti üzerine programın açık feshi nedeniyle bir sistem çökmesine neden olmakla sınırlıdır.
Araştırmacılar, bu olayın statik analiz ve “Forify_Source” gibi güçlü hafifletme teknikleri gibi modern derleyici özelliklerinin önemini vurguladığını vurgulamaktadır.
Varsayılan olarak etkinleştirildiğinde, bu özellikler güvenlik açıklarının kullanılmasını etkili bir şekilde önleyebilir. Ayrıca, olay, kalkınma sırasında derleyici uyarılarını aktif olarak ele almanın değerinin altını çizmektedir.
Bu özel durumda, güvenlik açığının potansiyel etkisi, “IPPUSBXD” paketinin “IPP-USB” paketinin yerini almasıyla daha da azalmıştır.
Yeni paket, arabellek taşma riskini ortadan kaldırarak bellek güvenli bir dilde uygulanır. Ubuntu 22.04, uzun vadeli bir destek sürümü olarak bir istisna olmaya devam ederken, daha yeni sürümler “IPP-USB” kullanmaya geçti.
Kullanıcılar için öneriler
- Ubuntu 22.04 LTS Kullanıcıları: Emin olmak
ipp-usb
kuruldu ve kaldırıldıippusbxd
varsa. - Tüm Sistemler: Güncellemeleri aracılığıyla uygulayın
sudo apt update && sudo apt upgrade
ve baskı hizmetlerini yeniden başlatın. - Fiziksel güvenlik: Yetkisiz donanım bağlantılarını önlemek için USB cihaz erişimini kısıtlayın.