11 de agosto de 2020: actualización acumulativa KB4569746 para .NET Framework 4.8 para Windows 10, versión 1607, y Windows Server 2016

Se aplica a
.NET

Nota

  • Fecha de lanzamiento:
    11 de agosto de 2020
  • Versión:
    .NET Framework 4.8

Resumen

Mejoras de seguridad

Existe una vulnerabilidad de elevación de privilegios cuando las aplicaciones web ASP.NET o .NET Framework que se ejecutan en IIS permiten acceso de manera incorrecta a los archivos en caché. Un atacante que aprovechara esta vulnerabilidad con éxito podría obtener acceso a archivos restringidos. Para aprovechar esta vulnerabilidad, un atacante debería enviar una solicitud especialmente diseñada a un servidor afectado. La actualización soluciona la vulnerabilidad al corregir el modo en que ASP.NET y .NET Framework gestionan las solicitudes.

Para obtener más información sobre las vulnerabilidades, consulte las siguientes vulnerabilidades y exposiciones comunes (CVE).

Mejoras de calidad y confiabilidad

CLR1 - Un cambio en .NET Framework 4.8 regresó determinados escenarios de EnterpriseServices en los que un objeto de apartamento de un subproceso puede tratarse como un apartamento multiproceso y provocar un error de bloqueo. Este cambio ahora identifica correctamente los objetos de apartamento de subproceso único como tales y evita este error.
- Se corrige un problema en los ensamblados con datos de perfil IBC que causaba que los procesos de trabajo de Ngen se bloquearon y volvieron a imágenes nativas completas.
- Corrige bloqueos raros que podrían producirse durante la entrega del subproceso.
SQL - SqlBulkCopy.WriteToServer puede provocar errores en las transacciones a tablas SQL en memoria. Es posible que el cliente vea una excepción con el mensaje "El tiempo de espera de ejecución ha expirado. El período de tiempo de espera transcurrido antes de la finalización de la operación o el servidor no responde". SqlBulkCopy.WriteToServer estaba enviando un token de atención (mensaje de cancelación) después de enviar datos a Sql Server, haciendo que el servidor anulara la transacción para tablas en memoria.
ASP.NET - Usa hashes compatibles con FIPS en ASP.Net datos de telemetría.
- Se corrige un problema por el que "No especificado" no era un valor permitido en la configuración para el atributo "cookieSameSite" de las secciones de autenticación de formularios y configuración de estado de sesión.
WPF2 - Corrige un problema que se produce cuando la revisión ortográfica está habilitada en WPF TextBox o RichTextBox, palabras como "etc.", "por ejemplo". se identifican como errores ortográficos incorrectamente.
- Se corrige un problema que se produce cuando algunas aplicaciones WPF conscientes de Per-Monitor que se ejecutan en .NET 4.8 pueden sufrir en ocasiones un bloqueo con exceptionSystem.ComponentModel.Win32Exception.
- Se corrige un problema que provocaba que TextBlock se redistribuyera (toma diferentes decisiones de separación de líneas) durante la representación y la prueba de impacto, y durante la medición. Los síntomas incluyen falta texto y FailFast se bloquea durante el procesamiento de texto programático.
- Se corrige un problema con un error de subproceso de representación causado por host visual desconexión de su destino en el subproceso incorrecto.
- Se corrige un problema que se producía al colgar mientras se desplazaba un TreeView cuyo árbol no es uniforme, en el sentido de que los niños de un nodo determinado gobiernan subárboles cuyos tamaños son bastante diferentes.
- Se corrige un problema con un bloqueo que se puede producir al cerrar una información sobre herramientas que se vuelve a cerrar por código de usuario.
- Cuando un HwndHost deja el árbol visual, se crea un seguimiento de pila. Esto es caro, y normalmente innecesario. Ahora se cambia la lógica para crear el seguimiento de pila solo cuando ocurre la condición anómala.
- Corrige una pérdida de memoria en System.Speech.SpeechSynthesizer.
- El comando Copy de DataGrid produce una excepción si otro proceso bloquea el Portapapeles del sistema. Esto se bloquea, ya que normalmente no hay ningún código de aplicación en la pila para detectar la excepción. El comportamiento de TextBox (y otras aplicaciones como el Bloc de notas, Word, exploradores) en esta situación es fallar silenciosamente: no se copia nada en el Portapapeles, pero no hay excepción. Una aplicación WPF ahora puede optar por este comportamiento estableciendo <appSettings><add key="ShouldThrowOnDataGridCopyOrCutFailure" value="false"/></appSettings>en su archivo de app.config.
- Se corrige un problema en la construcción del modelo interno para un documento de FixedPage. Parte del texto aparecía en un orden incorrecto para realizar operaciones de edición, como la selección y copiar y pegar.
WCF3 - Al usar un nombre de usuario de UPN Windows con el formato similar a username@dns.domain en la propiedad de nombre de usuario de un NetworkCredential al usar NetTcpBinding o NetNamedPipeBinding, WCF dividía incorrectamente el nombre de usuario y dns.domain colocándolos en las propiedades UserName y Domain. Esto no es válido en algunos escenarios y provocaría que no se autentique. Esta corrección quita la modificación de credenciales al usar un nombre de usuario de UPN. La modificación se puede volver a habilitar estableciendo el AppSetting "wcf:enableLegacyUpnUsernameFix" en true.
Bibliotecas de red - Corrige una fuga de memoria en Http Memory.
Winforms - Se corrige un problema con el estado de DataGridView IsReadOnlyaccessibility: Narrador y otra herramienta accesible anuncia el estado de la celda de solo lectura en consecuencia.
- Corrige una regresión en .NET Framework 4.8 cuando las aplicaciones que usan el tipo de celda ComboBox de DataGridView y han optado por el nivel 3 de accesibilidad, pueden experimentar bloqueos intermitentes al editar la celda.
- Se corrige un problema en ClickOnce RFC3161 código de verificación de marca de tiempo.
Mejoras de accesibilidad de Winforms En esta versión, agregaremos nuevas mejoras de accesibilidad en las que la aplicación puede participar. De forma predeterminada, estos cambios están deshabilitados. Las aplicaciones que opten por las características de accesibilidad introducidas en .NET 4.8 y versiones anteriores, pueden agregar el siguiente modificador de compatibilidad al archivo de configuración de la aplicación:
"Switch.UseLegacyAccessibilityFeatures.4=false"
En concreto, si una aplicación se centra en .NET 4.8, agregue la siguiente sección 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>
Si una aplicación se centra en una versión anterior del marco de trabajo y decide participar en los conjuntos de características de accesibilidad de la versión anterior, agregue un único "Switch.UseLegacyAccessibilityFeatures.4=false" modificador a la sección existente AppContextSwitchOverrides :
<?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>
Las mejoras de accesibilidad de Winforms incluidas en esta versión son:- Corrige un problema al anunciar elementos de control PropertyGrid y el estado expandido/contraído por lectores de pantalla.
- Se han actualizado los patrones accesibles del control Property Grid y sus elementos internos.
- Se han actualizado los nombres accesibles de los elementos internos del control de cuadrícula de propiedades para anunciarlo correctamente por el lector de pantalla.
- Propiedades accesibles de rectángulos enlazados a direcciones para los controles PropertyGridView
- Permite que los lectores de pantalla anuncien correctamente el estado expandido o contraído de la celda DataGridView ComboBox.

         1 Common Language Runtime (CLR)
2 Windows Presentation Foundation (WPF)
3 Windows Communication Foundation

Problemas conocidos en esta actualización

Aplicaciones de Windows Presentation Framework (WPF) que usan dos o más elementos Host Visual que pertenecen a un subproceso común, donde se solicita a ambos elementos HostVisual desconectarse de su destino visual aproximadamente al mismo tiempo, el correo produce un error con el siguiente error:

Tipo de excepción: System.COMException
Mensaje: UCEERR_RENDERTHREADFAILURE (0x88980406 HRESULT)
Callstack: el marco superior es System.Windows.Media.Composition.DUCE+Channel.SyncFlush()

Soluciones alternativas

Puede deshabilitar la solución problemática estableciendo "Switch.System.Windows.Media.HostVisual.DisconnectsOnWrongThread" en true, usando uno de los métodos descritos aquí.  Esto expone la aplicación al error original, por lo que debes quitar el cambio una vez que se publique una corrección a través de una próxima actualización.

Solución alternativa 1

• Agregue la siguiente entrada al archivo de app.config para deshabilitar la solución problemática en una sola aplicación.

        <runtime>
     <AppContextSwitchOverrides value="Switch.System.Windows.Media.HostVisual.DisconnectsOnWrongThread=true"/>
</runtime>

Tenga en cuenta que si la configuración de la aplicación ya tiene una entrada para <AppContextSwitchOverrides>, debe agregar la nueva configuración dentro de esa entrada, separada de otros modificadores por punto y coma:

   <AppContextSwitchOverrides value="Switch.SomeOtherSwitch=true; Switch.System.Windows.Media.HostVisual.DisconnectsOnWrongThread=true"/>

Solución alternativa 2

• Aplique la siguiente subclave del Registro para deshabilitar la corrección problemática para todas las aplicaciones WPFWPF en el equipo.
 Advertencia
Pueden producirse graves problemas si modifica incorrectamente el registro mediante el Editor del registro o con cualquier otro método. Es posible que estos problemas requieran que vuelva a instalar el sistema operativo. Microsoft no garantiza que estos problemas se puedan resolver. Modifique el Registro bajo su propia responsabilidad.

Ubicación: HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\AppContext\
Nombre: Switch.System.Media.HostVisual.DisconnectsOnWrongThread
Tipo: Cadena
Valor: true

Tenga en cuenta que, en los sistemas operativos de 64 bits, también debe aplicar una subclave del Registro con el mismo nombre, tipo y valor en la ubicación: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\.NETFramework\AppContext\

Resolución

Estamos trabajando en una resolución y proporcionaremos una actualización en una próxima versión.
 

Cómo obtener esta actualización

Instalar esta actualización

Canal de publicación Disponible Siguiente paso
Windows Update y Microsoft Update Ninguna. Esta actualización se descargará e instalará automáticamente desde Windows Update.
Catálogo de Microsoft Update Para obtener el paquete independiente de esta actualización, vaya al sitio web del Catálogo de Microsoft Update.
Windows Server Update Services (WSUS) Esta actualización se sincronizará automáticamente con WSUS si configura Productos y clasificaciones del modo siguiente:
Product:Windows 10 versión 1607 y Windows Server 2016
Clasificación: actualizaciones de seguridad

Información de archivo

Para ver la lista de archivos que se proporcionan en esta actualización, descargue la información sobre los archivos de la actualización acumulativa.

Información sobre protección y seguridad