Vài ngày trước Thông tin về một lỗ hổng bảo mật nghiêm trọng mới đã được công bố. ảnh hưởng đến môi trường Linux được gọi là "Pack2TheRoot". Được liệt kê trong danh mục CVE-2026-41651Lỗi này ảnh hưởng đến PackageKit (một công cụ hoạt động như một lớp trừu tượng D-Bus để thống nhất việc quản lý gói trên nhiều bản phân phối khác nhau).
Có đề cập đến phán quyết Nó cho phép bất kỳ người dùng cục bộ nào không có quyền quản trị đều có thể cài đặt hoặc gỡ bỏ các gói phần mềm một cách tùy ý. Bằng cách khai thác lỗ hổng này, kẻ tấn công có thể giành được quyền truy cập root hoàn toàn vào hệ thống bị xâm nhập. Tác động của nó rất đáng kể, vì vấn đề này đã tồn tại từ phiên bản 1.0.2, được phát hành hơn mười hai năm trước (năm 2014), và ảnh hưởng đến cấu hình mặc định của các bản phân phối phổ biến như Ubuntu, Debian, Rocky Linux và Fedora.
Pack2TheRoot: Lỗ hổng PackageKit cấp quyền quản trị trên Linux
El Việc phát hiện ra Pack2TheRoot là kết quả của một cuộc điều tra. dẫn đầu bởi Đội Đỏ của Deutsche Telekom, Họ đã sử dụng mô hình trí tuệ nhân tạo Claude Opus. để hướng dẫn việc phân tích các vectơ leo thang đặc quyền tại địa phương.
LoBan đầu, các nhà nghiên cứu nhận thấy rằng lệnh pkcon install có thể được thực thi mà không cần mật khẩu.Trong một số cấu hình Fedora nhất định, điều này làm dấy lên nghi ngờ về cơ chế xác thực bên dưới. Sau khi xác nhận và báo cáo lỗ hổng một cách có trách nhiệm cho những người duy trì PackageKit, Một phương thức khai thác lỗ hổng đã được phát triển. Mặc dù việc công bố chi tiết đã được trì hoãn một cách chiến lược để cho phép người dùng và quản trị viên áp dụng các bản cập nhật cần thiết.
Cơ chế của cuộc tấn công
Gốc rễ của Điểm yếu nằm ở tình trạng nghề nghiệp. (Loại TOCTOU: Từ lúc kiểm tra đến lúc sử dụng) trong quản lý giao dịch quy trình nền (daemon) của PackageKitPackageKit, hoạt động với quyền người dùng root, ủy quyền cho hệ thống polkit. Khi một máy khách yêu cầu cài đặt một gói, ví dụ như sử dụng phương thức InstallFiles, nó sẽ truyền một tập hợp các cờ quy định hành vi của giao dịch.
Các cờ cụ thể, chẳng hạn như SIMULATE hoặc ONLY_DOWNLOAD, hướng dẫn PackageKit bỏ qua quá trình xác thực polkit. vì chúng đại diện cho các thao tác an toàn mà về lý thuyết không làm thay đổi trạng thái của hệ thống. Lỗi xảy ra do trình xử lý giao dịch ghi đè lên dữ liệu. Các chỉ báo này được lưu vào bộ nhớ đệm một cách vô điều kiện với mỗi lần gọi mới, mà không cần xác minh xem giao dịch đã được ủy quyền hay đang trong quá trình thực thi hay chưa.

Un Kẻ tấn công có thể khởi tạo giao dịch bằng cách sử dụng các chỉ báo "an toàn". (như vậy sẽ tránh được sự ủy quyền của Polkit) và, vài mili giây sau, gửi yêu cầu D-Bus thứ hai. Đối với cùng một giao dịch, nhưng lần này với các cờ độc hại yêu cầu cài đặt thực tế. Do kiến trúc ưu tiên vòng lặp sự kiện của GLib (trong đó các thông báo D-Bus được xử lý trước các lệnh gọi lại rảnh rỗi), yêu cầu thứ hai ghi đè lên các tham số ngay trước khi bộ lập lịch bắt đầu hoạt động.
Do đó, giao dịch đã được phê duyệt trước đó là "an toàn" sẽ được thực hiện với các tham số đã được thay thế., cài đặt gói phần mềm với quyền quản trị viên.
Giải pháp và biện pháp giảm thiểu
Cabe señalar que la Lỗ hổng này đã được vá trong PackageKit phiên bản 1.3.5.Do đó, các nhà phát triển khuyến cáo các quản trị viên hệ thống nên kiểm tra xem hệ thống của họ có dễ bị tấn công hay không bằng cách kiểm tra trạng thái dịch vụ bằng các lệnh như systemctl status packagekit hoặc bằng cách giám sát hoạt động bằng pkmon.
các Các bản phân phối lớn, bao gồm Debian, Ubuntu và Fedora, đã bắt đầu phân phối các gói phần mềm. Các bản cập nhật được phát hành thông qua các kênh chính thức của họ. Đối với các hệ thống mà bản vá lỗi không có sẵn ngay lập tức, các nhà nghiên cứu đã đề xuất một giải pháp thay thế: triển khai một quy tắc polkit tùy chỉnh.
Điều này Quy tắc này ngay lập tức và âm thầm từ chối các hành động cài đặt PackageKit. Đối với bất kỳ người dùng nào khác ngoài người dùng root, điều này ngăn cửa sổ lỗi tranh chấp (race condition) mở ra. Điều quan trọng cần lưu ý là, mặc dù cuộc tấn công diễn ra nhanh chóng và âm thầm, nó vẫn để lại dấu vết rõ ràng trong nhật ký hệ thống: sau khi tấn công thành công, tiến trình PackageKit bị sập do lỗi xác nhận (assertion failed: (!transaction->priv->emitted_finished)). Mặc dù systemd khởi động lại dịch vụ, ngăn chặn cuộc tấn công từ chối dịch vụ (DoS), sự xuất hiện của thông báo này trong journalctl là một dấu hiệu mạnh mẽ cho thấy hệ thống đã bị xâm phạm.
Cuối cùng, nếu bạn muốn tìm hiểu thêm về vấn đề này, bạn có thể tham khảo... chi tiết trong liên kết sau.