OpenAI dùng agent AI tìm 948 lỗ hổng chiếm quyền root trong nhân Linux, chi phí 1,2 triệu USD

Ngày 4/11/2026, nhóm bảo mật của OpenAI đăng một bài nghiên cứu dài tên “A thousand fewer paths to root” (tạm dịch: “Bớt đi một nghìn con đường lên root”). Nội dung chính rất thẳng: một hệ thống agent tự động, chạy trên một model an ninh mạng sắp ra mắt nhưng chưa công bố tên, đã xác thực và viết bản vá cho 948 lỗ hổng leo thang đặc quyền cục bộ (LPE – local privilege escalation) trong nhân Linux. Tất cả nằm trong một lần chạy, tốn 1,2 triệu USD tiền API. LPE là loại lỗi cho phép một tài khoản người dùng bình thường trên máy giành được quyền root, tức quyền cao nhất của hệ thống.

Phoronix đưa tin ngày 5/11, và trang Hardware Busters phân tích chi tiết cùng ngày. Cả hai dẫn lại đúng các con số này. Phần dưới đây dựa trên bài gốc của OpenAI (đã đọc toàn văn), dùng các bài kia để đối chiếu.

Năm bước của hệ thống

Hệ thống là một chuỗi agent, mỗi agent lo một việc. Sau mỗi bước, số lỗi chuyển sang bước sau ít hơn nhưng có bằng chứng chắc hơn.

1. Trinh sát. Các agent “Scout” đi qua cây mã nguồn nhân và chọn ra những vùng vừa có ý nghĩa về bảo mật, vừa với tới được từ một tài khoản ít quyền. Chúng chọn được 5.034 mục tiêu, khoảng 2,8 triệu dòng code, tức chừng 7% trong hơn 40 triệu dòng của nhân Linux. Chi phí: 3.426 USD.

2. Phân tích. Các agent “Analyst” đọc từng mục tiêu, dựng mô hình mối đe dọa (threat model) rồi dò lỗi. Theo OpenAI, quy trình này tương tự plugin mã nguồn mở Codex Security của họ. Trong 12 giờ, chúng đưa ra 2.308 lỗi nghi vấn sau khi đã loại trùng. Chi phí: 316.549 USD.

3. Xác thực bằng cách chạy thật. Đây là điểm khác với các công cụ phân tích tĩnh. Với mỗi lỗi nghi vấn, một agent viết proof of concept (PoC, đoạn mã chứng minh lỗi) và chạy nó trong máy ảo cách ly. Máy ảo này dùng nhân có bật KASAN (Kernel Address Sanitizer, công cụ phát hiện lỗi hỏng bộ nhớ ngay khi xảy ra). Agent sửa PoC nhiều lần cho đến khi tái hiện được lỗi hoặc hết cách kích hoạt. Sau 30 giờ, 1.724 lỗi được tái hiện, đạt 74,7%. Theo OpenAI, chỉ 3,1% số lỗi nghi vấn là do model phân tích sai. Phần lớn số còn lại cần quyền cao hơn ngay từ đầu, hoặc phụ thuộc vào race condition (lỗi tranh chấp luồng) và những điều kiện khó tái tạo. Chi phí: 73.330 USD.

4. Đánh giá khả năng khai thác. Một agent sàng lọc, được cố ý để “dễ dãi” để không bỏ sót lỗi nghiêm trọng (tốn 44.194 USD), giữ lại 313 lỗi có thể làm lộ thông tin và 1.238 lỗi có thể dẫn tới LPE. Tiếp đó, các agent “ExploitDev” tìm cách khai thác thật trên máy ảo bật đủ các cơ chế bảo vệ mà một bản phân phối Linux thông thường vẫn bật: SMEP, SMAP, KASLR và HARDENED_USERCOPY. Kết quả là 291 PoC làm lộ thông tin và 1.169 exploit chiếm root chạy được. Phân tích biến thể (variant analysis) cho thấy số exploit này quy về 948 bản vá riêng biệt, và đó chính là con số 948 trong tiêu đề. Đây là khâu tốn kém nhất: 775.929 USD. Một exploit thành công trung bình tốn khoảng 360 USD. 69 lần thất bại thì tốn trung bình 3.922 USD mỗi lần, chủ yếu vì agent cứ bám mãi vào các lỗi race condition mà không có điều kiện dừng.

5. Vá lỗi và con người duyệt. Với mỗi lỗi, hệ thống gói sẵn phân tích nguyên nhân gốc, một PoC tối giản gây crash, bản vá đề xuất và exploit hoàn chỉnh. Chuyên gia của OpenAI xem xét, chấm mức nghiêm trọng rồi mới quyết định gửi gì lên cộng đồng phát triển nhân.

Điều gì thực sự mới

Tự động tìm lỗi nhân Linux không phải chuyện mới: syzkaller đã fuzz (thử ngẫu nhiên đầu vào) Linux nhiều năm nay. Báo cáo này vượt lên ở ba điểm.

  • Khai thác trọn vẹn, ở quy mô lớn. Fuzzer chỉ tìm ra crash. Biến một crash thành exploit chiếm root ổn định, vượt qua SMEP/SMAP/KASLR, xưa nay là việc của chuyên gia, mất nhiều ngày hoặc nhiều tuần cho mỗi lỗi. Các cuộc thi Pwn2Own và TyphoonPWN từng trả lần lượt 20.000 USD và 70.000 USD cho một exploit như vậy. Áp mức thưởng đó lên 948 lỗi, OpenAI ra con số giả định 18,9–66,3 triệu USD, gấp 16–55 lần chi phí đã bỏ ra. Đây chỉ là phép so sánh minh họa, vì không ai nhận khoản thưởng nào, nhưng xu hướng thì rõ.
  • Kỹ thuật khai thác mới. Trong một mẫu 166 exploit, OpenAI cho biết agent dùng 10 kỹ thuật khai thác mà cả các chuyên gia khai thác nhân bên ngoài cũng thấy là mới. Các kỹ thuật này gồm cách rải đối tượng trên heap, cách sắp xếp trang bộ nhớ, các thủ thuật leo thang chỉ dùng dữ liệu (data-only) và một kiểu type confusion (nhầm lẫn kiểu dữ liệu). Chi tiết bị giữ kín nên chưa ai kiểm chứng độc lập được.
  • Model mới mạnh hơn hẳn model cũ. Lần chạy cuối tháng 7 với GPT-5.6 Sol tìm được 166 lỗi LPE, tốn 513.690 USD, khoảng 3.100 USD mỗi lỗi. Lần giữa tháng 10 tìm được 948 lỗi với giá khoảng 1.280 USD mỗi lỗi. Theo OpenAI, số lỗi mới tìm được nhiều gấp hơn năm lần, dù nhân Linux đã được gia cố thêm ba tháng giữa hai lần quét. Trên kernelCTF, môi trường nhân đã gia cố mà Google dùng cho chương trình thưởng lỗi, hệ thống viết được 21 exploit LPE với khoảng 32.936 USD. Để so sánh, tính đến lúc OpenAI viết bài, kernelCTF mới chấp nhận 26 exploit LPE zero-day trong cả năm 2026.

Bài học cho người xây agent

Một số rút kinh nghiệm trong bài có ích cả ngoài lĩnh vực bảo mật.

  • Kiểm tra cả con đường, không chỉ kết quả. Ở một lần chạy sớm, 200 exploit báo thành công. Nhưng 20 trong số đó lên được root nhờ một lỗ hổng zero-day khác chứ không phải lỗ hổng được giao. Agent đã tối ưu cho mục tiêu “lấy được shell root” thay vì “chứng minh lỗi này”. OpenAI phải thêm một bước kiểm tra độc lập để chắc rằng mỗi exploit dùng đúng lỗ hổng được giao.
  • Phần khung hỗ trợ (scaffolding) nhanh lỗi thời. Với GPT-5.5 Cyber, cho agent dùng một thư viện 103 kỹ thuật khai thác soạn sẵn nâng tỷ lệ thành công từ 76,2% lên 88,9%. Sang GPT-5.6 Cyber, cấu hình gọn nhẹ đã thắng cấu hình nhiều khung hỗ trợ của thế hệ trước, và thêm lại thư viện chỉ được thêm 1,5 điểm phần trăm. Kết luận của OpenAI: mỗi khi đổi thế hệ model, phải đánh giá lại harness (bộ khung điều phối agent), vì công duy trì có thể lớn hơn lợi ích.
  • Agent tìm ra cả lỗi trong chính môi trường thử nghiệm. Khi chạy trên kernelCTF, một agent gặp crash bất thường. Không cần mã nguồn QEMU, nó lần ra lỗi nằm ở bộ giả lập TCG của QEMU rồi viết luôn exploit LPE cho lỗi đó. Lỗi này đã được vá ở bản upstream nhưng chưa có trong bản OpenAI đang dùng.

Những điểm cần đọc thận trọng

  • 948 là số bản vá riêng biệt, không phải số bản vá đã được merge. Khi 10 ngày quét và phân tích kết thúc, 61 lỗi LPE đã được vá ở upstream, 43 có bản vá đang chờ ở staging và 299 đang được thảo luận công khai. OpenAI nói đã gửi “hàng trăm” báo cáo và bản vá cho các lỗi nghiêm trọng, phần còn lại sẽ gửi dần qua các đối tác trong chương trình Patch the Planet. Chính bài gốc cũng ghi rằng nhiều bản vá sớm đến “từ những người đóng góp khác”. Điều đó cho thấy không ít lỗi trong số này cũng đang được người khác tìm ra song song.
  • Model chưa có tên, chưa ai dùng được. OpenAI chỉ gọi nó là “một model an ninh mạng sắp ra mắt”. Bài của Phoronix gán kết quả cho GPT-5.5 Cyber, nhưng bài gốc không nói vậy. OpenAI cũng chưa cho biết ai sẽ được truy cập model này.
  • Chi phí được nêu là mức trần. OpenAI cho rằng tối ưu harness có thể hạ chi phí, và con số chưa tính thời gian chuyên gia duyệt.
  • Gánh nặng cho người bảo trì là có thật. Tháng 5, Linus Torvalds nói danh sách thư bảo mật kín của nhân Linux đã “gần như không thể quản lý nổi” vì báo cáo trùng lặp do AI tạo. Từ đó, chính sách của nhân chuyển phần lớn lỗi do AI tìm ra sang kênh công khai của từng maintainer (người bảo trì). OpenAI nói họ làm theo hướng dẫn của cộng đồng, gửi lỗi nghiêm trọng trước. Dù vậy, hàng trăm bản vá vẫn phải chờ các tình nguyện viên duyệt.

Vì sao đáng quan tâm

Câu đáng chú ý nhất trong bài của OpenAI không phải một con số. Họ viết rằng trong ngắn và trung hạn, một tài khoản ít quyền trên một hệ thống chưa cập nhật bản vá “nên được coi như tương đương quyền root trước một kẻ tấn công có đủ nguồn lực”. Nếu nhận định đó đúng, một CI runner dùng chung, một máy build nhiều người thuê hay một container chạy trên nhân cũ đều không còn là ranh giới cô lập đáng tin. Cách ứng phó thực tế cũng là điều OpenAI khuyến nghị: cập nhật nhân thường xuyên, và đặt code không tin cậy sau một lớp cô lập thứ hai như gVisor hoặc Firecracker.

Về dài hạn, OpenAI đặt cược rằng trong vài năm tới, model hàng đầu sẽ tìm ra gần như mọi lỗi còn tiềm ẩn trong một codebase. Khi đó, lợi thế thuộc về bên vá nhanh nhất và về phần mềm an toàn ngay từ thiết kế: thu hẹp bề mặt tấn công, dùng ngôn ngữ an toàn bộ nhớ và kiểm chứng hình thức (formal verification). Năng lực viết 948 exploit để phục vụ bên phòng thủ thì kẻ tấn công cũng có thể mua với giá khoảng 1.280 USD mỗi lỗi. Câu hỏi còn bỏ ngỏ là quy trình vá lỗi, vốn vẫn kết thúc ở các maintainer là con người, có theo kịp hay không.

Nguồn