1 điểm bởi GN⁺ 2024-09-27 | Chưa có bình luận nào. | Chia sẻ qua WhatsApp

Tấn công hệ thống UNIX: tấn công qua CUPS, Phần I

Tóm tắt

  • CVE-2024-47176: cups-browsed <= 2.0.1 bind trên UDP INADDR_ANY:631, cho phép kích hoạt yêu cầu IPP Get-Printer-Attributes tới URL do kẻ tấn công kiểm soát
  • CVE-2024-47076: cfGetPrinterAttributes5 của libcupsfilters <= 2.1b1 không kiểm tra hoặc làm sạch các thuộc tính IPP được trả về từ máy chủ IPP, nên có thể đưa dữ liệu do kẻ tấn công kiểm soát vào hệ thống CUPS
  • CVE-2024-47175: ppdCreatePPDFromIPP2 của libppd <= 2.1b1 không kiểm tra hoặc làm sạch khi ghi các thuộc tính IPP vào tệp PPD tạm thời, nên có thể chèn dữ liệu do kẻ tấn công kiểm soát
  • CVE-2024-47177: foomatic-rip của cups-filters <= 2.0.1 cho phép thực thi lệnh tùy ý thông qua tham số PPD FoomaticRIPCommandLine

Ảnh hưởng

  • Kẻ tấn công từ xa không cần xác thực có thể thay thế URL IPP của máy in hiện có bằng URL độc hại hoặc cài đặt máy in mới, và thực thi lệnh tùy ý khi bắt đầu tác vụ in

Điểm xâm nhập

  • WAN / Internet công cộng: Kẻ tấn công từ xa gửi gói UDP tới cổng 631. Không cần xác thực
  • LAN: Kẻ tấn công cục bộ có thể giả mạo quảng bá zeroconf / mDNS / DNS-SD để đạt RCE thông qua cùng đường đi mã

Hệ thống bị ảnh hưởng

  • Phần lớn các bản phân phối GNU/Linux
  • Một số BSD
  • Google Chromium / ChromeOS (có khả năng)
  • Oracle Solaris
  • Khác

Cách khắc phục

  • Vô hiệu hóa và gỡ dịch vụ cups-browsed
  • Cập nhật các gói CUPS trên hệ thống
  • Nếu không thể cập nhật hệ thống, chặn cổng UDP 631 và toàn bộ lưu lượng DNS-SD

Giới thiệu

  • Vài tuần trước, trong lúc thiết lập Ubuntu trên một laptop mới, tác giả đã chạy lệnh netstat -anu để kiểm tra các dịch vụ đang lắng nghe cổng UDP
  • Phát hiện cups-browsed đang dùng UDP để lắng nghe và phản hồi trên mọi giao diện mạng ở cổng 631
  • cups-browsed có vai trò tự động thêm máy in mới vào hệ thống

cups-browsed là gì?

  • cups-browsed là một phần của hệ thống CUPS, có nhiệm vụ phát hiện máy in mới và tự động thêm chúng vào hệ thống
  • Tệp cấu hình mặc định được comment out và cho phép bất kỳ ai kết nối

Tràn bộ đệm ngăn xếp và race condition

  • cups-browsed không nằm trong phạm vi coverage của oss-fuzz
  • Hàm process_browse_data có thể phát sinh tràn bộ đệm ngăn xếp và race condition
  • Các vấn đề này đã được báo cho nhà phát triển và CERT, nhưng vẫn chưa được vá

Quay lại found_cups_printer

  • Hàm found_cups_printer trích xuất URL từ gói tin và truyền nó vào hàm cfGetPrinterAttributes
  • URL này sẽ kết nối tới máy chủ do kẻ tấn công kiểm soát

Giao thức Internet Printing Protocol (IPP)

  • IPP là giao thức dùng cho giao tiếp giữa thiết bị khách và máy in
  • Kẻ tấn công có thể trả về các thuộc tính máy in do mình kiểm soát để thêm máy in vào hệ thống

Tóm tắt của GN⁺

  • Bài viết này mô tả cách khai thác lỗ hổng trong hệ thống CUPS để đạt thực thi mã từ xa
  • Có nhiều lỗ hổng liên quan đến CUPS, qua đó kẻ tấn công có thể kiểm soát hệ thống
  • Các lỗ hổng này vẫn chưa được vá, và người dùng nên vô hiệu hóa dịch vụ CUPS hoặc cập nhật hệ thống
  • Những dự án khác có chức năng tương tự gồm LPRng và phiên bản mới nhất của CUPS

Chưa có bình luận nào.

Chưa có bình luận nào.