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.