CVE-2022-21910 — Microsoft Cluster Port Driver Elevation of Privilege Vulnerability
Executive Summary
None
Overview
CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H/E:U/RL:O/RC:C
EPSS Score
Affected Products
| Product | KB Article | Severity | Impact | Restart Required |
|---|---|---|---|---|
| Windows Server 2016 | 5009546 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows Server 2016 (Server Core installation) | 5009546 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows Server 2019 | 5009557 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows Server 2019 (Server Core installation) | 5009557 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows Server 2022 | 5009555 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows Server 2022 (Server Core installation) | 5009555 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows Server, version 20H2 (Server Core Installation) | 5009543 (Security Update) |
Important | Elevation of Privilege | Yes |
Patches
| Article | Type | Restart |
|---|---|---|
5009546 |
Security Update | Yes |
5009557 |
Security Update | Yes |
5009555 |
Security Update | Yes |
5009543 |
Security Update | Yes |
Patch Diff
Multiple input-validation flaws (CWE-476 NULL pointer dereference / CWE-125 out-of-bounds read) in the Microsoft Cluster Port driver clusport.sys, reachable via the low-privilege-openable \Device\CLUSPORT link -> local kernel DoS (and MSRC-rated EoP). The driver fails to validate fields of the user input buffer (fault-domain / network-target / path add IOCTLs) before dereferencing/indexing, so crafted input triggers a NULL deref or reads past the buffer, bugchecking the kernel. IN-HOUSE ghidriff of clusport.sys 10.0.17763.1192 -> .2452 (Jan 11 2022) confirms the fix: new validation functions ClusPortValidateFaultDomain and ClusPortValidateNetworkTarget are added and called from ClusPortAddNetworkPath / ClusPortSetFDInfo, and size arithmetic is hardened with RtlULongAdd (checked add) - validating the input buffer before use.
| Function | Address | Change | Note |
|---|---|---|---|
ClusPortValidateFaultDomain |
added |
added (input validation) | New validator for the fault-domain input structure, called before the data is used. |
ClusPortValidateNetworkTarget |
added |
added (input validation) | New validator for the network-target input, added by the fix. |
ClusPortAddNetworkPath / ClusPortSetFDInfo |
code change |
code (call validators + checked add) | IOCTL handlers reworked to call the new validators and use RtlULongAdd (checked) for size arithmetic before dereferencing/indexing the user buffer - closing the NULL deref / OOB read. |
Attack Path
Unvalidated CLUSPORT IOCTL input is dereferenced/indexed, bugchecking the kernel
Derived from the patch delta: the checks added by the vendor identify which fields crossed a trust boundary unvalidated. Reachability and privilege are taken from the call chain in the RCA report.
Known Exploits
Acknowledgments
JIWO Technology Co., Ltd