Các nhà nghiên cứu học thuật đã công bố một cuộc tấn công Rowhammer mới ảnh hưởng đến các GPU máy trạm của NVIDIA sử dụng bộ nhớ GDDR6. Cuộc tấn công này có khả năng vượt qua các mã sửa lỗi (ECC) — biện pháp giảm thiểu mà NVIDIA khuyến nghị để chống lại GPU Rowhammer — đồng thời cho phép thực hiện từ chối dịch vụ (DoS) và leo thang đặc quyền để chiếm quyền root shell.
Được đặt tên là GPUThor, cuộc tấn công này được phát triển bởi các nhà nghiên cứu tại Đại học Toronto. Họ đã thực hiện kỹ thuật "hammering" vào bốn bank DRAM trong suốt 24 giờ trên bốn loại card đồ họa kiến trúc Ampere, gây ra hiện tượng đảo bit (bit flips) trên mỗi thẻ.
Các GPU đã được thử nghiệm và xác nhận có lỗ hổng:
- RTX A6000 (48 GB GDDR6)
- RTX A5000 (24 GB GDDR6)
- RTX A4500 (20 GB GDDR6)
- RTX A4000 (16 GB GDDR6)
Để thực hiện cuộc tấn công, kẻ tấn công cần có khả năng chạy một CUDA kernel không có đặc quyền trên GPU mục tiêu, có thể dưới dạng người dùng chung trên một card được chia sẻ hoặc thông qua mã không đáng tin cậy trên một máy đơn người dùng. Các nhà nghiên cứu khuyên nên tránh chia sẻ GPU giữa các người dùng khác nhau, giám sát các bộ đếm lỗi ECC và hạn chế các khối lượng công việc CUDA không đáng tin cậy.
"Gần đây, các nhà nghiên cứu tại Đại học Toronto đã trình diễn việc khai thác Rowhammer thành công trên GPU NVIDIA A6000 với bộ nhớ GDDR6 khi System-Level ECC không được kích hoạt. Trong cùng một báo cáo, các nhà nghiên cứu cũng chỉ ra rằng việc kích hoạt System-Level ECC có thể giúp giảm thiểu vấn đề Rowhammer," NVIDIA cho biết trong một thông báo bảo mật vào tháng 7 năm 2025.
Thông báo đó được đưa ra sau GPUHammer, một công trình nghiên cứu trước đó của cùng nhóm này, và cũng là cuộc tấn công GPU Rowhammer đầu tiên được trình diễn trên phần cứng NVIDIA. GPUHammer đã tạo ra 16 lần đảo bit trên mỗi gigabyte trên RTX A6000 và đã bị vô hiệu hóa sau khi kích hoạt ECC.
Điểm mới của GPUThor: Hammering không đồng nhất
Điểm khác biệt của GPUThor là sử dụng kỹ thuật hammering không đồng nhất (non-uniform hammering). Trong đó, hàng "tấn công" (aggressor row) cạnh hàng "nạn nhân" (victim row) được kích hoạt thường xuyên hơn nhiều so với các hàng "mồi nhử" (decoy rows) vốn được dùng để đánh lừa cơ chế phòng vệ Target Row Refresh (TRR) của bộ nhớ. Các cuộc tấn công GPU trước đây thường kích hoạt hàng tấn công và hàng mồi nhử với tốc độ tương đương nhau.
Các nhà nghiên cứu phát hiện ra rằng các truy cập lặp lại được thực hiện trong một warp đơn lẻ (nhóm 32 threads mà GPU chạy đồng bộ) sẽ được bộ điều khiển bộ nhớ gộp lại thành một lần kích hoạt DRAM duy nhất.
Tuy nhiên, các truy cập được phát ra từ các warp khác nhau đến các cache lines khác nhau trong cùng một hàng sẽ tồn tại dưới dạng các lần kích hoạt riêng biệt, và các kernel tấn công sẽ phân phối chúng một cách tương ứng.
Trong báo cáo về GPUThor, họ cũng báo cáo rằng TRR trên các thành phần GDDR6 này có khả năng chỉ áp dụng khoảng một lần sau mỗi 72 khoảng thời gian làm mới (refresh intervals) thay vì mỗi khoảng một lần, và đã xây dựng một mô hình sáu khoảng thời gian dựa trên lịch trình đó.
Trên bốn loại card, các chiến dịch thử nghiệm đã tạo ra từ 72.000 đến 377.000 lần đảo bit trên mỗi gigabyte khi ECC bị tắt.
RTX A5000 là dòng dễ bị tổn thương nhất với 377.552 lần đảo bit mỗi gigabyte, gấp 23.597 lần so với mức 16 lần của GPUHammer và khoảng 500 lần so với mức 758 lần của GDDRHammer — cuộc tấn công GPU Rowhammer mạnh nhất trước đó.
Tỷ lệ của A5000 gần đạt tới mức khoảng 550.000 lần đảo bit mỗi gigabyte của Blacksmith, công cụ đã thiết lập kỹ thuật hammering không đồng nhất trên DDR4 để vượt qua các biện pháp phòng vệ bên trong DRAM.
Vượt qua cơ chế sửa lỗi ECC
Với độ chi tiết 16-byte, các thử nghiệm đã phát hiện 387 lần đảo bit đôi (double-bit flips) và hai lần đảo bit ba (triple-bit flips) trên bốn card khi tắt ECC, trong đó card A5000 chiếm tới 306 lần đảo bit đôi và cả hai lần đảo bit ba.
Cơ chế ECC SECDED (Single-Error-Correct, Double-Error-Detect) trên các GPU này có khả năng sửa một bit bị đảo trong một khối được bảo vệ và phát hiện hai bit, nhưng các nhà nghiên cứu phát hiện rằng nó sẽ sửa lỗi sai khi có ba bit bị đảo, dẫn đến hiện tượng sai lệch dữ liệu âm thầm (SDC - Silent Data Corruption).
Khi kích hoạt ECC trên một chiếc RTX A6000, việc tấn công vào một bank đã tạo ra 11 lỗi không thể sửa chữa nhưng có thể phát hiện được (DUE - Detectable, Uncorrectable Errors) và một lỗi SDC trong vòng một ngày, trung bình một lỗi DUE cứ mỗi hai giờ. Mỗi lỗi DUE sẽ buộc tất cả các kernel đang chạy trên card phải dừng lại, khiến nó không thể sử dụng cho đến khi được reset.
Leo thang đặc quyền lên mức Root
Để thực hiện leo thang, các nhà nghiên cứu đã sử dụng lại mã khai thác từ GPUBreach, một nghiên cứu trước đó của họ về leo thang đặc quyền page-table trên GPU.
Các page-table đầu tiên được điều hướng vào một hàng dễ bị tổn thương. Các hàng lân cận sau đó được "hammer" để làm hỏng số khung trang (page-frame number) của một mục nhập. Một kernel thứ hai sau đó sẽ truy cập vào bộ nhớ bên ngoài tiến trình thông qua mục nhập đã bị xáo trộn này.
Bằng cách sử dụng lỗi SDC ba bit, các nhà nghiên cứu đã chiếm được quyền root trên máy chủ khi IOMMU được kích hoạt. Với lỗi DUE hai bit, họ đã đạt được việc leo thang đặc quyền phía máy chủ trên các hệ thống tắt IOMMU. Một mục nhập page-table được trỏ lại vào bộ nhớ CPU, sau đó cấu trúc thông tin định danh (credential structure) của tiến trình bị ghi đè.
"Hơn nữa, chúng tôi phát hiện ra rằng ngay cả các lỗi DUE hai bit cũng có thể khai thác được, vì các DUE được xử lý một cách chậm trễ (lazily) trong GPU NVIDIA, để lại một cửa sổ thời gian khoảng 10ms giữa lúc phát hiện DUE và lúc GPU bị tắt, trong thời gian đó dữ liệu bị hỏng sẽ được kernel GPU của kẻ tấn công tiêu thụ," các nhà nghiên cứu cho biết.
Việc tìm ra các lỗi đa bit có thể khai thác mà không kích hoạt DUE mất khoảng bốn ngày trên A6000. Một cuộc leo thang đặc quyền toàn diện (end-to-end) từng mất 21,9 giờ trên card đó nay đã hoàn thành trong 1,1 phút với các mô hình của GPUHammer và cũng trong 1,1 phút với GPUThor.
Các mô hình tương tự không tạo ra lần đảo bit nào trên các linh kiện NVIDIA khác được thử nghiệm, bao gồm A10, L4, và L40 trên GDDR6, RTX 4090 trên GDDR6X, và A30 trên HBM2e.
Phản hồi và khuyến nghị
GPUThor đã được báo cáo cho NVIDIA vào ngày 29 tháng 4 năm 2026, cũng như cho Google, Microsoft và AWS. Các phát hiện sau đó được giữ kín cho đến ngày 25 tháng 8 năm 2026. NVIDIA đã phát hành một thông báo bảo mật kèm theo hướng dẫn xử lý vào cuối giai đoạn này.
GPUThor hiện không có mã định danh CVE và chưa có báo cáo nào về việc khai thác trong thực tế tính đến ngày 27 tháng 8 năm 2026. Hiện chưa có bản vá nào giải quyết triệt để cuộc tấn công này. Các nhà nghiên cứu cho biết một giải pháp hoàn chỉnh sẽ yêu cầu cơ chế sửa lỗi đa bit mạnh mẽ hơn và các biện pháp phòng vệ bên trong DRAM như Refresh Management hoặc Per-Row Activation Counting trong các GPU tương lai.
Mã nguồn tấn công dự kiến sẽ được công bố công khai vào ngày 15 tháng 11 năm 2026, ngày khai mạc Hội nghị ACM về An ninh Máy tính và Truyền thông (CCS), nơi báo cáo khoa học này sẽ được trình bày.
"Chúng tôi đã sử dụng những kỹ thuật này để làm sập GPU và leo thang đặc quyền ngay cả khi ECC đã được bật. ECC vẫn giúp nâng cao rào cản bảo mật và vẫn đáng để kích hoạt, nhưng nó không còn có thể được coi là một biện pháp phòng thủ đầy đủ nữa," các nhà nghiên cứu tuyên bố trên trang dự án GPUThor.