微软在6月13日发布了Windows 10(KB5027215等)和Windows 11(KB5027231)的补丁星期二更新,这是本月的第二个星期二。该更新解决了安全问题,以及其他错误。除了操作系统安全,"补丁星期二 "还修复了Office 2013和2016的安全问题,包括32位和64位版本。该公司还宣布了关于Windows Hello的全屏通知,现在将在Windows 11以及Windows 10上显示。
而正如通常的情况一样,也有一些重大的错误影响着它。在Windows 11上,"周二补丁 "导致Malwarebytes有点乱,并阻止了谷歌浏览器。同时,用户报告说,Windows 10的更新出现了安装问题。
微软现在还修补了一个与6月13日的.NET框架运行时间更新如何影响X.509证书的导入有关的问题。与之前的功能不同,现在额外的验证可能导致CryptographicException错误。
变化描述
在2023年6月13日的变化之前,当.NET Framework和.NET遇到需要导入的二进制证书blob时,.NET Framework和.NET通常将blob的验证和导入委托给底层操作系统。例如,在Windows上,.NET Framework和.NET通常依靠PFXImportCertStore API进行验证和导入。
从2023年6月13日的变化来看,当.NET Framework和.NET收到要导入的二进制证书blob时,.NET Framework和.NET在某些情况下会在将blob交给底层操作系统之前进行额外的验证。这种额外的验证会执行一系列启发式检查,以确定传入的证书在导入时是否会恶意消耗资源。由于这是底层操作系统通常会执行的额外验证,它可能会阻止在2023年6月13日的变化之前成功导入的证书组。
还详细介绍了该问题的症状:
症状表现
当使用X509Certificate、X509Certificate2或X509Certificate2Collection类导入包含私钥的PKCS#12 blob时,调用应用程序可能会观察到以下异常。
System.Security.Cryptography.CryptographicException: 没有提供密码的PKCS12(PFX)已经超过了允许的最大迭代次数。
该故障影响到已导出[例如,通过X509Certificate.Export(X509ContentType.Pfx)]的没有密码的PKCS#12 blobs。该故障可能会非决定性地发生。
在受影响的系统上已经部署了一个解决问题的办法,但该公司表示,为解决这个问题而进行的任何注册表修改都必须被恢复:
解决方法
微软已经发布了.NET框架和.NET的更新安装程序来解决这个问题。这些安装程序可以应用于受影响的机器,无论该机器是否已经应用了2023年6月13日的原始.NET框架和.NET安全更新。
重要的是
如果你以前使用KB5025823中记录的注册表开关,改变.NET应用程序导入X.509证书的方式来解决这个问题,请在安装新的补丁之前删除这些注册表开关。在高位命令提示符下运行以下两个命令,删除注册表开关。
reg delete "HKLM\Software\Microsoft\.NETFramework" /v Pkcs12UnspecifiedPasswordIterationLimit /reg:32
reg delete "HKLM\SoftwareMicrosoft\.NETFramework" /v Pkcs12UnspecifiedPasswordIterationLimit /reg:64
这些问题在Windows 10以及Windows 11上得到解决,更多的是通过以下带外更新,可以从微软更新目录网站手动下载:
Product Version | Update | |
---|---|---|
Windows 11, version 22H2 | ||
.NET Framework 4.8.1 | Catalog | 5028576 |
Windows 11, version 21H2 | ||
.NET Framework 4.8 | Catalog | 5028582 |
.NET Framework 4.8.1 | Catalog | 5028575 |
Windows Server 2022 | ||
.NET Framework 4.8 | Catalog | 5028584 |
.NET Framework 4.8.1 | Catalog | 5028578 |
Azure Stack HCI, version 22H2 | ||
.NET Framework 4.8 | Catalog | 5028584 |
Azure Stack HCI, version 21H2 | ||
.NET Framework 4.8 | Catalog | 5028584 |
Windows 10 Version 22H2 | ||
.NET Framework 4.8 | Catalog | 5028579 |
.NET Framework 4.8.1 | Catalog | 5028574 |
Windows 10 Version 21H2 | ||
.NET Framework 4.8 | Catalog | 5028579 |
.NET Framework 4.8.1 | Catalog | 5028574 |
Windows 10 1809 (October 2018 Update) and Windows Server 2019 | ||
.NET Framework 4.7.2 | Catalog | 5028588 |
.NET Framework 4.8 | Catalog | 5028581 |
Windows 10 1607 (Anniversary Update) and Windows Server 2016 | ||
.NET Framework 4.8 | Catalog | 5028580 |
Windows Embedded 8.1 and Windows Server 2012 R2 | ||
.NET Framework 4.6.2, 4.7, 4.7.1, 4.7.2 | Catalog | 5028590 |
.NET Framework 4.8 | Catalog | 5028585 |
Windows Embedded 8 and Windows Server 2012 | ||
.NET Framework 4.6.2, 4.7, 4.7.1, 4.7.2 | Catalog | 5028589 |
.NET Framework 4.8 | Catalog | 5028583 |
Windows Embedded 7 Standard and Windows Server 2008 R2 SP1 | ||
.NET Framework 4.6.2, 4.7, 4.7.1, 4.7.2 | Catalog | 5028591 |
.NET Framework 4.8 | Catalog | 5028586 |
all supported Windows versions | ||
.NET 6.0.19 | Catalog | 5028613 |
.NET 7.0.8 | Catalog | 5028614 |
你可以在微软官方网站的这个页面(KB5028608)上找到关于这个问题的更多细节: