Một **lỗ hổng CVE** nghiêm trọng mới được công bố trong **Active Directory Certificate Services** (AD CS), có tên mã là **Certighost**, đã cho phép một người dùng miền có đặc quyền thấp mạo danh **Domain Controller** và chiếm quyền toàn bộ miền Active Directory. Lỗ hổng này được định danh là **CVE-2026-54121** và đã được vá trong các bản cập nhật bảo mật tháng 7 năm 2026 của Microsoft, sau khi được tiết lộ một cách có trách nhiệm vào đầu năm nay.
AD CS là hệ thống cơ sở hạ tầng khóa công khai (PKI) của Microsoft, chịu trách nhiệm cấp phát các chứng chỉ **X.509** được sử dụng cho mã hóa, ký và xác thực trên toàn bộ miền. Các chứng chỉ này hoạt động như thẻ ID kỹ thuật số, được Cơ quan cấp chứng chỉ (CA) ký, liên kết khóa công khai với một danh tính mà các dịch vụ khác có thể tin cậy.
Phân tích **lỗ hổng CVE** và Cơ chế Khai thác
Một trong những trường hợp sử dụng chính của AD CS là xác thực **Kerberos** dựa trên chứng chỉ, còn được gọi là **PKINIT**. Trong quy trình này, một máy khách yêu cầu chứng chỉ từ CA và sau đó trình bày chứng chỉ đó cho Key Distribution Center (KDC) để nhận một vé Kerberos.
KDC thực hiện việc ánh xạ dữ liệu danh tính của chứng chỉ tới một tài khoản Active Directory. Chính quá trình ánh xạ này là nơi **Certighost** phát sinh và bị lỗi, mở ra con đường cho kẻ tấn công thực hiện **tấn công mạng** nghiêm trọng.
Cơ chế Xác thực và Lỗ hổng trong Quá trình “Chase”
Trong một số kịch bản cấp phát chứng chỉ nhất định, CA thực hiện một hoạt động tra cứu thư mục thứ cấp được gọi là **“chase”**. Quá trình “chase” này được kiểm soát bởi hai thuộc tính yêu cầu quan trọng:
- `cdc` (client domain controller): Thuộc tính này chỉ định máy chủ sẽ được truy vấn để biết thông tin liên quan đến Domain Controller của máy khách.
- `rmd` (request machine domain): Thuộc tính này xác định mục tiêu là máy khách hoặc máy tính yêu cầu chứng chỉ.
Mã CA dễ bị tổn thương đã tin tưởng bất kỳ máy chủ nào được cung cấp trong thuộc tính `cdc` mà không cần xác minh rằng đó có phải là một **Domain Controller** thực sự hay không. Điều này tạo ra một điểm yếu lớn trong quy trình xác thực.
Quy trình Mạo danh và Chiếm quyền
Kẻ tấn công có thể dựng lên các dịch vụ **SMB**, **LDAP**, và **LSA** giả mạo trên máy của chính mình. Sau đó, chúng có thể chỉ định CA tới máy chủ giả mạo này thông qua thuộc tính `cdc`.
Máy chủ giả mạo này sẽ trả về dữ liệu danh tính được chế tạo, bao gồm SID (Security Identifier) của một **Domain Controller** hợp lệ và tên máy chủ DNS cho mục tiêu `rmd`. Điều này cho phép kẻ tấn công mạo danh một DC hợp pháp.
Kết hợp với một tài khoản máy tính được tạo thông qua cài đặt mặc định **`ms-DS-MachineAccountQuota`**. Cài đặt này cho phép bất kỳ người dùng nào đăng ký tối đa **10** tài khoản máy tính.
Máy chủ giả mạo của kẻ tấn công có thể vượt qua các kiểm tra xác thực của CA như một “chủ thể miền” hợp lệ, mặc dù nó không phải là **Domain Controller** mà nó tuyên bố. Một khi CA cấp chứng chỉ mang dữ liệu danh tính của DC bị mạo danh, kẻ tấn công có thể xác thực như chính **Domain Controller** đó.
Tác động của **tấn công mạng** và Chiếm quyền Domain
Vì các **Domain Controller** nắm giữ quyền sao chép thư mục, quyền truy cập này cho phép thực hiện một cuộc **tấn công DCSync**. **DCSync** là một kỹ thuật tấn công cho phép kẻ tấn công yêu cầu các dữ liệu bí mật nhạy cảm, bao gồm băm tài khoản **`krbtgt`**.
Tài khoản **`krbtgt`** là tài khoản dịch vụ quan trọng trong **Active Directory** được sử dụng để phát hành vé ủy quyền Kerberos. Việc chiếm được băm tài khoản này sẽ cấp cho kẻ tấn công toàn quyền kiểm soát miền, dẫn đến một cuộc **chiếm quyền điều khiển** hoàn toàn.
Giải pháp và **Bản vá bảo mật** của Microsoft
Bản vá tháng 7 năm 2026 của Microsoft đã giới thiệu một chức năng xác thực mới, **`_ValidateChaseTargetIsDC`**, được điều khiển bởi một cờ dịch vụ (Feature_3185813818).
Trước khi CA theo dõi mục tiêu `cdc`, nó hiện thực hiện các kiểm tra sau:
- Xác minh rằng mục tiêu là một máy chủ DNS được ủy quyền (authoritative DNS server).
- Kiểm tra xem mục tiêu có phải là **Domain Controller** trong miền của CA hay không.
- Xác nhận rằng máy chủ `cdc` mà nó đang kết nối không phải là một địa chỉ IP nội bộ (ví dụ: loopback) trừ khi nó là chính CA đó.
Chỉ sau khi các kiểm tra này vượt qua, CA mới tiếp tục với quá trình “chase” và cấp phát chứng chỉ. Các tổ chức nên ưu tiên triển khai **bản vá bảo mật** này càng sớm càng tốt để bảo vệ hệ thống của mình trước **lỗ hổng CVE** này.
Các biện pháp giảm thiểu tạm thời và khuyến nghị
Các tổ chức chưa thể triển khai bản cập nhật tháng 7 ngay lập tức có thể vô hiệu hóa tính năng “chase fallback” dễ bị tổn thương bằng cách sử dụng cấu hình sau. Tuy nhiên, đây chỉ là một biện pháp giảm thiểu tạm thời chứ không phải là một bản sửa lỗi hoàn chỉnh.
certutil -setreg CA\EnableChaseClientDC 0Nếu cờ này được bật lại sau đó (thông qua chính sách, tạo ảnh hệ thống hoặc hành động của quản trị viên), CA sẽ lại dễ bị khai thác. Các tổ chức cần thử nghiệm biện pháp này trong môi trường dàn dựng trước, vì bất kỳ quy trình làm việc hợp pháp nào dựa vào “chase fallback” đều có thể bị ảnh hưởng.
Một mã khai thác thử nghiệm (Proof-of-Concept) cho **CVE-2026-54121** hiện có sẵn trên GitHub. Các tổ chức đang chạy **AD CS** nên ưu tiên vá lỗi ngay lập tức và kiểm tra cài đặt **`EDITF_ENABLECHASECLIENTDC`** trên tất cả các Enterprise CA của mình. Việc nhanh chóng áp dụng **bản vá bảo mật** là cực kỳ quan trọng để ngăn chặn các cuộc **tấn công mạng** tiềm tàng.
Tham khảo thêm chi tiết về lỗ hổng tại Gist GitHub hoặc mã POC tại GitHub của Aniq Fakhrul.










