Menyerang sistem UNIX: serangan melalui CUPS, Bagian I
Ringkasan
- CVE-2024-47176:
cups-browsed <= 2.0.1 melakukan binding pada UDP INADDR_ANY:631, sehingga dapat memicu permintaan IPP Get-Printer-Attributes ke URL yang dikendalikan penyerang
- CVE-2024-47076:
cfGetPrinterAttributes5 di libcupsfilters <= 2.1b1 tidak memvalidasi atau membersihkan atribut IPP yang dikembalikan oleh server IPP, sehingga data yang dikendalikan penyerang dapat diberikan ke sistem CUPS
- CVE-2024-47175:
ppdCreatePPDFromIPP2 di libppd <= 2.1b1 tidak memvalidasi atau membersihkan atribut IPP saat menulisnya ke file PPD sementara, sehingga data yang dikendalikan penyerang dapat disisipkan
- CVE-2024-47177:
foomatic-rip di cups-filters <= 2.0.1 memungkinkan eksekusi perintah arbitrer melalui parameter PPD FoomaticRIPCommandLine
Dampak
- Penyerang jarak jauh tanpa autentikasi dapat mengganti URL IPP printer yang sudah ada dengan URL berbahaya atau memasang printer baru, lalu mengeksekusi perintah arbitrer saat pekerjaan cetak dimulai
Titik masuk
- WAN / internet publik: penyerang jarak jauh mengirim paket UDP ke port 631. Tidak memerlukan autentikasi
- LAN: penyerang lokal dapat memalsukan iklan zeroconf / mDNS / DNS-SD untuk mencapai RCE melalui jalur kode yang sama
Sistem yang terdampak
- Sebagian besar distribusi GNU/Linux
- Beberapa BSD
- Google Chromium / ChromeOS (kemungkinan)
- Oracle Solaris
- Lainnya
Solusi
- Menonaktifkan dan menghapus layanan
cups-browsed
- Memperbarui paket CUPS di sistem
- Jika sistem tidak dapat diperbarui, memblokir port UDP 631 dan seluruh lalu lintas DNS-SD
Pengantar
- Beberapa minggu lalu, saat menyiapkan Ubuntu di laptop baru, perintah
netstat -anu dijalankan untuk memeriksa layanan yang mendengarkan port UDP
- Ditemukan bahwa
cups-browsed mendengarkan dan merespons menggunakan UDP pada port 631 di semua antarmuka jaringan
cups-browsed berfungsi untuk otomatis menambahkan printer baru ke sistem
Apa itu cups-browsed?
cups-browsed adalah bagian dari sistem CUPS yang menemukan printer baru dan otomatis menambahkannya ke sistem
- File konfigurasi default diberi komentar, dan mengizinkan siapa pun untuk terhubung
Stack buffer overflow dan race condition
cups-browsed tidak termasuk dalam cakupan oss-fuzz
- Stack buffer overflow dan race condition dapat terjadi di fungsi
process_browse_data
- Masalah-masalah ini telah dilaporkan ke pengembang dan CERT, tetapi belum ditambal
Kembali ke found_cups_printer
- Fungsi
found_cups_printer mengekstrak URL dari paket dan meneruskannya ke fungsi cfGetPrinterAttributes
- URL ini terhubung ke server yang dikendalikan penyerang
Internet Printing Protocol (IPP)
- IPP adalah protokol untuk komunikasi antara perangkat klien dan printer
- Dengan mengembalikan atribut printer yang dikendalikan penyerang, printer dapat ditambahkan ke sistem
Ringkasan GN⁺
- Artikel ini menjelaskan cara mencapai eksekusi kode jarak jauh dengan mengeksploitasi kerentanan dalam sistem CUPS
- Ada berbagai kerentanan terkait CUPS yang memungkinkan penyerang mengendalikan sistem
- Kerentanan ini belum ditambal, dan pengguna harus menonaktifkan layanan CUPS atau memperbaruinya
- Proyek lain dengan fungsi serupa mencakup
LPRng dan versi terbaru CUPS
Belum ada komentar.