Lỗ hổng nghiêm trọng Fragnesia trong Linux kernel cho phép chiếm quyền

Vừa qua nhà nghiên cứu William Bowling của Zellic và nhóm V12 Security đã công bố một lỗ hổng leo thang đặc quyền cục bộ mới trên Linux kernel mang tên "Fragnesia", kèm theo mã khai thác proof-of-concept (POC). Đây là lỗ hổng LPE thứ ba nhắm vào Linux kernel, sau Copy Fail và Dirty Frag trong chưa đầy một tháng, đang trở thành tâm điểm của các nhà nghiên cứu bảo mật.
Thông tin chi tiết
Định danh lỗ hổng: CVE-2026-46300
Điểm CVSS (3.1): 7.8
Mức độ nghiêm trọng: HIGH - Nghiêm trọng cao
Mô tả: Lỗi logic trong subsystem XFRM ESP-in-TCP của Linux kernel khiến kernel mất kiểm soát quyền sở hữu các trang bộ nhớ khi hợp nhất socket buffer, cho phép tiến trình người dùng thông thường ghi các byte tùy ý vào page cache của file read-only. Bằng cách nhắm vào binary setuid-root như
/usr/bin/su, kẻ tấn công có thể giành quyền root shell mà không cần chạm vào disk.Phiên bản bị ảnh hưởng: Toàn bộ Linux kernel phát hành trước ngày 13 tháng 5 năm 2026. Các bản phân phối lớn (Ubuntu, RHEL, SUSE,...) đã bắt đầu phát hành bản vá.
XFRM là framework xử lý biến đổi gói tin (packet transformation) trong Linux kernel, phục vụ chủ yếu cho IPsec - một giao thức mã hóa tầng mạng được dùng rộng rãi trong VPN doanh nghiệp và các kết nối site-to-site.
ESP-in-TCP là một chế độ của XFRM cho phép đóng gói lưu lượng IPsec bên trong TCP, giúp vượt qua các môi trường mạng NAT nghiêm ngặt không hỗ trợ UDP. Lỗi của Fragnesia nằm ở cách kernel theo dõi các page fragment (phân mảnh trang bộ nhớ) trong quá trình hợp nhất socket buffer khi xử lý ESP-in-TCP.
Có hai khái niệm nền tảng về lỗ hổng này:
Thứ nhất, page cache (bộ đệm trang) là vùng bộ nhớ mà kernel dùng để lưu bản sao in-memory của file từ đĩa cứng nhằm tăng tốc truy xuất – mọi tiến trình trên cùng hệ thống đều dùng chung page cache này.
Thứ hai, socket buffer (skb) là cấu trúc dữ liệu kernel dùng để quản lý dữ liệu mạng đang được xử lý; khi nhiều skb được hợp nhất (coalescing), kernel theo dõi quyền sở hữu từng page fragment trong quá trình này. Đây chính là điểm kernel thất bại trong Fragnesia.
Chuỗi khai thác diễn ra theo các bước sau:
Kẻ tấn công đẩy nội dung của một binary setuid-root (ví dụ
/usr/bin/su) vào một TCP socket, tạo ra sự liên kết giữa socket buffer và page cache của file đó. Sau đó, kẻ tấn công bật mã hóa ESP-in-TCP trên cùng socket, kích hoạt quá trình hợp nhất skb.Tại thời điểm này, lỗi logic xuất hiện và kernel cho phép ghi byte tùy ý vào trang page cache vốn thuộc file read-only. Kết quả là bản sao in-memory của
/usr/bin/subị sửa đổi để thực thi mã độc.Khi người dùng chạy
su, lệnh này thực thi phiên bản đã bị can thiệp trong bộ nhớ và trả về shell với quyền root. Không có thay đổi nào được ghi xuống đĩa – các công cụ kiểm tra toàn vẹn file thông thường sẽ không phát hiện được.
Đây là lỗi logic xác định (deterministic), không dựa vào race condition, không yêu cầu biết địa chỉ bộ nhớ cụ thể. Kẻ tấn công nghiệp dư cũng có thể thực hiện thành công sau khi chạy đoạn mã PoC khai thác lên các hệ thống chưa vá với kết quả thành công tuyệt đối.
Mặc dù Fragnesia yêu cầu quyền truy cập cục bộ, tác động thực tế rất rộng khi kẻ tấn công đã có điểm xâm nhập ban đầu bất kỳ:
Leo thang đặc quyền tức thì sau xâm nhập ban đầu: Bất kỳ điểm xâm nhập nào cung cấp shell người dùng thấp – dù là SSH bị lộ thông tin xác thực, ứng dụng web bị khai thác, CI/CD pipeline bị nhiễm độc – đều có thể trở thành kiểm soát root toàn hệ thống chỉ với một lệnh duy nhất, ngay lập tức.
Thoát khỏi container (Container Escape): Vì page cache được chia sẻ toàn node, một tiến trình bên trong container không có đặc quyền có thể nhắm vào binary setuid-root của host hoặc của container khác, phá vỡ ranh giới cô lập và chiếm quyền kiểm soát toàn node. Đây là rủi ro đặc biệt nghiêm trọng trong môi trường Kubernetes và cloud multi-tenant.
Tấn công không để lại dấu vết trên disk: Do toàn bộ can thiệp diễn ra trong bộ nhớ, các giải pháp File Integrity Monitoring (FIM) truyền thống – kiểm tra hash file trên đĩa – không thể phát hiện cuộc tấn công này.
Fragnesia xuất hiện như một hệ quả ngoài ý muốn của quá trình vá lỗi Dirty Frag (CVE-2026-43284 và CVE-2026-43500, công bố ngày 7/5/2026). Khi các bản vá Dirty Frag được áp dụng, một trong số đó vô tình để lộ một lỗi riêng biệt trong cùng bề mặt XFRM/ESP, từ đó tạo tiền đề cho Fragnesia xuất hiện.
Khắc phục & Khuyến nghị
Tính đến thời điểm hiện nay, chưa có thống kê nào cho thấy Fragnesia đã và đang bị khai thác trong thực tế. Tuy nhiên việc mã khai thác POC của lỗ hổng này đã được công khai rộng rãi, điều này tạo ra rủi ro bảo mật rất cao, đội ngũ FPT Threat Intelligence khuyến nghị người dùng và các quản trị viên cần:
Cập nhật kernel ngay khi bản vá có sẵn: Theo dõi, cập nhật và áp dụng bản vá kernel chính thức mới nhất từ nhà các nhà phân phối Linux (Ubuntu, RHEL, SUSE, Amazon Linux,...). Đây là biện pháp khắc phục dứt điểm duy nhất cho lỗ hổng này.
Biện pháp giảm thiểu tạm thời: Unload và blacklist các module
esp4,esp6, vàrxrpcđể chặn bề mặt khai thác. Lưu ý biện pháp này sẽ làm gián đoạn workload phụ thuộc vào IPsec ESP hoặc AFS/rxrpc – cần đánh giá tác động vận hành trước khi áp dụng. Các tổ chức đã áp dụng biện pháp giảm thiểu Dirty Frag với cùng module không cần thực hiện thêm bước nào cho Fragnesia.Xóa page cache sau giảm thiểu: Thực hiện
echo 3 > /proc/sys/vm/drop_cachesđể loại bỏ khả năng binary đã bị sửa đổi trong bộ nhớ còn tồn tại, đặc biệt nếu hệ thống đã tiếp xúc trước khi áp dụng biện pháp giảm thiểu.Ưu tiên môi trường container và multi-tenant: Các hệ thống Kubernetes, cloud VPS, shared hosting và CI/CD runner với người dùng không tin cậy cần được vá với mức ưu tiên cao nhất do nguy cơ container escape.
Giám sát hành vi bất thường: Theo dõi các tiến trình người dùng thông thường đột ngột spawn shell với quyền root, cùng các thay đổi bất thường trong log xác thực liên quan đến
su(đặc biệt là các entry thiếu thông tin calling user – dấu hiệu của binary bị sửa đổi trong bộ nhớ).





