Một số lỗ hổng bảo mật đã được phát hiện trong GNU Screen cho phép chiếm được quyền root.

dễ bị tổn thương

Một vài ngày trước, nó đã được công bố thông tin về kiểm toán bảo mật đã tiết lộ năm lỗ hổng nghiêm trọng trong bộ ghép kênh đầu cuối phổ biến Màn hình GNU, được sử dụng để quản lý nhiều phiên điều khiển trên một thiết bị đầu cuối.

Một trong số đó (CVE-2025-23395, lỗ hổng nguy hiểm nhất) cho phép kẻ tấn công giành được quyền root trên các hệ thống bị ảnh hưởng (lỗ hổng bảo mật chỉ ảnh hưởng đến phiên bản 5.0.0 của GNU Screen), bao gồm các bản phân phối như Fedora, Arch Linux, NetBSD, v.v. Tuy nhiên, các phiên bản khác như Debian, Ubuntu và RHEL vẫn sử dụng nhánh 4.x, không dễ bị lỗ hổng này.

CVE-2025-23395: Tăng đặc quyền quan trọng

Người ta đề cập rằng vấn đề xảy ra khi GNU Screen được chạy với bit gốc setuid (trường hợp của Arch và NetBSD), vìvà hàm logfile_reopen() được thực thi trước khi hạ thấp đặc quyền, cho phép người dùng thao tác với sổ đăng ký để ghi các tập tin tùy ý dưới dạng root. Trong một trang trại điển hình, vàKẻ tấn công xóa tệp nhật ký gốc và thay thế bằng liên kết tượng trưng. vào một tập tin hệ thống. Khi bạn mở lại tệp, Screen sẽ ghi tệp đó bằng quyền root, cho phép nội dung độc hại xâm nhập vào.

Sự cố này ảnh hưởng đến Màn hình 5.0.0 khi chạy với quyền setuid-root. Hàm logfile_reopen() không xóa quyền khi hoạt động trên đường dẫn do người dùng cung cấp. Điều này cho phép người dùng không có đặc quyền tạo tệp ở các vị trí tùy ý với quyền sở hữu gốc, quyền sở hữu nhóm (thực) của người dùng đang gọi và chế độ tệp 0644. Tất cả dữ liệu được ghi vào Screen PTY sẽ được ghi vào tệp này. Các tập tin hiện có cũng có thể được sử dụng để đăng ký theo cách này: dữ liệu sẽ được thêm vào tập tin đó, nhưng chế độ tập tin và quyền sở hữu sẽ không thay đổi.

Cuộc tấn công này có thể dẫn đến việc kiểm soát toàn bộ hệ thống nếu được khai thác đúng cách, vì nó cho phép bạn sửa đổi các tập tin nhạy cảm hoặc thay đổi các tập lệnh khởi động. Fedora được bảo vệ một phần vì Screen được cài đặt với bit setgid, hạn chế bề mặt tấn công.

Các lỗ hổng liên quan khác

Cuộc kiểm toán được thực hiện bởi nhóm bảo mật SUSE Linux, cũng xác định những lỗi quan trọng khác:

  • CVE-2025-46802: Trong các phiên nhiều người dùng, kẻ tấn công có thể giành được quyền đọc và ghi toàn cục trên các thiết bị TTY như /dev/pts/1, ảnh hưởng đến cả nhánh 4.x và 5.x.
  • CVE-2025-46803: Nhánh 5.0 thiết lập các quyền không an toàn (0622) trên các thiết bị PTY, cho phép bất kỳ người dùng nào ghi.
  • CVE-2025-46804: Rò rỉ thông tin cho phép suy ra sự tồn tại của tệp hoặc thư mục bằng cách sử dụng thông báo lỗi khi xác định biến SCREENDIR.
  • CVE-2025-46805: Tình trạng chạy đua khi gửi tín hiệu SIGCONT và SIGHUP có thể dẫn đến từ chối dịch vụ.

Người ta cũng phát hiện việc sử dụng sai strncpy, có thể gây ra sự cố khi thực hiện các lệnh có định dạng đặc biệt, một sự cố chỉ có ở nhánh 5.0.

Thiếu bảo trì và hỗ trợ từ SUSE

Việc phát hiện ra những lỗ hổng này đã làm lộ ra những vấn đề sâu sắc hơn trong việc bảo trì GNU Screen. Theo nhóm SUSE, Những người duy trì dự án hiện tại không hiểu đầy đủ về cơ sở mã hoặc các vấn đề bảo mật, buộc họ phải tự phát triển bản vá cho một số lỗ hổng được phát hiện. Báo cáo đã được gửi tới các nhà phát triển vào ngày 7 tháng 90, nhưng toàn bộ lỗ hổng bảo mật không thể được khắc phục trong thời gian gia hạn XNUMX ngày đã thỏa thuận.

Phải làm gì nếu bạn sử dụng GNU Screen?

Người dùng hệ thống bao gồm Screen 5.0.0 với setuid root nên cập nhật ngay lên phiên bản 5.0.1 hoặc tạm thời quay lại phiên bản 4.x nếu không có gói nào khả dụng. Để giảm thiểu rủi ro, bit setuid cũng có thể được xóa khỏi tệp thực thi Screen:

sudo chmod u-s /usr/bin/screen

Tuy nhiên, Điều này có thể ảnh hưởng đến chức năng chẳng hạn như chia sẻ phiên giữa người dùng. Cuối cùng, cần đề cập rằng phiên bản 5.0.1 mới phát hành gần đây đã khắc phục lỗi này và nhiều lỗi khác và hiện có sẵn trên các bản phân phối như Arch Linux và FreeBSD.

Nếu bạn là muốn biết thêm về nó, bạn có thể kiểm tra các chi tiết trong liên kết theo dõi.