Leo thang đặc quyền cục bộ trong Canonical snapd qua cơ chế dọn dẹp /tmp riêng

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-3888 là gì?

Lỗ hổng CVE-2026-3888 là lỗ hổng Privilege Chaining ảnh hưởng tới snapd (phiên bản bị ảnh hưởng: < 2.75.1), Ubuntu 16.04 LTS, Ubuntu 18.04 LTS và 3 sản phẩm khác. Lỗ hổng này được xếp hạng ở mức Cao, với điểm CVSS 7.8. 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

Lỗi leo thang đặc quyền cục bộ trong snapd trên Linux cho phép kẻ tấn công cục bộ giành được đặc quyền root bằng cách tạo lại thư mục /tmp riêng của snap khi systemd-tmpfiles được cấu hình để tự động dọn dẹp thư mục này. Vấn đề này ảnh hưởng đến Ubuntu 16.04 LTS, 18.04 LTS, 20.04 LTS, 22.04 LTS và 24.04 LTS.

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

Canonical ban đầu mô tả lỗi trên Ubuntu 16.04 LTS đến Ubuntu 24.04 LTS. Tư vấn Canonical sau đó cũng liệt kê Ubuntu 25.10, còn trang trạng thái được cập nhật của Canonical liệt kê thêm Ubuntu 26.04 LTS.

  • Ubuntu 16.04 LTS: snapd bị ảnh hưởng trong các cấu hình không mặc định; bản sửa là 2.61.4ubuntu0.16.04.1+esm2.
  • Ubuntu 18.04 LTS: snapd bị ảnh hưởng trong các cấu hình không mặc định; bản sửa là 2.61.4ubuntu0.18.04.1+esm2.
  • Ubuntu 20.04 LTS: snapd bị ảnh hưởng trong các cấu hình không mặc định; bản sửa là 2.67.1+20.04ubuntu1~esm1.
  • Ubuntu 22.04 LTS: snapd bị ảnh hưởng trong các cấu hình không mặc định; bản sửa là 2.73+ubuntu22.04.1.
  • Ubuntu 24.04 LTS: các cài đặt mặc định được Canonical và Qualys xác định là bị ảnh hưởng; bản sửa là 2.73+ubuntu24.04.2. Bản 2.73+ubuntu24.04.1 từng gây regression khi triển khai quy tắc sửa lỗi và không nên được coi là mốc cuối cùng đã sửa.
  • Ubuntu 25.10: các cài đặt mặc định được Canonical xác định là bị ảnh hưởng; bản sửa là 2.73+ubuntu25.10.1.
  • Ubuntu 26.04 LTS: trang trạng thái Canonical được cập nhật liệt kê nhánh này với bản sửa 2.74.1+ubuntu26.04.3.
  • Upstream snapd: bản ghi chuẩn hóa nêu các phiên bản nhỏ hơn 2.75.1 là bị ảnh hưởng, còn thảo luận Canonical nói hardening được áp dụng trong 2.75.1. Một bài viết Qualys nêu mốc upstream trước 2.75, vì vậy ranh giới upstream có mâu thuẫn giữa các nguồn và cần được xác minh theo advisory của nhà cung cấp trước khi kết luận.

Chi tiết kỹ thuật

Canonical snapd xử lý các thao tác đặc quyền trong vùng /tmp riêng của snap thông qua snap-confine, trong khi systemd-tmpfiles chạy với quyền root để tạo, xóa và dọn dẹp các thư mục tạm. Khi cơ chế dọn dẹp xóa thư mục .snap bên trong vùng tạm của một snap, thư mục đã bị xóa có thể được tạo lại bởi người dùng cục bộ thông qua vùng /tmp có thể ghi. Trong lần snap-confine xây dựng lại sandbox, nội dung do kẻ tấn công kiểm soát có thể được bind-mount vào môi trường sandbox với quyền đặc biệt, dẫn đến thực thi mã trong ngữ cảnh đặc quyền root. Điều kiện khai thác gồm có tài khoản cục bộ với đặc quyền thấp, một snap đã được cài đặt và cấu hình systemd-tmpfiles thực sự dọn dẹp thư mục liên quan. Khai thác còn phụ thuộc vào việc chờ cửa sổ dọn dẹp theo thời gian, nên không phải là đường tấn công tức thời. Bản ghi và các tư vấn đã kiểm tra không xác định tên hàm hoặc lỗi triển khai ở mức mã nguồn cụ thể hơn ngoài việc xử lý không an toàn các thư mục riêng của snap.

Khả năng khai thác

Đây là lỗi chỉ có thể khai thác từ cục bộ, không phải từ xa qua mạng. Kẻ tấn công cần một tài khoản cục bộ với đặc quyền thấp; không cần người dùng khác tương tác. Độ phức tạp cao vì phải chờ systemd-tmpfiles xóa thư mục mục tiêu, với khoảng thời gian được Qualys mô tả là khoảng 10 đến 30 ngày tùy bản phát hành, sau đó buộc snap-confine tạo lại sandbox. Tư vấn kỹ thuật của Qualys đã công khai proof of concept và mô tả việc đạt được thực thi với quyền root, vì vậy khả năng khai thác đã được chứng minh về mặt kỹ thuật. Điều này không đồng nghĩa với việc có bằng chứng về khai thác đang diễn ra ngoài thực tế.

Tác động kỹ thuật

Kết quả kỹ thuật của việc khai thác là leo thang từ người dùng cục bộ đặc quyền thấp lên ngữ cảnh thực thi root. Việc snap-confine bind-mount nội dung do kẻ tấn công kiểm soát có thể dẫn đến thực thi mã tùy ý trong quá trình xây dựng sandbox đặc quyền. Vì phạm vi ảnh hưởng vượt ra ngoài quyền ban đầu của tài khoản cục bộ, kẻ tấn công có thể tác động đến tính bí mật, tính toàn vẹn và tính sẵn sàng của hệ thống. Điều kiện dọn dẹp của systemd-tmpfiles, sự tồn tại của snap phù hợp và thời gian chờ dài là các giới hạn thực tế của đường khai thác. Hệ thống không đáp ứng các điều kiện này chưa được bằng chứng hiện có xác định là có thể khai thác theo cùng cách.

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

Khai thác thành công có thể biến một tài khoản cục bộ đặc quyền thấp thành quyền root trên máy bị ảnh hưởng. Quyền này có thể cho phép đọc dữ liệu nhạy cảm, sửa phần mềm và cấu hình hệ thống, thay đổi cơ chế bảo vệ hoặc làm gián đoạn dịch vụ. Rủi ro đặc biệt đáng chú ý trên các máy cho phép nhiều người dùng cục bộ hoặc chạy snap với dữ liệu và dịch vụ quan trọng. Các nhánh Ubuntu khác nhau có mốc sửa lỗi riêng, vì vậy việc xác nhận cập nhật phải được thực hiện theo từng nhánh thay vì chỉ kiểm tra một phiên bản chung.

Cách khắc phục

  1. Ưu tiên cập nhật snapd theo đúng nhánh Ubuntu. Xác nhận gói đạt ít nhất mốc sửa lỗi được Canonical công bố: 2.61.4ubuntu0.16.04.1+esm2 cho Ubuntu 16.04 LTS, 2.61.4ubuntu0.18.04.1+esm2 cho Ubuntu 18.04 LTS, 2.67.1+20.04ubuntu1~esm1 cho Ubuntu 20.04 LTS, 2.73+ubuntu22.04.1 cho Ubuntu 22.04 LTS, 2.73+ubuntu24.04.2 cho Ubuntu 24.04 LTS, 2.73+ubuntu25.10.1 cho Ubuntu 25.10 và 2.74.1+ubuntu26.04.3 cho Ubuntu 26.04 LTS.
  2. Cập nhật toàn bộ hệ thống bằng cơ chế cập nhật Ubuntu thông thường. Nếu không thể cập nhật toàn bộ, Canonical hướng dẫn có thể nâng cấp riêng gói snapd bằng apt, nhưng vẫn phải kiểm tra đúng mốc sửa lỗi của nhánh đang chạy.
  3. Nếu chưa thể cài bản cập nhật, áp dụng cấu hình giảm thiểu thủ công như biện pháp tạm thời cuối cùng. Thay toàn bộ nội dung /usr/lib/tmpfiles.d/snapd.conf bằng cấu hình do Canonical công bố:
D! /tmp/snap-private-tmp 0700 root root -

# Allow removing content in the private tmp folders without affecting the
# architectural structure of the folders themselves.
X /tmp/snap-private-tmp
X /tmp/snap-private-tmp/*/tmp
x /tmp/snap-private-tmp/*/tmp/.snap
  1. Sau khi thay đổi cấu hình thủ công, chạy sudo systemctl restart systemd-tmpfiles-clean.service.
  2. Theo dõi việc cài đặt bản sửa trên tất cả mirror và kiểm tra lại bằng dpkg -l snapd. Không coi bản sửa của một nhánh là bằng chứng cho nhánh khác đã an toàn.
  3. Lưu ý rằng chỉnh sửa thủ công các tệp cấu hình có thể làm các lần unattended upgrade sau đó thất bại cho đến khi cấu hình được khôi phục theo nội dung gói đã sửa. Với upstream snapd, do các nguồn công bố ranh giới 2.75 và 2.75.1 khác nhau, cần xác minh bản phát hành cụ thể với advisory của nhà cung cấp.

Cách phát hiện

  1. Kiểm kê các máy Ubuntu có cài snapd, đặc biệt các hệ thống cho phép người dùng không tin cậy đăng nhập cục bộ.
  2. Trên từng máy, chạy dpkg -l snapd và đối chiếu phiên bản với mốc sửa lỗi tương ứng của đúng nhánh Ubuntu trong phần affected_summary.
  3. Kiểm tra nội dung /usr/lib/tmpfiles.d/snapd.conf và các cấu hình tmpfiles.d liên quan để xác định systemd-tmpfiles có tự động dọn dẹp vùng /tmp riêng của snap hay không.
  4. Xác nhận bản cập nhật đã sửa cấu hình bảo vệ thư mục riêng của snap, bao gồm quy tắc giữ lại cấu trúc thư mục trong khi chỉ cho phép dọn dẹp nội dung phù hợp.
  5. Có thể rà soát bổ sung các thay đổi bất thường về quyền sở hữu hoặc việc tái tạo thư mục bên dưới vùng /tmp riêng của snap. Đây là biện pháp giám sát phòng ngừa, không phải IOC được nhà cung cấp xác nhận.
  6. Không coi việc không thấy sự kiện đáng ngờ trong log là bằng chứng hệ thống an toàn; việc xác minh phiên bản gói và cấu hình mới là kiểm tra chính.
Nguồn (28)
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.