Lỗ hổng nghiêm trọng trong hệ thống in CUPS trên Linux có thể cho phép thực thi lệnh từ xa
Một loạt các lỗ hổng bảo mật mới đã được công bố trong hệ thống in ấn OpenPrinting Common Unix Printing System (CUPS) trên các hệ thống Linux, có thể cho phép thực thi lệnh từ xa trong một số điều kiện nhất định. Theo nhà nghiên cứu bảo mật Simone Margaritelli, một kẻ tấn công từ xa không xác thực có thể âm thầm thay thế các URL IPP của máy in hiện có (hoặc cài đặt máy in mới) bằng một URL độc hại, dẫn đến việc thực thi lệnh tùy ý khi một công việc in được bắt đầu từ máy tính đó.
CUPS là một hệ thống in ấn mã nguồn mở dựa trên tiêu chuẩn cho Linux và các hệ điều hành giống Unix khác, bao gồm ArchLinux, Debian, Fedora, Red Hat Enterprise Linux (RHEL), ChromeOS, FreeBSD, NetBSD, OpenBSD, openSUSE và SUSE Linux. Các lỗ hổng được liệt kê bao gồm:
- CVE-2024-47076: Lỗ hổng trong thư viện
libcupsfilters
, nơi các gói IPP không được xác thực hoặc làm sạch đúng cách. Điều này cho phép kẻ tấn công gửi dữ liệu độc hại đến hệ thống CUPS.
- CVE-2024-47175: Lỗ hổng trong thư viện
libppd
, liên quan đến việc xác thực đầu vào không đúng cách. Dữ liệu IPP không được xác thực hoặc làm sạch trước khi được ghi vào tệp PPD tạm thời, cho phép chèn dữ liệu độc hại vào tệp PPD.
- CVE-2024-47176: Lỗ hổng trong
cups-browsed
, cho phép bất kỳ gói nào từ bất kỳ nguồn nào được tin cậy trên cổng IPP (mặc định là 631). Điều này có thể dẫn đến việc gửi yêu cầuGet-Printer-
A
ttributes IPP
đến một URL do kẻ tấn công kiểm soát.
- CVE-2024-47177: Lỗ hổng trong
cups-filters
, cho phép thực thi lệnh tùy ý thông qua tham sốFoomaticRIPCommandLine
trong tệp PPD. Đây là lỗ hổng nghiêm trọng nhất trong nhóm này với điểm CVSS 9.9.
Hậu quả của những thiếu sót này là chúng có thể được tạo thành một chuỗi khai thác cho phép kẻ tấn công tạo ra một thiết bị in giả mạo độc hại trên một hệ thống Linux tiếp xúc với mạng chạy CUPS và kích hoạt thực thi mã từ xa khi gửi một công việc in.
Nguyên nhân và tác động của lỗ hổng
Vấn đề phát sinh do xử lý không đúng cách các thông báo "Máy in mới có sẵn" trong thành phần 'cups-browsed', kết hợp với việc xác thực kém của 'cups' đối với thông tin do một nguồn in độc hại cung cấp. Lỗ hổng này xuất phát từ việc xác thực không đầy đủ dữ liệu mạng, cho phép kẻ tấn công khiến hệ thống dễ bị tấn công cài đặt một trình điều khiển máy in độc hại, sau đó gửi một công việc in đến trình điều khiển đó để kích hoạt thực thi mã độc hại. Mã độc hại được thực thi với quyền của người dùng lp – không phải người dùng siêu cấp 'root'.
RHEL, trong một thông báo, cho biết tất cả các phiên bản của hệ điều hành đều bị ảnh hưởng bởi bốn lỗ hổng này, nhưng lưu ý rằng chúng không dễ bị tấn công trong cấu hình mặc định. Các vấn đề này được đánh giá là quan trọng về mức độ nghiêm trọng, vì tác động thực tế có thể thấp. Bằng cách kết hợp nhóm các lỗ hổng này lại với nhau, một kẻ tấn công có thể đạt được thực thi mã từ xa, từ đó có thể dẫn đến việc đánh cắp dữ liệu nhạy cảm và/hoặc gây hại cho các hệ thống sản xuất quan trọng.
Các phiên bản bị ảnh hưởng
Các lỗ hổng bảo mật trong hệ thống in ấn OpenPrinting Common Unix Printing System (CUPS) ảnh hưởng đến nhiều phiên bản của các hệ điều hành Linux hiện đại. Dưới đây là thông tin chi tiết về các phiên bản bị ảnh hưởng:
- Red Hat Enterprise Linux (RHEL): Tất cả các phiên bản của RHEL đều bị ảnh hưởng bởi các lỗ hổng CVE-2024-47076, CVE-2024-47175, CVE-2024-47176 và CVE-2024-47177. Tuy nhiên, các phiên bản này không dễ bị tấn công trong cấu hình mặc định.
- Các hệ điều hành Linux khác: Các lỗ hổng này cũng ảnh hưởng đến nhiều hệ điều hành Linux khác như ArchLinux, Debian, Fedora, ChromeOS, FreeBSD, NetBSD, OpenBSD, openSUSE và SUSE Linux.
- CUPS và các thành phần liên quan: Các phiên bản của các gói phần mềm liên quan đến CUPS như
cups-browsed
,libcupsfilters
,cups-filters
, vàlibppd
đều bị ảnh hưởng. Cụ thể, các phiên bảncups-browsed <= 2.0.1
,libcupsfilters <= 2.1b
1
,cups-filters <= 2.0.1
, vàlibppd <= 2.1b1
đều có lỗ hổng.
Biện pháp giảm thiểu và khuyến nghị
Các bản vá cho các lỗ hổng này đang được phát triển và dự kiến sẽ được phát hành trong vài ngày tới. Cho đến lúc đó, nên vô hiệu hóa và loại bỏ dịch vụ cups-browsed nếu không cần thiết, và chặn hoặc hạn chế lưu lượng truy cập đến cổng UDP 631. Các nhà nghiên cứu từ Upwind cũng khuyến nghị các bước sau để giảm thiểu rủi ro liên quan:
- Dừng và vô hiệu hóa dịch vụ CUPS:
sudo systemctl stop cups
sudo systemctl disable cups
- Dừng và vô hiệu hóa dịch vụ cups-browsed:
sudo systemctl stop cups-browsed
sudo systemctl disable cups-browsed
Gỡ bỏ các gói CUPS:
- Đối với hệ thống dựa trên Debian/Ubuntu:
sudo apt-get purge --auto-remove cups cups-browsed
- Đối với hệ thống dựa trên RHEL/CentOS/Fedora:
sudo yum remove cups cups-browsed
- Đối với hệ thống dựa trên Arch:
sudo pacman -Rns cups cups-browsed
Chặn lưu lượng truy cập đến cổng UDP 631 và DNS-SD:
- Sử dụng
iptables
:
- Sử dụng
sudo iptables -A INPUT -p udp --dport 631 -j DROP
sudo iptables -A INPUT -p udp --dport 5353 -j DROP
- Sử dụng
ufw
:
sudo ufw deny 631/udp
sudo ufw deny 5353/udp
Bằng cách thực hiện các bước này, bạn sẽ loại bỏ hoàn toàn CUPS và các thành phần liên quan khỏi hệ thống của mình, đảm bảo bảo vệ khỏi lỗ hổng. Đừng quên cập nhật hệ thống của bạn thường xuyên và giám sát bất kỳ dịch vụ nào có thể gây ra rủi ro bảo mật.