Helper đặc quyền của KDE plasma-login-manager có thể cho phép nâng quyền từ plasmalogin lên root

Lưu ý: Dữ liệu này chỉ có tính chất tham khảo, phục vụ nghiên cứu an ninh mạng.CyStack khuyến nghị người dùng không sử dụng các thông tin này nhằm các mục đích bất hợp pháp

Lỗ hổng CVE-2026-25710 là gì?

Lỗ hổng CVE-2026-25710 là lỗ hổng Execution with Unnecessary Privileges ảnh hưởng tới plasma-login-manager (phiên bản bị ảnh hưởng: < ?). Lỗ hổng này được xếp hạng ở mức Cao, với điểm CVSS 7. Các nguồn hiện có chưa ghi nhận lỗ hổng này bị khai thác.

Giới thiệu chung

Dữ liệu gốc

Upstream mới đã bổ sung một D-Bus helper đặc quyền có tên plasmaloginauthhelper, helper này gặp nhiều vấn đề, ví dụ tài khoản dịch vụ plasmalogin bị xâm phạm có thể dùng chown() để đổi chủ sở hữu các tệp tùy ý trong hệ thống.

Sản phẩm và phạm vi ảnh hưởng

Bản ghi chuẩn hóa xác định KDE plasma-login-manager là sản phẩm bị ảnh hưởng, đồng thời đặt default_status ở mức unaffected nhưng có một mục phiên bản riêng được đánh dấu affected với phạm vi custom ghi là 0 và lessThan: ?. Phạm vi này không cung cấp một cận trên có thể sử dụng để lọc phiên bản.

Nguồn kỹ thuật của SUSE đã xem xét mã trong phiên bản 6.6.2 và mô tả các vấn đề trong plasmaloginauthhelper tại đó. Advisory cho biết một bản sửa lỗi được dự kiến trong bản Plasma kế tiếp, nhưng không cung cấp exact fixed version. Không nên suy ra rằng các nhánh phát hành muộn hơn hoặc song song không bị ảnh hưởng khi chưa có xác nhận riêng.

Chi tiết kỹ thuật

KDE plasma-login-manager bổ sung plasmaloginauthhelper, một helper D-Bus đặc quyền chạy với toàn bộ quyền root và xử lý dữ liệu do client cung cấp. Interface org.kde.kcontrol.kcmplasmalogin được cung cấp trên system bus; các thao tác sync(), reset() và save() mặc định được Polkit bảo vệ bằng auth_admin.

  • Trong sync(), helper thực hiện chown() trên các đường dẫn dưới /var/lib/plasmalogin, bao gồm .config, fontconfig và các tệp cấu hình. Nếu tài khoản dịch vụ plasmalogin đã bị xâm phạm, symbolic link tại các vị trí này có thể chuyển hướng thao tác đổi owner và ghi dữ liệu do client cung cấp sang các tệp tùy ý trong hệ thống.
  • Trong reset(), QDir::removeRecursively() được dùng trên .cache và .config/fontconfig. Việc xử lý symbolic link ở component cuối có thể dẫn đến xóa các cây thư mục tùy ý.
  • Trong save(), có một race condition khi tạo và mở /var/lib/plasmalogin/wallpapers; symbolic link có thể chuyển hướng việc ghi tệp wallpaper sang vị trí khác. openat2() chỉ bảo vệ các tệp bên trong, không bảo vệ chính thư mục được mở trước đó.
  • save() cũng không giới hạn dung lượng wallpaper, không kiểm tra đầy đủ loại và cờ của file descriptor được truyền vào, và ghi nội dung caller cung cấp vào /etc/plasmalogin.conf mà không kiểm tra cấu trúc hoặc kích thước. Phần kiểm tra cấu hình được SUSE mô tả chủ yếu là vấn đề robustness, không phải một lỗi bảo mật trực tiếp.

Nguyên nhân cốt lõi được nêu trong nguồn là helper không hạ quyền trước khi thực hiện các thao tác hệ thống tệp trong thư mục của tài khoản dịch vụ.

Khả năng khai thác

Đây là vấn đề có khả năng khai thác cục bộ. Dữ liệu chuẩn hóa mô tả attack complexity thấp, yêu cầu quyền thấp và user interaction ở trạng thái passive. Tuy nhiên, SUSE cho biết các vấn đề chính không khai thác được trong cài đặt mặc định và phần lớn đường khai thác giả định tài khoản dịch vụ plasmalogin đã bị xâm phạm trước đó.

Interface D-Bus được cung cấp cho các user trên system bus, nhưng ba thao tác được xem xét mặc định yêu cầu xác thực Polkit auth_admin. Việc thay đổi chính sách Polkit có thể làm thay đổi phạm vi tiếp cận, nhưng nguồn không xác nhận một cấu hình yếu cụ thể nào đang được triển khai.

Bản ghi không xác định trạng thái khai thác thực tế; cờ public exploit được đặt là false và không có public exploit cụ thể được nêu. Điều này không chứng minh rằng chưa từng có khai thác.

Tác động kỹ thuật

Kết quả kỹ thuật chính là sự suy yếu ranh giới đặc quyền cục bộ: tài khoản dịch vụ plasmalogin có thể lợi dụng helper chạy bằng root để tác động đến các tệp và thư mục ngoài phạm vi dự kiến. Các ảnh hưởng được mô tả trực tiếp gồm đổi owner và ghi vào tệp tùy ý qua symbolic link, xóa cây thư mục tùy ý, ghi wallpaper tới vị trí ngoài dự kiến và làm cạn dung lượng đĩa.

Các thao tác này có thể gây mất tính toàn vẹn hoặc tính sẵn sàng của hệ thống, đồng thời có thể làm hỏng cấu hình plasma-login-manager. Nếu một đường khai thác đạt được quyền root, ảnh hưởng đến tính bí mật cũng có thể xảy ra do quyền hệ thống được mở rộng, nhưng nguồn không mô tả một thao tác đọc dữ liệu cụ thể. Điều kiện quan trọng là tài khoản plasmalogin phải bị xâm phạm hoặc chính sách xác thực phải yếu hơn cấu hình mặc định; nguồn không xác nhận việc khai thác trong cài đặt mặc định.

Tác động đến tổ chức

Nếu tài khoản dịch vụ plasmalogin bị xâm phạm, helper có thể làm suy yếu nghiêm trọng ranh giới đặc quyền của hệ thống KDE:

  • Toàn vẹn hệ thống: symbolic link có thể khiến thao tác chown() và ghi dữ liệu tác động đến tệp ngoài thư mục dịch vụ.
  • Tính sẵn sàng: thao tác xóa đệ quy có thể xóa các cây thư mục tùy ý; việc ghi wallpaper không giới hạn cũng có thể làm cạn dung lượng đĩa.
  • Vận hành đăng nhập: dữ liệu cấu hình và wallpaper của plasma-login-manager có thể bị sửa hoặc xóa, gây lỗi chức năng hoặc làm gián đoạn dịch vụ.
  • Phạm vi quyền: nếu đường khai thác đạt được quyền root, ảnh hưởng tiềm tàng mở rộng ra toàn hệ thống, nhưng nguồn không mô tả một sự cố hoặc vụ xâm nhập thực tế nào.

Đây chủ yếu là lỗi phòng thủ nhiều lớp sau khi tài khoản dịch vụ đã bị xâm phạm, không phải bằng chứng về một cuộc tấn công từ xa trực tiếp.

Cách khắc phục

  1. Cài bản cập nhật được vendor xác nhận khi có fixed release cụ thể cho KDE plasma-login-manager. Bằng chứng hiện có không xác lập được số phiên bản sửa lỗi, vì vậy không nên suy ra một mốc mở như “hoặc mới hơn” từ kế hoạch phát hành.
  2. Trong thời gian chờ bản sửa lỗi, không hạ chính sách Polkit mặc định của sync(), reset() hoặc save() khỏi yêu cầu auth_admin. Đây chỉ là biện pháp giảm phơi nhiễm, không loại bỏ lỗi trong helper.
  3. Nếu bảo trì mã nguồn, cho helper hạ quyền xuống tài khoản plasmalogin trước khi thực hiện thao tác hệ thống tệp trong /var/lib/plasmalogin. Việc mở từng component đường dẫn vẫn cần kiểm tra cẩn thận để tránh symbolic link và các đối tượng như named FIFO.
  4. Bổ sung kiểm tra cấu trúc và kích thước cho /etc/plasmalogin.conf, giới hạn dung lượng tối đa dành cho wallpaper, đồng thời xác minh file descriptor được truyền vào là tệp thông thường và không có cờ bất thường như O_PATH.
  5. Sau khi cập nhật, kiểm tra lại phiên bản gói, chính sách Polkit và tính toàn vẹn của các đường dẫn dữ liệu để xác nhận bản sửa lỗi đã được triển khai đúng trên từng nhánh.

Cách phát hiện

  1. Kiểm kê các máy có cài KDE plasma-login-manager và xác định helper plasmaloginauthhelper có hiện diện hay không. Đối chiếu phiên bản gói với thông báo sửa lỗi của vendor; bằng chứng hiện có chưa cung cấp một mốc fixed version chính xác.
  2. Kiểm tra chính sách Polkit áp dụng cho các thao tác sync(), reset() và save(). Xác nhận chúng vẫn yêu cầu auth_admin và không bị hạ xuống mức cho phép rộng hơn.
  3. Thực hiện kiểm tra tính toàn vẹn mang tính phòng ngừa đối với /var/lib/plasmalogin, đặc biệt là .config, .cache, .config/fontconfig và wallpapers. Tìm symbolic link bất thường, owner không mong đợi và thay đổi tệp không phù hợp với hoạt động quản trị.
  4. Kiểm tra /etc/plasmalogin.conf và nội dung thư mục wallpaper để phát hiện thay đổi ngoài kế hoạch hoặc mức sử dụng đĩa bất thường. Đây là các kiểm tra phòng ngừa dựa trên các đường dẫn bị ảnh hưởng, không phải IOC đã được nguồn xác nhận.
  5. Rà soát telemetry D-Bus và audit file-system nếu có để tìm các lần gọi bất thường tới org.kde.kcontrol.kcmplasmalogin hoặc các thay đổi liên quan. Không có log event hay indicator cụ thể nào được nguồn công bố; việc không thấy log không chứng minh hệ thống an toàn.
Nguồn (14)
Tìm hiểu thêm

Kiểm tra chuyên sâu cùng giải pháp quản lý rủi ro Web toàn diện

Giải pháp CyStack VulnScan liên tục phát hiện tài sản, xác minh lỗ hổng và giúp đội ngũ bảo mật ưu tiên khắc phục cho toàn bộ doanh nghiệp.