-
09/04/2020
-
142
-
2.047 bài viết
Lỗ hổng Windows WalletService cho phép leo thang đặc quyền lên SYSTEM trên Windows 11
Các nhà nghiên cứu an ninh mạng vừa công bố một lỗ hổng leo thang đặc quyền mới trong Windows WalletService, dịch vụ quản lý ví điện tử tích hợp trên Windows. Lỗ hổng có mã CVE-2026-49176 cho phép một người dùng thông thường chiếm quyền NT AUTHORITY\SYSTEM.
Ảnh: cybersecuritynews
Microsoft đánh giá đây là lỗ hổng ở mức Important với điểm CVSS 7,8/10, đồng thời đã phát hành bản vá để khắc phục. Mặc dù kẻ tấn công cần có khả năng đăng nhập vào máy tính trước khi khai thác, lỗ hổng vẫn được đánh giá là rất nguy hiểm bởi sau khi thành công, chúng có thể kiểm soát hoàn toàn hệ thống.
Windows WalletService là gì?
Windows WalletService là dịch vụ nền hỗ trợ tính năng Windows Wallet trên Windows, cho phép các ứng dụng lưu trữ và quản lý các loại thẻ kỹ thuật số như thẻ thanh toán, vé điện tử, thẻ thành viên hoặc các thông tin định danh khác.
Dịch vụ này cung cấp API Windows.ApplicationModel.Wallet để các ứng dụng có thể truy cập dữ liệu ví điện tử. Đáng chú ý, API này có thể được gọi bởi bất kỳ tài khoản người dùng thông thường nào thông qua hàm WalletManager.RequestStoreAsync() và chính điều này đã trở thành điểm khởi đầu của chuỗi khai thác.
Dịch vụ này cung cấp API Windows.ApplicationModel.Wallet để các ứng dụng có thể truy cập dữ liệu ví điện tử. Đáng chú ý, API này có thể được gọi bởi bất kỳ tài khoản người dùng thông thường nào thông qua hàm WalletManager.RequestStoreAsync() và chính điều này đã trở thành điểm khởi đầu của chuỗi khai thác.
Lỗ hổng CVE-2026-49176 là gì?
- Mã lỗ hổng: CVE-2026-49176
- Điểm CVSS: 7,8 (High)
- Mức độ: Important
- Loại lỗ hổng: Local Privilege Escalation
- CWE liên quan:
- CWE-269: Improper Privilege Management
- CWE-59: Improper Link Resolution Before File Access
Nguyên nhân được đánh giá xuất phát từ việc WalletService tin tưởng đường dẫn thư mục Documents do người dùng kiểm soát, sau đó lại mở cơ sở dữ liệu bằng quyền LocalSystem mà không xác minh đầy đủ tính hợp lệ của dữ liệu.Tức là dịch vụ đã vô tình vượt qua ranh giới phân quyền, khiến dữ liệu do người dùng kiểm soát được xử lý với quyền cao nhất của hệ thống.
Cơ chế khai thác hoạt động như thế nào?
Để khai thác lỗ hổng, kẻ tấn công trước hết tạo một cơ sở dữ liệu wallet.db giả mạo chứa mã độc dưới dạng một DLL được thiết lập để tự động được gọi khi cơ sở dữ liệu được mở.
Sau đó, chúng thay đổi đường dẫn thư mục Documents của chính tài khoản người dùng sang vị trí chứa cơ sở dữ liệu độc hại. Đây là thao tác mà người dùng thông thường hoàn toàn có thể thực hiện thông qua cơ chế SHSetKnownFolderPath của Windows.
Khi ứng dụng hoặc người dùng gọi API Wallet, WalletService sẽ khởi động và trước tiên sử dụng quyền của người dùng để xác định vị trí thư mục Documents. Tuy nhiên, ngay sau đó dịch vụ chuyển trở lại chạy với quyền LocalSystem rồi mở tệp wallet.db tại vị trí do người dùng chỉ định. Do cơ sở dữ liệu đã được cài sẵn callback độc hại, Windows sẽ tự động tải DLL của kẻ tấn công vào tiến trình WalletService đang chạy với quyền SYSTEM.
Mã độc sau đó kiểm tra xem đã chạy dưới quyền SYSTEM hay chưa. Nếu thành công, nó tạo một dịch vụ Windows tạm thời để lấy token SYSTEM hợp lệ, sao chép token này rồi sử dụng CreateProcessAsUserW để khởi chạy cmd.exe dưới quyền NT AUTHORITY\SYSTEM, qua đó chiếm toàn quyền điều khiển máy tính.
Toàn bộ quá trình chỉ yêu cầu tài khoản người dùng thông thường, không cần quyền quản trị và cũng không khai thác lỗi thực thi mã từ xa.
Sau đó, chúng thay đổi đường dẫn thư mục Documents của chính tài khoản người dùng sang vị trí chứa cơ sở dữ liệu độc hại. Đây là thao tác mà người dùng thông thường hoàn toàn có thể thực hiện thông qua cơ chế SHSetKnownFolderPath của Windows.
Khi ứng dụng hoặc người dùng gọi API Wallet, WalletService sẽ khởi động và trước tiên sử dụng quyền của người dùng để xác định vị trí thư mục Documents. Tuy nhiên, ngay sau đó dịch vụ chuyển trở lại chạy với quyền LocalSystem rồi mở tệp wallet.db tại vị trí do người dùng chỉ định. Do cơ sở dữ liệu đã được cài sẵn callback độc hại, Windows sẽ tự động tải DLL của kẻ tấn công vào tiến trình WalletService đang chạy với quyền SYSTEM.
Mã độc sau đó kiểm tra xem đã chạy dưới quyền SYSTEM hay chưa. Nếu thành công, nó tạo một dịch vụ Windows tạm thời để lấy token SYSTEM hợp lệ, sao chép token này rồi sử dụng CreateProcessAsUserW để khởi chạy cmd.exe dưới quyền NT AUTHORITY\SYSTEM, qua đó chiếm toàn quyền điều khiển máy tính.
Toàn bộ quá trình chỉ yêu cầu tài khoản người dùng thông thường, không cần quyền quản trị và cũng không khai thác lỗi thực thi mã từ xa.
Vì sao lỗ hổng này nguy hiểm?
Điểm đáng khá quan ngại là WalletService đã sử dụng dữ liệu do người dùng kiểm soát để xác định vị trí cơ sở dữ liệu nhưng lại xử lý dữ liệu đó sau khi đã chuyển sang quyền SYSTEM. Điều này tạo ra một lỗi vượt ranh giới tin cậy, cho phép mã độc được thực thi với đặc quyền cao nhất của Windows.
Sau khi giành được quyền SYSTEM, kẻ tấn công có thể:
Sau khi giành được quyền SYSTEM, kẻ tấn công có thể:
- Vô hiệu hóa hoặc vượt qua nhiều cơ chế bảo mật của Windows.
- Cài đặt malware hoặc rootkit hoạt động với quyền cao nhất.
- Truy cập dữ liệu của mọi người dùng trên máy.
- Đánh cắp thông tin đăng nhập và token xác thực.
- Duy trì quyền truy cập lâu dài vào hệ thống.
- Kết hợp với các lỗ hổng khác để mở rộng phạm vi tấn công trong mạng nội bộ.
Đây là kiểu lỗ hổng thường được sử dụng ở giai đoạn sau của chuỗi tấn công, khi tin tặc đã có chỗ đứng ban đầu trên thiết bị.
Phạm vi ảnh hưởng
Lỗ hổng ảnh hưởng đến các hệ thống Windows có WalletService được kích hoạt. Các máy tính cá nhân dùng chung, máy chủ Terminal Services, máy trạm doanh nghiệp và các thiết bị Windows 11 có nhiều người dùng đăng nhập được đánh giá có nguy cơ cao hơn, bởi kẻ tấn công chỉ cần sở hữu một tài khoản người dùng thông thường để bắt đầu khai thác. Hiện chưa có dấu hiệu cho thấy lỗ hổng đang bị khai thác rộng rãi ngoài thực tế, tuy nhiên Microsoft đã phát hành bản vá nhằm ngăn chặn nguy cơ này.
Microsoft đã khắc phục như thế nào?
Microsoft đã bổ sung cơ chế bảo vệ mang tên Feature_Servicing_WalletServiceRedirectionGuard. Sau khi cập nhật, WalletService vẫn tạo thư mục Wallet như trước, nhưng sẽ không còn mở cơ sở dữ liệu do người dùng chuyển hướng tới, đồng thời cũng không thực thi callback hoặc tải DLL từ cơ sở dữ liệu không đáng tin cậy.
Các bản dựng Windows đã được vá từ Build 26200.8875 trở lên sẽ không còn bị ảnh hưởng bởi kỹ thuật khai thác này.
Các bản dựng Windows đã được vá từ Build 26200.8875 trở lên sẽ không còn bị ảnh hưởng bởi kỹ thuật khai thác này.
Khuyến nghị dành cho quản trị viên và doanh nghiệp
Các chuyên gia khuyến nghị tổ chức và doanh nghiệp cần ưu tiên cập nhật các bản vá bảo mật mới nhất của Microsoft, đặc biệt trên các máy tính Windows 11 có nhiều người dùng hoặc các hệ thống chia sẻ tài nguyên.
Ngoài việc cập nhật bản vá, đội ngũ quản trị nên tăng cường giám sát các dấu hiệu bất thường như việc người dùng thay đổi vị trí thư mục Documents, tiến trình WalletService (svchost.exe) tải DLL từ các thư mục thuộc hồ sơ người dùng, hoặc các dịch vụ Windows được tạo rồi xóa chỉ trong thời gian rất ngắn. Đây đều là những chỉ dấu có thể liên quan đến quá trình khai thác lỗ hổng.
Các hệ thống EDR/XDR cũng nên được cấu hình để cảnh báo khi xuất hiện các tiến trình cmd.exe hoặc các tiến trình tương tác khác được khởi chạy trực tiếp dưới quyền NT AUTHORITY\SYSTEM mà không có hoạt động quản trị hợp lệ đi kèm.
Ngoài việc cập nhật bản vá, đội ngũ quản trị nên tăng cường giám sát các dấu hiệu bất thường như việc người dùng thay đổi vị trí thư mục Documents, tiến trình WalletService (svchost.exe) tải DLL từ các thư mục thuộc hồ sơ người dùng, hoặc các dịch vụ Windows được tạo rồi xóa chỉ trong thời gian rất ngắn. Đây đều là những chỉ dấu có thể liên quan đến quá trình khai thác lỗ hổng.
Các hệ thống EDR/XDR cũng nên được cấu hình để cảnh báo khi xuất hiện các tiến trình cmd.exe hoặc các tiến trình tương tác khác được khởi chạy trực tiếp dưới quyền NT AUTHORITY\SYSTEM mà không có hoạt động quản trị hợp lệ đi kèm.