1 poin oleh GN⁺ 2024-09-27 | Belum ada komentar. | Bagikan ke WhatsApp

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.

Belum ada komentar.