注意
- 发布日期:
2020 年 8 月 11 日 - 版本:
.NET Framework 4.8
摘要
安全改进
当运行在 IIS 上的 ASP.NET 或 .NET Framework 网络应用程序不正确地允许访问缓存文件时,存在特权提升漏洞。 成功利用此漏洞的攻击者可获得限制文件的访问权限。 为了利用此漏洞,攻击者需要向受影响的服务器发送经特殊设计的请求。 此更新通过更改 ASP.NET 和 .NET Framework 处理请求的方式来修复此漏洞。
若要了解有关漏洞的更多信息,请参阅以下常见漏洞和披露 (CVE)。
质量与可靠性改进
| CLR1 | - .NET Framework 4.8 中的更改回归了某些 EnterpriseServices 方案,其中单线程单元对象可能被视为多线程单元并导致阻塞失败。 此更改现在可以正确识别单线程单元对象本身,并避免此失败。 - 解决了具有 IBC 配置文件数据的程序集中导致 Ngen 工作进程崩溃并回退到完整的本机映像的问题。 - 解决了线程中止传递期间可能发生的罕见崩溃问题。 |
|---|---|
| SQL | - SqlBulkCopy.WriteToServer 可能会导致内存中 SQL 表的事务失败。 客户端可能会看到异常,并显示消息“执行超时已过期。 操作完成前超时时间已过,或服务器没有响应。”SqlBulkCopy.WriteToServer 在向 SQL Server 发送数据后) 发送注意令牌 (取消消息,导致服务器中止内存表的事务。 |
| ASP.NET | - 在 ASP.Net 遥测数据中使用符合 FIPS 的哈希值。 - 解决了表单身份验证和会话状态配置部分的“cookieSameSite”属性配置中不允许使用“未指定”值的问题。 |
| WPF2 | - 解决了在 WPF TextBox 或 RichTextBox 中启用拼写检查时出现“etc.”、“eg.”等单词的问题。 被错误地识别为拼写错误。 - 解决了当某些在 .NET 4.8 上运行的 Per-Monitor 感知 WPF 应用程序偶尔可能会遇到 exceptionSystem.ComponentModel.Win32Exception 崩溃的问题。 - 解决了 TextBlock 回流 (在呈现和命中测试期间与测量期间) 做出不同的换行决策的问题。 症状包括缺少文本,以及在编程文本处理期间 FailFast 崩溃。 - 解决了由于 HostVisual 在错误线程上断开目标连接而导致的呈现线程故障问题。 - 解决了滚动树不均匀的 TreeView 时挂起的问题,即给定节点的子节点管理大小完全不同的子树。 - 解决了关闭由用户代码重新进入关闭的工具提示时可能发生崩溃的问题。 - 当 HwndHost 离开可视化树时,将创建堆栈跟踪。 这成本高昂,而且通常没有必要。 现在,逻辑已更改为仅在发生异常情况时创建堆栈跟踪。 - 解决了 System.Speech.SpeechSynthesizer 中的内存泄漏问题。 - 如果系统剪贴板被另一个进程锁定,DataGrid 的 Copy 命令会引发异常。 这会崩溃,因为堆栈上通常没有应用代码来捕获异常。 在这种情况下,TextBox (和其他应用(如记事本、Word、浏览器) )的行为是静默失败 - 不会复制任何内容到剪贴板,但无例外。 WPF 应用现在可以通过在其 app.config 文件中设置 <appSettings><add key=“ShouldThrowOnDataGridCopyOrCutFailure” value=“false”/></appSettings>来选择加入此行为。 - 解决了为 FixedPage 文档构造内部模型的问题。 出于选择和复制/粘贴等编辑操作的目的,某些文本以错误的顺序出现。 |
| WCF3 | - 在使用 NetTcpBinding 或 NetNamedPipeBinding 时,使用 UPN Windows 用户名的格式与 NetworkCredential 的用户名属性中类似 username@dns.domain 时,WCF 会错误地拆分用户名和 dns.domain,将它们放入 UserName 和 Domain 属性中。 这在某些情况下是无效的,将导致身份验证失败。 此修补程序将删除使用 UPN 用户名时的凭据修改。 可以通过将 AppSetting “wcf:enableLegacyUpnUsernameFix” 设置为 true 来重新启用此修改。 |
| 网络库 | - 解决了 HttpListener 中的内存泄漏问题。 |
| Winforms | - 解决了 DataGridView IsReadOnlyAccessibility 状态的问题:讲述人和其他可访问的工具相应地宣布只读单元格状态。 - 解决了 .NET Framework 4.8 中的回归问题,当使用 DataGridView ComboBox 单元格类型并选择进入 3 级辅助功能的应用程序在编辑单元格时可能会遇到间歇性崩溃。 - 解决了 ClickOnce RFC3161时间戳验证码中的问题。 |
| Winforms 辅助功能改进 | 在此版本中,我们将添加新的辅助功能改进,你的应用程序可以选择加入。 默认情况下,这些更改处于禁用状态。 选择加入 .NET 4.8 及更早版本中引入的 辅助功能的 应用程序可以将以下兼容性开关添加到应用程序的配置文件中:"Switch.UseLegacyAccessibilityFeatures.4=false"具体来说,如果应用程序面向 .NET 4.8,请添加以下 AppContextSwitchOverrides 部分: <?xml version="1.0" encoding+"utf-8" ?> <configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Versionv4.8"/; </startup> <runtime> <!-- AppContextSwitchOverrides value attribute is in the form of 'key1=true\|false;key2=true\|false --> <AppContextSwitchOverrides value="Switch.UseLegacyAccessibilityFeatures.4=false" /> </runtime> </configuration>如果应用程序面向早期版本的框架并选择加入以前发布的辅助功能集,则向现有 AppContextSwitchOverrides部分添加单个"Switch.UseLegacyAccessibilityFeatures.4=false"开关:<?xml version="1.0" encoding+"utf-8" ?> <configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Versionv4.7"/; </startup> <runtime> <!-- AppContextSwitchOverrides value attribute is in the form of 'key1=true\|false;key2=true\|false --> <AppContextSwitchOverrides value=Switch.UseLegacyAccessibilityFeatures=false\|Switch.UseLegacyAccessibilityFeatures.2=false\|Switch.UseLegacyAccessibilityFeatures.3=false\|Switch.UseLegacyAccessibilityFeatures.4=false"/> </runtime> </configuration>此版本中包含的 Winforms 辅助功能改进包括:- 解决了屏幕阅读器宣布 PropertyGrid 控件项和类别展开/折叠状态的问题。 - 更新了属性网格控件及其内部元素的可访问模式。 - 更新了属性网格控件内部元素的可访问名称,以便屏幕阅读器正确播报这些内容。 - Addressesbounding 矩形可访问属性的 PropertyGridView 控件 - 使屏幕阅读器能够正确报出 DataGridView ComboBox 单元格展开/折叠状态。 |
1 公共语言运行时 (CLR)
2Windows 演示基础 (WCF)
3 Windows 通信基础
此更新中的已知问题
WPF (Windows Presentation Framework) 使用属于公共线程的两个或多个 HostVisual 元素的应用程序,其中两个 HostVisual 元素被要求大致同时与其视觉目标断开连接,则邮件失败并出现以下错误:
异常类型:System.COMException
消息:UCEERR_RENDERTHREADFAILURE (HRESULT 0x88980406)
调用堆栈:顶部框架是 System.Windows.Media.Composition.DUCE+Channel.SyncFlush ()
解决方法
可以通过使用此处所述的方法之一将 AppContext 开关“Switch.System.Windows.Media.HostVisual.DisconnectsOnWrongThread”设置为 true,禁用有问题的修复程序。 这会使应用暴露于原始 bug 中,因此应在通过即将推出的更新发布修补程序后删除该开关。
解决方法 1
• 将以下条目添加到 app.config 文件以禁用单个应用程序中的问题修复。
<runtime>
<AppContextSwitchOverrides value=“Switch.System.Windows.Media.HostVisual.DisconnectsOnWrongThread=true”/>
</runtime>
请注意,如果应用程序配置已具有 AppContextSwitchOverrides> 条目<,则需要在该条目中添加新设置,用分号与其他开关分隔:
<AppContextSwitchOverrides value="Switch.SomeOtherSwitch=true; Switch.System.Windows.Media.HostVisual.DisconnectsOnWrongThread=true"/>
解决方法 2
• 应用以下注册表子项以禁用计算机上所有 WPF 应用程序的问题修复。
警告
使用注册表编辑器或其他方法修改注册表不当可能会出现严重问题。 这些问题可能需要你重新安装操作系统。 Microsoft 无法保证可以解决这些问题。 修改注册表的风险由您自行承担。
位置: HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\AppContext\
名称: Switch.System.Media.HostVisual.DisconnectsOnWrongThread
类型:字符串
值:true
请注意,在 64 位操作系统上,还需要在以下位置应用具有相同名称、类型和值的注册表子项: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\.NETFramework\AppContext\
解决方案
我们正在努力研究解决方案,并将在即将发布的版本中提供更新。
如何获取此更新
安装此更新
| 发布渠道 | 可用 | 下一步 |
|---|---|---|
| Windows 更新和 Microsoft 更新 | 是 | 无。 此更新会通过 Windows 更新自动下载并安装。 |
| Microsoft 更新目录 | 是 | 若要获取此更新的独立程序包,请转到 Microsoft 更新目录网站。 |
| Windows Server Update Services (WSUS) | 是 | 如果按照以下方式配置“产品和分类”,此更新将自动与 WSUS 同步: 产品:Windows 10 版本 1709 分类:安全更新 |
文件信息
有关此更新中提供的文件列表,请下载累积更新的文件信息。
有关保护和安全的信息
- 保护自己的上网安全:Windows 安全支持
- 了解如何防范网络威胁:Microsoft 安全