CVE-2025-37947: Lỗ hổng Nghiêm trọng Cho Phép Chiếm Quyền Root

Nhà nghiên cứu bảo mật Norbert Szetei đã công bố phần cuối cùng trong nghiên cứu chuyên sâu về module hệ thống tệp ksmbd, đỉnh điểm là một mã khai thác proof-of-concept (PoC) hoạt động nhắm mục tiêu vào lỗ hổng CVE-2025-37947.
Không giống như các lỗ hổng use-after-free trước đây đòi hỏi các điều kiện race phức tạp hoặc phụ thuộc vào các yếu tố bên ngoài, lỗ hổng này cung cấp một primitive ghi dữ liệu ngoài vùng nhớ (OOB) có tính xác định.
Phân tích kỹ thuật lỗ hổng CVE-2025-37947
Cơ chế khai thác Out-of-Bounds Write
PoC của Szetei đã được kiểm tra trên Ubuntu 22.04.5 LTS chạy kernel 5.15.0-153-generic, chứng minh một lộ trình đáng tin cậy để đạt được quyền root cục bộ.
Điều này được thực hiện bằng cách tràn một bộ đệm được khởi tạo bằng 0, cấp phát qua kvmalloc(), một cách cẩn thận.
Lỗi nằm trong hàm ksmbd_vfs_stream_write() trong tệp fs/ksmbd/vfs.c của module ksmbd.
Khi một chia sẻ có thể ghi được cấu hình với vfs objects = streams_xattr, mã sẽ giới hạn tổng kích thước ở XATTR_SIZE_MAX (0x10000).
Tuy nhiên, nó vẫn cho phép ghi vượt quá giới hạn đó bằng cách đặt *pos thành 0x10000 và count thành 8.
Thao tác memcpy(&stream_buf[*pos], buf, count) sau đó ghi tám byte vượt quá ranh giới bộ đệm, cho phép kẻ tấn công kiểm soát việc làm hỏng bộ nhớ.
Chi tiết chuỗi khai thác và chiếm quyền điều khiển
Kỹ thuật Heap Shaping và Leo Thang Đặc Quyền
Heap shaping thông qua thao tác trình cấp phát SLUB đảm bảo rằng vùng tràn nằm cạnh một đối tượng slab order-4 mục tiêu.
Trong trường hợp của Szetei, đây là các thông điệp kernel msg_msg chính, cho phép làm hỏng con trỏ và từ đó đạt được chiếm quyền điều khiển.
Các bước khai thác bao gồm spray, free và reclaim dẫn đến một chuỗi use-after-free.
Tiếp theo là rò rỉ bộ nhớ kernel để bỏ qua SMAP, SMEP và KASLR, cuối cùng là một stack pivot và thực thi chuỗi ROP.
Toàn bộ luồng khai thác và mã nguồn đã được công bố trên GitHub.
Tác động và Biện pháp giảm thiểu rủi ro
Mối đe dọa và điều kiện khai thác
Lỗ hổng CVE-2025-37947 đặt ra một mối đe dọa đáng kể trong các môi trường mà các chia sẻ tệp SMB dựa trên ksmbd với các luồng thuộc tính mở rộng (extended attribute streams) được bật.
Vì lỗ hổng này chỉ yêu cầu thông tin xác thực hợp lệ và cấu hình chia sẻ tối thiểu, kẻ tấn công có tài khoản người dùng tiêu chuẩn có thể đạt được quyền root.
Điều này làm suy yếu tính toàn vẹn của máy chủ và cho phép khai thác lỗ hổng nghiêm trọng.
Các bản vá bảo mật và khuyến nghị phòng ngừa
Các tổ chức đang chạy các kernel bị ảnh hưởng nên ngay lập tức áp dụng các bản vá bảo mật từ nhà cung cấp upstream hoặc các bản cập nhật phân phối.
Là một biện pháp giảm thiểu tạm thời, việc tắt module stream_xattr hoặc loại bỏ quyền ghi khỏi các chia sẻ SMB có thể ngăn chặn các điều kiện kích hoạt lỗ hổng.
Giám sát hoạt động SMB bất thường và kiểm tra /var/log/kern.log để tìm dấu vết ghi OOB có thể giúp phát hiện các nỗ lực khai thác.
Cuối cùng, việc thực thi các chính sách tài khoản SMB với đặc quyền tối thiểu và cô lập các hệ thống quan trọng khỏi các mạng không đáng tin cậy sẽ giảm thiểu rủi ro hơn nữa cho đến khi khắc phục hoàn toàn được xác nhận.









