Important CVSS 5.5 EPSS 0.00388 🔬 Patch diffed 2026-06 archive

Executive Summary

Out-of-bounds read in Windows Telephony Service allows an authorized attacker to disclose information locally.

Overview

5.5
CVSS MEDIUM
Important
MS Severity
Not Exploited
MS Exploit Status
Less Likely
MS Exploit Likelihood
Category Information Disclosure
Released Jun 9 2026
Last Updated Jun 9 2026
Publicly Disclosed No
CISA KEV Not Listed
Known Exploits None Known
EPSS Score 0.00388 — 0.31838 percentile
NVD CVSS 5.5 MEDIUM — matches MSRC

CVSS Vector

CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N/E:U/RL:O/RC:C
ATTACK VECTOR
Local
ATTACK COMPLEXITY
Low
PRIVILEGES REQUIRED
Low
USER INTERACTION
None
SCOPE
Unchanged
CONFIDENTIALITY
High
INTEGRITY
None
AVAILABILITY
None
EXPLOIT CODE MATURITY
Unproven
REMEDIATION LEVEL
Official Fix
REPORT CONFIDENCE
Confirmed
Temporal Score: 4.8

EPSS Score

0.00388
probability of exploitation in the next 30 days
0.31838 percentile - updated 2026-08-14
View on FIRST.org

Affected Products

30 affected products
Product KB Article Severity Impact Restart Required
Windows 10 Version 1607 for 32-bit Systems 5094122 (Security Update) Important Information Disclosure Yes
Windows 10 Version 1607 for x64-based Systems 5094122 (Security Update) Important Information Disclosure Yes
Windows 10 Version 1809 for 32-bit Systems 5094123 (Security Update) Important Information Disclosure Yes
Windows 10 Version 1809 for x64-based Systems 5094123 (Security Update) Important Information Disclosure Yes
Windows 10 Version 21H2 for 32-bit Systems 5094127 (Security Update) Important Information Disclosure Yes
Windows 10 Version 21H2 for ARM64-based Systems 5094127 (Security Update) Important Information Disclosure Yes
Windows 10 Version 21H2 for x64-based Systems 5094127 (Security Update) Important Information Disclosure Yes
Windows 10 Version 22H2 for 32-bit Systems 5094127 (Security Update) Important Information Disclosure Yes
Windows 10 Version 22H2 for ARM64-based Systems 5094127 (Security Update) Important Information Disclosure Yes
Windows 10 Version 22H2 for x64-based Systems 5094127 (Security Update) Important Information Disclosure Yes
Windows 11 Version 23H2 for ARM64-based Systems 5093998 (Security Update) Important Information Disclosure Yes
Windows 11 Version 23H2 for x64-based Systems 5093998 (Security Update) Important Information Disclosure Yes
Windows 11 Version 24H2 for ARM64-based Systems 5094126 (Security Update) Important Information Disclosure Yes
Windows 11 Version 24H2 for x64-based Systems 5094126 (Security Update) Important Information Disclosure Yes
Windows 11 Version 25H2 for ARM64-based Systems 5094126 (Security Update) Important Information Disclosure Yes
Windows 11 Version 25H2 for x64-based Systems 5094126 (Security Update) Important Information Disclosure Yes
Windows 11 Version 26H1 for ARM64-based Systems 5095051 (Security Update) Important Information Disclosure Yes
Windows 11 version 26H1 for x64-based Systems 5095051 (Security Update) Important Information Disclosure Yes
Windows Server 2012 5094042 (Monthly Rollup) Important Information Disclosure Yes
Windows Server 2012 (Server Core installation) 5094042 (Monthly Rollup) Important Information Disclosure Yes
Windows Server 2012 R2 5094041 (Monthly Rollup) Important Information Disclosure Yes
Windows Server 2012 R2 (Server Core installation) 5094041 (Monthly Rollup) Important Information Disclosure Yes
Windows Server 2016 5094122 (Security Update) Important Information Disclosure Yes
Windows Server 2016 (Server Core installation) 5094122 (Security Update) Important Information Disclosure Yes
Windows Server 2019 5094123 (Security Update) Important Information Disclosure Yes
Windows Server 2019 (Server Core installation) 5094123 (Security Update) Important Information Disclosure Yes
Windows Server 2022 5094128 (Security Update) Important Information Disclosure Yes
Windows Server 2022 (Server Core installation) 5094128 (Security Update) Important Information Disclosure Yes
Windows Server 2025 5094125 (Security Update) Important Information Disclosure Yes
Windows Server 2025 (Server Core installation) 5094125 (Security Update) Important Information Disclosure Yes

Patches

10 patches
Article Type Restart
5094122 Security Update Yes
5094123 Security Update Yes
5094127 Security Update Yes
5093998 Security Update Yes
5094126 Security Update Yes
5095051 Security Update Yes
5094042 Monthly Rollup Yes
5094041 Monthly Rollup Yes
5094128 Security Update Yes
5094125 Security Update Yes

Patch Diff

ghidriff · tapisrv.dll (KB5094126)

Out-of-bounds read (CWE-125) in the Windows Telephony Server tapisrv.dll TAPI event-mask handling, local information disclosure over the Telephony RPC interface. TAPI stores per-object event state as a 31-entry DWORD array (valid index 0-30). In single sub-mask mode (request+0x10 != 0) the handler combines request+0x18/+0x1C into a 64-bit sub-mask and derives an array index via GetSubMaskIndex = floor(log2(submask)), which can be up to 63. PRE: neither the read helper nor the write helper checked idx against the 31-slot array, so a sub-mask with bit 63 set yields idx=63 and reads base[63] - 132 bytes past the last valid entry base[30]. On the read path (TGetEventMasksOrSubMasks, 6 per-object accesses) the OOB DWORD is written to request+0x14 and returned in the RPC response (4-byte disclosure of adjacent TAPI memory); the same unbounded index reaches an OOB array write on SetEventMasksOrSubMasks. IN-HOUSE ghidriff of tapisrv.dll 10.0.26100.8521 -> .8655 (Jun 9 2026, KB5094126) confirms the fix: a new GetEventMasksOrSubMasks read helper and SetEventMasksOrSubMasks add an index bound (0x1e < idx -> return 0x80000032) at 7 access points, gated behind CFR flag Feature_500158777 (TGet also references Feature_784066872). Note: our x64 24H2 diff shows Feature_500158777/784066872, differing from the circulated screenshots' Feature_768594233 (build/arch difference); the >= 0x1F bound and 0x80000032 error are identical. We ship what our diff shows.

Pre-patch version 10.0.26100.8521 Download
Post-patch version 10.0.26100.8655 Download
Function Address Change Note
GetEventMasksOrSubMasks new helper added (bounded read helper, CFR-gated) New per-object read helper used by TGetEventMasksOrSubMasks. Single sub-mask branch: idx=GetSubMaskIndex(submask); if Feature_500158777 enabled and 0x1e<idx (>=31) return 0x80000032 else *param_4=param_5[idx]. Bound absent pre-patch (base[idx] read up to base[63]).
SetEventMasksOrSubMasks code change code (index bound added, CFR-gated) Common write helper for the 6 per-object setters. Pre: param_4[GetSubMaskIndex(submask)] = value with no bound. Post: if Feature_500158777 enabled and 0x1e<idx return 0x80000032 before the write. Whole-mask loop (lVar=0x1f, 31 iterations) unchanged.
TGetEventMasksOrSubMasks code change code (read path refactored to bounded helper) Read path; 6 per-object accesses refactored through GetEventMasksOrSubMasks; references Feature_784066872 in addition to Feature_500158777. The OOB DWORD was returned via request+0x14 in the RPC response pre-patch.
Feature_500158777 new flag added (CFR gate) New CFR flag gating the idx>=0x1F bound on the shared read/write helpers.
Feature_784066872 new flag added (CFR gate) Second new CFR flag referenced on the TGetEventMasksOrSubMasks read path.
View full diff report View RCA report

Attack Path

A 64-bit TAPI sub-mask yields an array index up to 63 that reads past the 31-entry event-mask array and leaks the DWORD via RPC

Attack path for CVE-2026-42968 A 64-bit TAPI sub-mask yields an array index up to 63 that reads past the 31-entry event-mask array and leaks the DWORD via RPC 01 — ENTRY Local low-priv caller sends a crafted TAPI request to the Telephony Server RPC interface tapisrv.dll services TAPI event-mask get/set requests reachable over RPC. Single sub-mask mode is selected when request+0x10 != 0. 02 — CONTROLLED INPUT Sub-mask (request+0x18/+0x1C) sets a bit above bit 30 (e.g. bit 63) The two DWORDs are combined into a 64-bit sub-mask; GetSubMaskIndex returns floor(log2(submask)), so bit 63 -> idx=63. 03 — PATH The handler indexes the 31-entry DWORD event-mask array with idx Read path stores base[idx] into request+0x14; write path does base[idx]=value. Valid indices are 0-30. 04 — MISSING CHECK No check that idx fits the 31-slot array (CWE-125) idx=63 makes base[63] point 33 DWORDs (132 bytes) past base[30]; pre-patch neither helper validated the index. 05 — PRIMITIVE OOB DWORD returned in the RPC response -> 4-byte info disclosure (and matching OOB write on the set path) Adjacent TAPI object memory is leaked to the caller. The Jun 2026 fix adds a Feature_500158777-gated `idx>=0x1F -> return 0x80000032` bound at all 7 array-access points.

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

wxz
Diffract
z1r0