1 puan yazan GN⁺ 2024-09-27 | Henüz yorum yok. | WhatsApp'ta paylaş

UNIX sistemlerine saldırı: CUPS üzerinden saldırı, Bölüm I

Özet

  • CVE-2024-47176: cups-browsed <= 2.0.1, UDP INADDR_ANY:631 üzerinde bağlanır ve saldırganın kontrol ettiği bir URL'ye Get-Printer-Attributes IPP isteğini tetikleyebilir
  • CVE-2024-47076: libcupsfilters <= 2.1b1 içindeki cfGetPrinterAttributes5, IPP sunucusundan dönen IPP özniteliklerini doğrulamaz veya temizlemez; bu da saldırganın kontrol ettiği verilerin CUPS sistemine sağlanmasına yol açabilir
  • CVE-2024-47175: libppd <= 2.1b1 içindeki ppdCreatePPDFromIPP2, geçici PPD dosyasına IPP özniteliklerini yazarken doğrulama veya temizleme yapmaz; bu da saldırganın kontrol ettiği verilerin enjekte edilmesine neden olabilir
  • CVE-2024-47177: cups-filters <= 2.0.1 içindeki foomatic-rip, FoomaticRIPCommandLine PPD parametresi üzerinden keyfi komut yürütülmesine izin verir

Etki

  • Uzakta bulunan ve kimlik doğrulaması gerektirmeyen bir saldırgan, mevcut bir yazıcının IPP URL'sini kötü amaçlı bir URL ile değiştirebilir veya yeni bir yazıcı kurabilir; ardından bir yazdırma işi başlatıldığında keyfi komutlar çalıştırabilir

Giriş noktası

  • WAN / genel internet: Uzak saldırgan, 631 numaralı porta UDP paketi gönderir. Kimlik doğrulaması gerekmez
  • LAN: Yerel saldırgan, zeroconf / mDNS / DNS-SD duyurularını sahteleyerek aynı kod yolu üzerinden RCE elde edebilir

Etkilenen sistemler

  • Çoğu GNU/Linux dağıtımı
  • Bazı BSD sistemleri
  • Google Chromium / ChromeOS (muhtemel)
  • Oracle Solaris
  • Diğerleri

Çözüm

  • cups-browsed hizmetini devre dışı bırakın ve kaldırın
  • Sistemdeki CUPS paketlerini güncelleyin
  • Sistemi güncellemek mümkün değilse UDP 631 portunu ve tüm DNS-SD trafiğini engelleyin

Giriş

  • Birkaç hafta önce, yeni bir dizüstü bilgisayarda Ubuntu kurarken UDP portlarını dinleyen hizmetleri kontrol etmek için netstat -anu komutunu çalıştırdım
  • cups-browsed'ın 631 numaralı portta UDP kullanarak tüm ağ arayüzlerinde dinlediğini ve yanıt verdiğini fark ettim
  • cups-browsed, yeni yazıcıları otomatik olarak sisteme eklemekten sorumludur

cups-browsed nedir?

  • cups-browsed, CUPS sisteminin bir parçasıdır; yeni yazıcıları keşfeder ve bunları otomatik olarak sisteme ekler
  • Varsayılan yapılandırma dosyası yorum satırı halindedir ve herkesin bağlanmasına izin verecek şekilde ayarlanmıştır

Yığın tampon taşması ve yarış durumu

  • cups-browsed, oss-fuzz kapsamına dahil değildir
  • process_browse_data işlevinde yığın tampon taşması ve yarış durumu oluşabilir
  • Bu sorunlar geliştiriciye ve CERT'e bildirilmiş olsa da henüz yamalanmamıştır

found_cups_printer işlevine geri dönüş

  • found_cups_printer işlevi, paketten URL'yi çıkarır ve bunu cfGetPrinterAttributes işlevine iletir
  • Bu URL, saldırganın kontrol ettiği bir sunucuya bağlanır

Internet Printing Protocol (IPP)

  • IPP, istemci cihazlarla yazıcılar arasındaki iletişim için kullanılan bir protokoldür
  • Saldırgan, kontrol ettiği yazıcı özniteliklerini döndürerek sisteme bir yazıcı eklenmesini sağlayabilir

GN⁺ özeti

  • Bu yazı, CUPS sistemindeki açıklar istismar edilerek nasıl uzaktan kod yürütme elde edilebileceğini açıklıyor
  • CUPS ile ilgili çeşitli açıklar bulunuyor ve bunlar üzerinden saldırgan sistem üzerinde denetim kurabiliyor
  • Bu açıklar henüz yamalanmış değil; kullanıcıların CUPS hizmetini devre dışı bırakması veya güncellemesi gerekiyor
  • Benzer işlevlere sahip diğer projeler arasında LPRng ve CUPS'un güncel sürümleri yer alıyor

Henüz yorum yok.

Henüz yorum yok.