-
09/04/2020
-
141
-
2.020 bài viết
Lỗ hổng GhostLock tồn tại 15 năm trên Linux cho phép chiếm quyền root chỉ vài giây
Các chuyên gia an ninh mạng tiếp tục phát hiện một lỗ hổng trong nhân Linux mang tên GhostLock (CVE-2026-43499). Điều đáng chú ý là lỗ hổng này đã âm thầm tồn tại suốt 15 năm, xuất hiện mặc định trên hầu hết các bản phân phối Linux phổ biến kể từ năm 2011 nhưng chỉ mới được phát hiện gần đây.
GhostLock cho phép một người dùng đã đăng nhập vào hệ thống, dù chỉ có quyền thông thường, có thể leo thang đặc quyền và chiếm toàn quyền điều khiển máy dưới quyền root. Trong thử nghiệm của Nebula Security, mã khai thác đạt tỷ lệ thành công khoảng 97%, chỉ mất khoảng 5 giây để chiếm quyền hệ thống, đồng thời còn có khả năng thoát khỏi môi trường container. Mặc dù chưa ghi nhận việc lỗ hổng bị khai thác trong thực tế, việc mã khai thác đã được công bố công khai khiến nguy cơ bị lợi dụng trong thời gian tới tăng lên đáng kể.
GhostLock là gì?
GhostLock là lỗ hổng leo thang đặc quyền cục bộ được định danh CVE-2026-43499, ảnh hưởng đến Linux Kernel.
Lỗ hổng được đánh giá 7,8 điểm theo thang CVSS, thuộc mức High. Điểm số không đạt mức Critical vì kẻ tấn công phải có khả năng thực thi mã trên máy trước đó, tức đã đăng nhập hoặc xâm nhập được vào hệ thống. Tuy nhiên, một khi điều kiện này được đáp ứng, GhostLock có thể giúp chiếm toàn bộ quyền điều khiển hệ điều hành.
Theo Nebula Security, đoạn mã chứa lỗ hổng đã được đưa vào Linux từ năm 2011 và tồn tại mặc định trong gần như mọi bản phân phối Linux phổ biến suốt hơn một thập kỷ.
Lỗ hổng được đánh giá 7,8 điểm theo thang CVSS, thuộc mức High. Điểm số không đạt mức Critical vì kẻ tấn công phải có khả năng thực thi mã trên máy trước đó, tức đã đăng nhập hoặc xâm nhập được vào hệ thống. Tuy nhiên, một khi điều kiện này được đáp ứng, GhostLock có thể giúp chiếm toàn bộ quyền điều khiển hệ điều hành.
Theo Nebula Security, đoạn mã chứa lỗ hổng đã được đưa vào Linux từ năm 2011 và tồn tại mặc định trong gần như mọi bản phân phối Linux phổ biến suốt hơn một thập kỷ.
Lỗ hổng được phát hiện như thế nào?
GhostLock được phát hiện bởi Nebula Security thông qua VEGA, công cụ tìm kiếm lỗ hổng sử dụng trí tuệ nhân tạo (AI) do chính công ty phát triển. Sau khi xác minh và xây dựng thành công mã khai thác, Nebula đã báo cáo lỗ hổng cho chương trình Google kernelCTF và nhận được khoản thưởng 92.337 USD.
Việc GhostLock được phát hiện bằng AI cho thấy xu hướng mới trong nghiên cứu an ninh mạng. Thay vì chỉ dựa vào việc rà soát thủ công hàng triệu dòng mã nguồn, các công cụ AI đang được sử dụng để phân tích những đoạn mã cũ, phức tạp và ít được chú ý, từ đó phát hiện các lỗi mà con người có thể đã bỏ sót trong nhiều năm.
Việc GhostLock được phát hiện bằng AI cho thấy xu hướng mới trong nghiên cứu an ninh mạng. Thay vì chỉ dựa vào việc rà soát thủ công hàng triệu dòng mã nguồn, các công cụ AI đang được sử dụng để phân tích những đoạn mã cũ, phức tạp và ít được chú ý, từ đó phát hiện các lỗi mà con người có thể đã bỏ sót trong nhiều năm.
Nguyên nhân của GhostLock: Một lỗi nhỏ trong cơ chế quản lý tiến trình của Linux
Để hiểu GhostLock, cần biết Linux có một cơ chế gọi là Priority Inheritance (PI) của Futex. Có thể hình dung đây là cơ chế giúp một tác vụ quan trọng không phải chờ quá lâu nếu đang bị một tác vụ ít quan trọng hơn giữ khóa tài nguyên. Khi tác vụ hoàn thành, kernel sẽ thực hiện bước "dọn dẹp" để giải phóng các thông tin liên quan. Trong điều kiện bình thường, quá trình này diễn ra chính xác.
Tuy nhiên, trong một trường hợp hiếm gặp khi thao tác khóa tài nguyên thất bại và phải quay lui, bước dọn dẹp lại được thực hiện sai thời điểm.
Kết quả là kernel vô tình xóa thông tin của một tiến trình khác thay vì tiến trình cần xử lý. Điều này tạo ra một lỗi Use-after-Free, tức kernel vẫn tiếp tục sử dụng một vùng nhớ đã được giải phóng và có thể đã được cấp phát cho mục đích khác.
Có thể hình dung như một người vẫn sử dụng chìa khóa của căn hộ cũ sau khi căn hộ đó đã được giao cho chủ mới. Khi hệ thống tiếp tục tin rằng dữ liệu cũ vẫn còn hợp lệ, kẻ tấn công có thể lợi dụng để ghi đè hoặc điều khiển dữ liệu trong bộ nhớ kernel.
Tuy nhiên, trong một trường hợp hiếm gặp khi thao tác khóa tài nguyên thất bại và phải quay lui, bước dọn dẹp lại được thực hiện sai thời điểm.
Kết quả là kernel vô tình xóa thông tin của một tiến trình khác thay vì tiến trình cần xử lý. Điều này tạo ra một lỗi Use-after-Free, tức kernel vẫn tiếp tục sử dụng một vùng nhớ đã được giải phóng và có thể đã được cấp phát cho mục đích khác.
Có thể hình dung như một người vẫn sử dụng chìa khóa của căn hộ cũ sau khi căn hộ đó đã được giao cho chủ mới. Khi hệ thống tiếp tục tin rằng dữ liệu cũ vẫn còn hợp lệ, kẻ tấn công có thể lợi dụng để ghi đè hoặc điều khiển dữ liệu trong bộ nhớ kernel.
Tin tặc khai thác GhostLock như thế nào?
Việc khai thác GhostLock không yêu cầu bất kỳ cấu hình đặc biệt nào. Kẻ tấn công chỉ cần có khả năng thực thi mã với quyền người dùng thông thường trên máy Linux.
Quá trình khai thác diễn ra theo các bước:
Quá trình khai thác diễn ra theo các bước:
- Chạy một chương trình thông thường sử dụng các lời gọi tạo luồng của hệ điều hành.
- Kích hoạt cơ chế khóa Futex trong nhân Linux.
- Lợi dụng điều kiện lỗi khiến kernel truy cập vùng nhớ đã được giải phóng.
- Ghi đè dữ liệu quan trọng trong kernel.
- Điều khiển luồng thực thi của nhân hệ điều hành.
- Buộc kernel thực thi mã của kẻ tấn công với quyền root.
Trong thử nghiệm của Nebula, toàn bộ quá trình này chỉ mất khoảng 5 giây, với tỷ lệ thành công lên đến 97%.
Vì sao GhostLock đặc biệt nguy hiểm?
GhostLock nguy hiểm không chỉ vì giúp leo thang lên quyền root mà còn bởi nhiều yếu tố khác.
Trước hết, lỗ hổng không yêu cầu quyền quản trị, không cần cấu hình đặc biệt và cũng không cần truy cập mạng. Chỉ cần một chương trình thông thường chạy trên máy là đã có thể kích hoạt điều kiện khai thác.
Bên cạnh đó, GhostLock còn có khả năng thoát khỏi môi trường container. Điều này khiến các nền tảng sử dụng Docker, Kubernetes, máy chủ cloud hay hệ thống CI/CD có nguy cơ bị ảnh hưởng lớn hơn, bởi kẻ tấn công có thể bắt đầu từ một container bị xâm nhập rồi leo thang để chiếm quyền trên toàn bộ máy chủ.
Một điểm đáng chú ý khác là Nebula đã công bố mã khai thác PoC. Mặc dù hiện chưa ghi nhận chiến dịch tấn công lợi dụng GhostLock ngoài thực tế, việc PoC được công khai đồng nghĩa với việc bất kỳ ai cũng có thể nghiên cứu, chỉnh sửa và sử dụng mã khai thác này nếu hệ thống chưa được vá.
Trước hết, lỗ hổng không yêu cầu quyền quản trị, không cần cấu hình đặc biệt và cũng không cần truy cập mạng. Chỉ cần một chương trình thông thường chạy trên máy là đã có thể kích hoạt điều kiện khai thác.
Bên cạnh đó, GhostLock còn có khả năng thoát khỏi môi trường container. Điều này khiến các nền tảng sử dụng Docker, Kubernetes, máy chủ cloud hay hệ thống CI/CD có nguy cơ bị ảnh hưởng lớn hơn, bởi kẻ tấn công có thể bắt đầu từ một container bị xâm nhập rồi leo thang để chiếm quyền trên toàn bộ máy chủ.
Một điểm đáng chú ý khác là Nebula đã công bố mã khai thác PoC. Mặc dù hiện chưa ghi nhận chiến dịch tấn công lợi dụng GhostLock ngoài thực tế, việc PoC được công khai đồng nghĩa với việc bất kỳ ai cũng có thể nghiên cứu, chỉnh sửa và sử dụng mã khai thác này nếu hệ thống chưa được vá.
GhostLock là mắt xích quan trọng trong chuỗi tấn công IonStack
Nếu chỉ nhìn riêng GhostLock, nhiều người có thể cho rằng đây chỉ là một lỗ hổng "cục bộ", vì kẻ tấn công phải có quyền chạy chương trình trên máy trước. Tuy nhiên, Nebula Security đã chứng minh điều ngược lại. GhostLock chính là nửa sau của chuỗi tấn công IonStack mà công ty này công bố trước đó.
Ở giai đoạn đầu, tin tặc khai thác lỗ hổng CVE-2026-10702 trong Firefox để thực thi mã độc ngay bên trong trình duyệt và thoát khỏi cơ chế sandbox. Sau khi có được quyền thực thi mã trên hệ thống, GhostLock sẽ tiếp tục được sử dụng để leo thang lên quyền root.
Chuỗi tấn công diễn ra theo trình tự:
Người dùng nhấp vào liên kết độc hại → Khai thác lỗ hổng Firefox → Thoát khỏi sandbox → Kích hoạt GhostLock → Chiếm quyền root → Kiểm soát hoàn toàn thiết bị.
Nebula cho biết họ đã trình diễn thành công toàn bộ chuỗi khai thác này trên Firefox dành cho Android. Điều đó cho thấy một lỗ hổng vốn được coi là "chỉ khai thác cục bộ" hoàn toàn có thể trở thành một cuộc tấn công từ xa khi kết hợp với các lỗ hổng khác.
Ở giai đoạn đầu, tin tặc khai thác lỗ hổng CVE-2026-10702 trong Firefox để thực thi mã độc ngay bên trong trình duyệt và thoát khỏi cơ chế sandbox. Sau khi có được quyền thực thi mã trên hệ thống, GhostLock sẽ tiếp tục được sử dụng để leo thang lên quyền root.
Chuỗi tấn công diễn ra theo trình tự:
Người dùng nhấp vào liên kết độc hại → Khai thác lỗ hổng Firefox → Thoát khỏi sandbox → Kích hoạt GhostLock → Chiếm quyền root → Kiểm soát hoàn toàn thiết bị.
Nebula cho biết họ đã trình diễn thành công toàn bộ chuỗi khai thác này trên Firefox dành cho Android. Điều đó cho thấy một lỗ hổng vốn được coi là "chỉ khai thác cục bộ" hoàn toàn có thể trở thành một cuộc tấn công từ xa khi kết hợp với các lỗ hổng khác.
GhostLock không phải lỗ hổng Linux duy nhất được AI phát hiện
GhostLock xuất hiện trong bối cảnh năm 2026 ghi nhận hàng loạt lỗ hổng leo thang đặc quyền nghiêm trọng trên Linux.
Chỉ ít ngày trước đó, giới nghiên cứu đã công bố Bad Epoll (CVE-2026-46242), một lỗ hổng khác cũng cho phép người dùng thông thường chiếm quyền root và được phát hiện thông qua chương trình kernelCTF.
Bên cạnh đó, mô hình AI Mythos của Anthropic cũng từng phát hiện một lỗ hổng khác trong cùng khu vực mã nguồn của Linux, trong khi Copy Fail (CVE-2026-31431) đã được Cơ quan An ninh mạng và Hạ tầng Hoa Kỳ (CISA) đưa vào danh mục các lỗ hổng đang bị khai thác thực tế.
Điểm chung của các lỗ hổng này là chúng đều nằm trong những đoạn mã cũ, được sử dụng rộng rãi nhưng ít được rà soát trong nhiều năm. Sự xuất hiện của các công cụ AI như VEGA hay Mythos đang giúp các nhà nghiên cứu phát hiện ngày càng nhiều lỗi tiềm ẩn trong những thành phần tưởng chừng đã ổn định của nhân Linux.
Chỉ ít ngày trước đó, giới nghiên cứu đã công bố Bad Epoll (CVE-2026-46242), một lỗ hổng khác cũng cho phép người dùng thông thường chiếm quyền root và được phát hiện thông qua chương trình kernelCTF.
Bên cạnh đó, mô hình AI Mythos của Anthropic cũng từng phát hiện một lỗ hổng khác trong cùng khu vực mã nguồn của Linux, trong khi Copy Fail (CVE-2026-31431) đã được Cơ quan An ninh mạng và Hạ tầng Hoa Kỳ (CISA) đưa vào danh mục các lỗ hổng đang bị khai thác thực tế.
Điểm chung của các lỗ hổng này là chúng đều nằm trong những đoạn mã cũ, được sử dụng rộng rãi nhưng ít được rà soát trong nhiều năm. Sự xuất hiện của các công cụ AI như VEGA hay Mythos đang giúp các nhà nghiên cứu phát hiện ngày càng nhiều lỗi tiềm ẩn trong những thành phần tưởng chừng đã ổn định của nhân Linux.
Hệ thống nào bị ảnh hưởng?
GhostLock ảnh hưởng đến gần như toàn bộ các bản phân phối Linux sử dụng đoạn mã được đưa vào từ năm 2011.
Các hệ thống có nguy cơ cao gồm:
Các hệ thống có nguy cơ cao gồm:
- Máy chủ Linux.
- Máy tính cá nhân chạy Linux.
- Máy chủ cloud.
- Hệ thống Docker và Kubernetes.
- Môi trường nhiều người dùng
- Máy chủ CI/CD và các hệ thống chia sẻ tài nguyên.
Đối với Ubuntu, tại thời điểm công bố, một số phiên bản mới và kernel dành cho nền tảng đám mây đã được vá. Tuy nhiên, các phiên bản LTS như Ubuntu 24.04, 22.04 và 20.04 vẫn đang trong quá trình triển khai bản cập nhật hoặc tiếp tục được đánh giá.
Đã có bản vá hay chưa?
Lỗ hổng đã được khắc phục trong nhân Linux từ tháng 4 thông qua commit 3bfdc63936dd. Tuy nhiên, Nebula lưu ý rằng bản vá đầu tiên lại vô tình phát sinh thêm một lỗi khác mang mã CVE-2026-53166, có thể gây treo hệ thống trong một số trường hợp.
Do đó, người dùng không nên chỉ cập nhật lên bản kernel đầu tiên chứa bản vá GhostLock mà cần sử dụng phiên bản kernel mới nhất do nhà cung cấp phát hành, sau khi các bản sửa lỗi bổ sung đã được tích hợp đầy đủ.
Ngoài ra, hiện chưa có biện pháp giảm thiểu nào có thể loại bỏ hoàn toàn nguy cơ khai thác. Hai tùy chọn biên dịch kernel là RANDOMIZE_KSTACK_OFFSET và STATIC_USERMODE_HELPER chỉ giúp làm tăng độ khó của việc khai thác, chứ không thể thay thế bản vá chính thức.
Do đó, người dùng không nên chỉ cập nhật lên bản kernel đầu tiên chứa bản vá GhostLock mà cần sử dụng phiên bản kernel mới nhất do nhà cung cấp phát hành, sau khi các bản sửa lỗi bổ sung đã được tích hợp đầy đủ.
Ngoài ra, hiện chưa có biện pháp giảm thiểu nào có thể loại bỏ hoàn toàn nguy cơ khai thác. Hai tùy chọn biên dịch kernel là RANDOMIZE_KSTACK_OFFSET và STATIC_USERMODE_HELPER chỉ giúp làm tăng độ khó của việc khai thác, chứ không thể thay thế bản vá chính thức.
Chuyên gia khuyến nghị gì?
Để giảm thiểu nguy cơ bị khai thác GhostLock, các chuyên gia khuyến nghị:
- Cập nhật kernel lên phiên bản mới nhất do nhà cung cấp phát hành, thay vì chỉ cài đặt bản vá đầu tiên.
- Ưu tiên vá các máy chủ cloud, máy chủ dùng chung, hệ thống container và môi trường CI/CD, nơi nguy cơ khai thác cao hơn.
- Theo dõi các bản tin bảo mật từ nhà cung cấp bản phân phối Linux để xác nhận phiên bản kernel đã được khắc phục hoàn toàn.
- Hạn chế tối đa việc cho phép người dùng hoặc ứng dụng không tin cậy thực thi mã trên hệ thống.
- Tăng cường giám sát các hoạt động leo thang đặc quyền và bất thường trên máy chủ nhằm phát hiện sớm các dấu hiệu khai thác.