Microsoft đã công bố khắc phục một lỗ hổng leo thang đặc quyền cục bộ nghiêm trọng trong dịch vụ WalletService trên hệ điều hành Windows. Lỗ hổng này cho phép một người dùng tiêu chuẩn đạt được quyền kiểm soát hoàn toàn trên máy tính bị ảnh hưởng, hoạt động dưới tài khoản NT AUTHORITY\SYSTEM. Đây là một rủi ro bảo mật đáng kể mà các tổ chức cần chú ý.
Mô Tả Chi Tiết Lỗ Hổng CVE-2026-49176
WalletService và Bản Chất Lỗ Hổng
Cụ thể, lỗ hổng CVE-2026-49176 này ảnh hưởng đến WalletService, một thành phần LocalSystem được sử dụng bởi API Windows Wallet WinRT công khai. Thành phần này có vai trò quản lý các chức năng liên quan đến ví điện tử trên hệ thống Windows. Microsoft đã xếp loại mức độ nghiêm trọng của vấn đề này là “Important”, gán điểm CVSS là 7.8. Điều này nhấn mạnh tiềm năng gây hại của nó.
Lỗ hổng được phân loại thuộc nhóm quản lý đặc quyền không đúng cách (improper privilege management) và phân giải đường dẫn tệp không an toàn (unsafe file path resolution). Việc này cho thấy sự thiếu sót trong cách dịch vụ xử lý quyền truy cập và đường dẫn tệp do người dùng cung cấp. Các nhà nghiên cứu Chen Le Qi và Mochi Nishimiya từ STAR Labs SG đã được ghi nhận đã phát hiện và báo cáo lỗ hổng này.
Cơ Chế Khởi Phát Khai Thác
Cuộc tấn công bắt đầu khi một người dùng có đặc quyền thấp thay đổi vị trí thư mục “Documents” đã biết của họ. Đây là một thư mục tiêu chuẩn trên Windows mà người dùng có thể dễ dàng cấu hình lại đường dẫn. WalletService xử lý các yêu cầu API của Wallet bằng cách sử dụng đường dẫn Documents của người gọi. Sau đó, dịch vụ ngừng mạo danh người dùng và tiếp tục chạy với đặc quyền LocalSystem.
Tiếp theo, dịch vụ nối thêm một tên thư mục Wallet cố định vào đường dẫn đã bị sửa đổi. Sau đó, nó cố gắng mở một tệp có tên wallet.db với các đặc quyền nâng cao của tài khoản LocalSystem. Tình huống này tạo ra một ranh giới tin cậy (trust boundary) đáng kể. Mặc dù dịch vụ hoạt động dưới tài khoản LocalSystem với đặc quyền cao nhất, đường dẫn đến cơ sở dữ liệu của nó lại có thể bị ảnh hưởng bởi một người dùng tiêu chuẩn thông qua khả năng ánh xạ lại thư mục Documents của người dùng.
Sự mất cân bằng giữa đặc quyền thực thi của dịch vụ và khả năng kiểm soát đường dẫn dữ liệu bởi người dùng thông thường chính là kẽ hở trọng yếu. Kẻ tấn công có thể lợi dụng điều này để thiết lập một thư mục Wallet độc hại. Sau đó, chúng đặt một cơ sở dữ liệu Extensible Storage Engine (ESE) được tạo đặc biệt vào bên trong thư mục này trước khi kích hoạt dịch vụ. Điều này biến đường dẫn dữ liệu tưởng chừng vô hại thành một vector tấn công mạnh mẽ.
Kỹ Thuật Khai Thác và Chiếm Quyền Điều Khiển
Vai Trò của ESE Persisted Callbacks
API Wallet công khai cung cấp một con đường cho cuộc tấn công. Một người dùng tiêu chuẩn có thể yêu cầu một kho Wallet và liệt kê các mục Wallet. Hành động này thúc đẩy WalletService khởi tạo cơ sở dữ liệu của nó. Mặc dù các nhà nghiên cứu phát hiện ra rằng việc kích hoạt trực tiếp các thành phần Wallet riêng tư bị hạn chế, API công khai được hỗ trợ vẫn dẫn đến quy trình khởi tạo đặc quyền tương tự. Đây là một điểm mấu chốt trong việc khai thác lỗ hổng CVE-2026-49176.
Vấn đề chính nằm ở tính năng ESE persisted callbacks. Các cơ sở dữ liệu ESE có khả năng chứa siêu dữ liệu. Siêu dữ liệu này có thể hướng dẫn công cụ cơ sở dữ liệu tải một tệp DLL và gọi một hàm được xuất khẩu cụ thể. Tính năng này thường được sử dụng trong các cơ sở dữ liệu đáng tin cậy để mở rộng chức năng hoặc tích hợp với các hệ thống khác một cách an toàn.
Mặc dù tính năng ESE persisted callbacks được thiết kế cho các cơ sở dữ liệu đáng tin cậy, WalletService lại cho phép các callback được duy trì trước khi mở một cơ sở dữ liệu được cung cấp qua một đường dẫn do người dùng kiểm soát. Đây là một sơ hở nghiêm trọng. Nó bỏ qua cơ chế bảo mật cơ bản bằng cách xử lý một nguồn dữ liệu không đáng tin cậy như thể nó an toàn.
Khai Thác và Chiếm Quyền SYSTEM
Một kẻ tấn công có thể tạo một tệp wallet.db chứa bảng Cards cần thiết và một tham chiếu callback. Tham chiếu này sẽ trỏ đến một tệp DLL mà chúng kiểm soát. Khi WalletService mở cơ sở dữ liệu độc hại này với đặc quyền LocalSystem, công cụ ESE sẽ phân giải callback. Sau đó, nó tải tệp DLL của kẻ tấn công vào bên trong tiến trình WalletService. Thông thường, tiến trình này là một **svchost.exe** đang chạy dưới quyền SYSTEM.
Điều này cấp quyền thực thi mã ở mức đặc quyền cục bộ cao nhất, tức là quyền SYSTEM. Với quyền này, kẻ tấn công có thể thực hiện bất kỳ hành động nào trên hệ thống bị xâm nhập, bao gồm cài đặt phần mềm độc hại, sửa đổi cấu hình hệ thống hoặc đánh cắp dữ liệu. Việc chiếm quyền điều khiển ở cấp độ SYSTEM cục bộ mang lại khả năng kiểm soát tuyệt đối đối với thiết bị.
Nhà nghiên cứu David Carlier từ GitHub đã minh họa cách một tệp DLL được tải có thể xác minh ngữ cảnh SYSTEM của nó. Sau đó, nó tiêm một SYSTEM token vào phiên desktop đang hoạt động, tạo ra một cửa sổ nhắc lệnh tương tác NT AUTHORITY\SYSTEM. Minh chứng này cho thấy mức độ nghiêm trọng của lỗ hổng và khả năng khai thác thực tế của nó. Tham khảo chi tiết tại: Hướng dẫn khai thác CVE-2026-49176.
Đáng chú ý, khai thác này không yêu cầu lỗi hỏng bộ nhớ (memory corruption), điều kiện chạy đua (race condition) hoặc đặc quyền quản trị viên. Nó chỉ dựa vào việc WalletService tin tưởng một cơ sở dữ liệu nằm trong một đường dẫn có nguồn gốc từ thư mục Documents đã được chuyển hướng của người dùng tiêu chuẩn. Điều này làm cho việc khai thác trở nên đơn giản và dễ thực hiện hơn.
Biện Pháp Giảm Thiểu và Phát Hiện Lỗ Hổng CVE-2026-49176
Bản Vá Bảo Mật của Microsoft
Để giảm thiểu lỗ hổng CVE-2026-49176 này, bản cập nhật bảo mật tháng 7 năm 2026 của Microsoft đã vô hiệu hóa đường dẫn cơ sở dữ liệu WalletService kế thừa bị ảnh hưởng. Việc này thông qua một tính năng dịch vụ được gọi là WalletServiceRedirectionGuard. Tính năng này đảm bảo rằng dịch vụ WalletService không còn tin cậy vào các đường dẫn cơ sở dữ liệu có thể bị thao túng bởi người dùng.
Trên các hệ thống đã được vá lỗi, WalletService vẫn có thể tạo một thư mục Wallet rỗng. Tuy nhiên, nó sẽ không mở tệp wallet.db từ các đường dẫn không tin cậy. Dịch vụ cũng sẽ không tạo các tệp hỗ trợ ESE, thay đổi quyền thư mục, hoặc xử lý các callback được duy trì từ các nguồn không xác định. Điều này ngăn chặn kẻ tấn công lợi dụng tính năng ESE persisted callbacks để chiếm quyền điều khiển hệ thống.
Các đội ngũ bảo mật được khuyến nghị áp dụng các bản vá bảo mật của Microsoft kịp thời. Việc cập nhật hệ thống là bước cơ bản và quan trọng nhất để bảo vệ khỏi các lỗ hổng đã biết. Các thông tin chi tiết về CVE này có thể được tìm thấy trên National Vulnerability Database (NVD).
Chỉ Dẫn Giám Sát và Phát Hiện (IoC)
Ngoài việc áp dụng các bản vá, các đội ngũ bảo mật nên giám sát hệ thống để phát hiện các dấu hiệu khai thác. Các chỉ số xâm nhập (Indicators of Compromise – IoC) có thể bao gồm:
- Những thay đổi bất thường đối với ánh xạ thư mục Documents của từng người dùng.
- Việc WalletService truy cập tệp wallet.db bên ngoài các vị trí hồ sơ người dùng mong đợi.
- Các tiến trình svchost.exe được WalletService lưu trữ tải các tệp DLL từ các thư mục có thể ghi của người dùng.
- Sự hiện diện của các dịch vụ SYSTEM có thời gian tồn tại ngắn.
- Các shell lệnh được khởi chạy bởi SYSTEM trong các phiên tương tác.
Việc theo dõi chặt chẽ các hành vi này sẽ giúp phát hiện sớm các nỗ lực khai thác lỗ hổng CVE-2026-49176 và giảm thiểu rủi ro bảo mật cho hệ thống. Một chiến lược bảo mật toàn diện luôn bao gồm cả việc vá lỗi định kỳ và giám sát liên tục.










