Skip to main content

Command Palette

Search for a command to run...

Lỗ hổng Copy Fail cực kỳ nghiêm trọng trong Linux kernel cho phép chiếm quyền root

Updated
8 min read
Lỗ hổng Copy Fail cực kỳ nghiêm trọng trong Linux kernel cho phép chiếm quyền root

Nhóm nghiên cứu Xint Code vừa qua đã công bố một lỗ hổng leo thang đặc quyền cục bộ (Local Privilege Escalation – LPE) cực kỳ nghiêm trọng trong Linux kernel, được đặt tên "Copy Fail". Lỗ hổng cho phép người dùng không có đặc quyền có thể leo thang lên quyền root trên hầu hết các bản phân phối Linux lớn như Ubuntu, RHEL, SUSE,... Đáng chú ý, việc leo thang đặc quyền này có thể dễ dàng thực hiện thông qua một script Python chỉ vỏn vẹn 732 byte mà không yêu cầu bất kỳ thêm điều kiện nào khác.

Thông tin chi tiết

  • Định danh lỗ hổng: CVE-2026-31431

  • Đ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 module algif_aead thuộc giao diện AF_ALG (userspace crypto API) của Linux kernel, cho phép người dùng không có đặc quyền thực hiện ghi 4 byte kiểm soát được vào page cache – vùng bộ nhớ lưu bản sao in-memory của các file trên hệ thống. Bằng cách nhắm vào các binary setuid-root như /usr/bin/su, kẻ tấn công có thể giành quyền root shell mà không để lại dấu vết trên disk.

  • Phiên bản bị ảnh hưởng: Hầu hết các bản phân phối Linux phổ biến sử dụng kernel phiên bản phát hành từ năm 2017 đến đầu năm 2026, bao gồm Ubuntu, Amazon Linux, RHEL và SUSE.

Page cache (bộ đệm trang) là cơ chế Linux kernel sử dụng để lưu tạm các bản sao in-memory của file từ disk, giúp tăng tốc độ truy xuất. Khi một chương trình đọc file, kernel không đọc trực tiếp từ disk mỗi lần mà sử dụng bản sao đã có trong bộ nhớ. Quan trọng hơn, page cache này được chia sẻ toàn bộ node – nghĩa là nếu kẻ tấn công có thể ghi vào page cache của một file, mọi tiến trình chạy file đó đều bị ảnh hưởng.

Module algif_aead là giao diện kernel cung cấp cho các ứng dụng userspace khả năng truy cập các thuật toán mã hóa AEAD (Authenticated Encryption with Associated Data) – loại mã hóa xác thực kết hợp bảo mật và toàn vẹn dữ liệu – thông qua socket AF_ALG. Module này được sử dụng rộng rãi trong các stack mạng như IPsec với Extended Sequence Number (ESN).

Nguồn gốc của lỗ hổng nằm ở một tối ưu hóa hiệu năng được đưa vào kernel từ năm 2017 (commit 72548b093ee3). Tối ưu hóa này cho phép kernel tái sử dụng vùng nhớ nguồn làm đích trong các thao tác mã hóa AEAD – tức là thực hiện mã hóa "in-place" để tránh cấp phát bộ nhớ mới. Hệ quả ngoài ý muốn là các trang page cache có thể bị đặt vào scatterlist có quyền ghi (writable scatterlist).

Chuỗi khai thác mặc định nhắm vào /usr/bin/su — một binary setuid-root có mặt trên hầu hết các bản phân phối Linux lớn với các bước như sau:

  • Bước 1: Mở kết nối. Kẻ tấn công mở một kết nối đến giao diện mã hóa của kernel AF_ALG). Thao tác này không cần bất kỳ đặc quyền nào, một người dùng thông thường cũng hoàn toàn có thể thực hiện.

  • Bước 2: Chuẩn bị payload. Kẻ tấn công chia shellcode thành từng đoạn 4 byte, với mỗi đoạn tạo một cặp lệnh được tính toán chính xác để chèn thao tác ghi vào đúng vị trí mục tiêu trong bản sao in-memory của /usr/bin/su đang được kernel lưu trong bộ nhớ.

  • Bước 3: Ghi vào bộ nhớ. Khi lệnh giải mã được kích hoạt, kernel vô tình ghi 4 byte của kẻ tấn công vào page cache nằm trong bộ nhớ file /usr/bin/su. Kernel có thể phát hiện lỗi xác thực và trả về thông báo lỗi, nhưng do bộ nhớ đã bị sửa nên không thể khôi phục lại trạng thái trước đó.

  • Bước 4: Chiếm quyền root. Sau khi toàn bộ shellcode đã được ghi vào bộ nhớ, kẻ tấn công chỉ cần gọi /usr/bin/su. Kernel tải chương trình từ bộ nhớ đã chứa mã độc, shellcode được chạy ngay với đặc quyền cao nhất. Root.ALG mặc định cho phép người dùng thông thường sử dụng. Toàn bộ quá trình tấn công diễn ra không để lại dấu vết trên disk vì chỉ tác động đến bộ nhớ.

Điều khiến Copy Fail đặc biệt nguy hiểm so với các lỗ hổng kernel thông thường là tính xác định tuyệt đối: đây là một logic flaw (lỗi logic) thuần túy, không phải race condition, không cần biết địa chỉ bộ nhớ cụ thể (kernel offset), không có cửa sổ thời gian cần tính toán. Một script Python duy nhất 732 byte chạy thành công trên mọi distro lớn mà không cần chỉnh sửa. Đây cũng là lỗ hổng được phát hiện thông qua quy trình có sự hỗ trợ của AI – chỉ mất khoảng một giờ để xác định.

Copy Fail không khai thác được từ xa đơn độc, nhưng trở thành vũ khí cực kỳ nguy hiểm khi kết hợp với một điểm xâm nhập ban đầu bất kỳ:

  • Leo thang đặc quyền sau xâm nhập ban đầu: Sau khi kẻ tấn công có được shell người dùng thấp (qua SSH bị lộ thông tin, CI/CD pipeline độc hại, hoặc container foothold), Copy Fail ngay lập tức nâng lên quyền root toàn hệ thống – biến mọi điểm xâm nhập nhỏ thành kiểm soát hoàn toàn.

  • Thoát khỏi container (container escape): Do page cache được chia sẻ toàn bộ node, kẻ tấn công trong một container có thể nhắm vào binary setuid-root của host, thoát khỏi sandbox container và chiếm quyền kiểm soát toàn bộ node – đây là rủi ro đặc biệt nghiêm trọng với môi trường Kubernetes và cloud-native.

  • Khó phát hiện: Vì toàn bộ khai thác diễn ra trong bộ nhớ (memory-only compromise), không có file nào bị thay đổi trên disk, khiến các giải pháp giám sát file integrity thông thường không phát hiện được hành vi này.

Copy Fail được so sánh trực tiếp với Dirty Pipe (CVE-2022-0847) – lỗ hổng LPE nổi tiếng năm 2022 – do cùng khai thác cơ chế ghi vào page cache thông qua splice(), nhưng ở một subsystem khác. Tính đến thời điểm công bố vào đầu tháng 5/2026, nhiều bản phân phối Linux lớn vẫn chưa phát hành bản vá, trong khi bản vá upstream đã có (commit a664bf3d603d – hoàn nguyên tối ưu hóa năm 2017). Các tổ chức lớn như Cloudflare đã xác nhận đánh giá và phát hiện mẫu khai thác này trong vòng vài phút nhờ các cơ chế phát hiện hành vi có sẵn.

Khắc phục & Khuyến nghị

Với phạm vi ảnh hưởng trải dài gần một thập kỷ, script khai thác công khai hoạt động ổn định, và nguy cơ container escape trong môi trường cloud, Copy Fail là một trong những lỗ hổng Linux nghiêm trọng nhất trong nhiều năm trở lại đây. Đội ngũ FPT Threat Intelligence khuyến nghị:

  • Cập nhật kernel ngay lập tức: Áp dụng bản vá kernel do nhà phân phối cung cấp (Ubuntu, RHEL, SUSE, Amazon Linux,...) ngay khi có. Đây là biện pháp khắc phục triệt để duy nhất. Biện pháp tạm thời nếu chưa thể vá: Vô hiệu hóa module algif_aead bằng lệnh modprobe -r algif_aead hoặc thêm vào blacklist kernel module. Lưu ý kiểm tra trước xem hệ thống có dịch vụ nào phụ thuộc vào module này không (chủ yếu là các stack IPsec với ESN).

  • Ưu tiên môi trường multi-tenant và container: Các hệ thống Kubernetes, shared hosting, VPS provider, hoặc bất kỳ môi trường nào có nhiều tenant chia sẻ cùng một Linux node cần được vá với mức độ ưu tiên cao nhất do nguy cơ container escape.

  • Triển khai phát hiện hành vi: Theo dõi các hành vi bất thường liên quan đến gọi splice() kết hợp với socket AF_ALG, cũng như 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ác nền tảng EDR/NDR hỗ trợ phát hiện memory-only exploit nên được cấu hình với rule tương ứng.

Tham khảo

  1. Copy Fail: 732 Bytes to Root on Every Major Linux Distribution

  2. CVE-2026-31431: Copy Fail vulnerability enables Linux root privilege escalation across cloud environments

More from this blog

F

FPT IS Security

801 posts

Dedicated to providing insightful articles on cybersecurity threat intelligence, aimed at empowering individuals and organizations to navigate the digital landscape safely.