Alta

Microsoft.OpenApi.YamlReader vulnerable a denegación de servicio mediante expansión de alias YAML

  • Publicada: 14.10.2026
  • Actualizado: 15.10.2026 08:00

Impacto

Un documento YAML OpenAPI pequeño que contenga anclas y alias anidados puede provocar un consumo descontrolado de recursos en Microsoft.OpenApi.YamlReader y Microsoft.OpenApi.Readers. El problema afecta al análisis de documentos OpenAPI a través de las API públicas del lector YAML y puede hacer que el proceso de análisis asigne memoria excesiva y termine por condiciones de falta de memoria (out-of-memory).

Versiones afectadas

Microsoft.OpenApi.YamlReader

  • >= 2.0.0-preview.11, < 2.12.0
  • >= 3.0.0, < 3.10.0

Microsoft.OpenApi.Readers

  • < 1.6.30

Parches

  • Para la versión principal 1.X, las versiones 1.6.30 y posteriores están corregidas.
  • Para la versión principal 2.X, las versiones 2.12.0 y posteriores están corregidas.
  • Para la versión principal 3.X, las versiones 3.10.0 y posteriores están corregidas.

Alcance

Las aplicaciones, CLI, herramientas de desarrollo o servicios que procesan documentos YAML OpenAPI no confiables dentro del proceso pueden cerrarse debido a un documento YAML manipulado que contenga anclas y alias anidados.

El impacto afecta únicamente a la disponibilidad y la terminación del proceso. Este informe no contempla ejecución remota de código, elusión de autenticación, exposición de credenciales, escalada de privilegios, exposición de datos ni afectación a servicios alojados de Microsoft.

Detalles

Microsoft.OpenApi.YamlReader y Microsoft.OpenApi.Readers analizan YAML mediante SharpYaml. SharpYaml representa los alias como instancias compartidas de YamlNode en un grafo acíclico dirigido, por lo que el grafo YAML analizado inicialmente se mantiene pequeño. Durante la conversión a System.Text.Json.Nodes.JsonNode, los alias deben materializarse como nodos independientes porque las instancias de JsonNode no pueden asociarse a múltiples elementos primarios.

Sin un límite en ese trabajo de conversión, un documento YAML pequeño que utilice anclas y alias anidados puede expandirse exponencialmente durante la conversión. Con N anclas anidadas referenciadas cada una k veces, la conversión puede requerir k^N nodos JSON materializados, provocando una asignación excesiva de memoria y la posible finalización del proceso.

Se trata de una vulnerabilidad de consumo descontrolado de recursos, también conocida como denegación de servicio de tipo «billion laughs».

Carga útil de ejemplo

yaml
openapi: 3.0.0
info:
  title: Test
  version: 0.0.1
paths: {}
x-a: &a ["lol", "lol", "lol", "lol", "lol", "lol", "lol", "lol", "lol"]
x-b: &b [*a, *a, *a, *a, *a, *a, *a, *a, *a]
x-c: &c [*b, *b, *b, *b, *b, *b, *b, *b, *b]
x-d: &d [*c, *c, *c, *c, *c, *c, *c, *c, *c]
x-e: &e [*d, *d, *d, *d, *d, *d, *d, *d, *d]
x-f: &f [*e, *e, *e, *e, *e, *e, *e, *e, *e]

Qué hacer

Los usuarios deben actualizar a Microsoft.OpenApi.YamlReader 2.12.0 o 3.10.0, o a Microsoft.OpenApi.Readers 1.6.30, según la línea de versiones principales que utilicen.

Las versiones corregidas limitan el trabajo de conversión de YAML a JSON y fallan de manera inmediata en lugar de permitir una expansión ilimitada. Los límites predeterminados son:

  • Recuento máximo de nodos materializados: 5,000,000
  • Profundidad máxima de anidamiento: 64

Cuando se superan estos límites, OpenApiYamlReader.Read notifica un error OpenApiDiagnostic y no devuelve un documento analizado.

Los límites se exponen como propiedades estáticas a nivel de proceso en YamlConverter para los consumidores que necesiten ajustarlos en cargas de trabajo de confianza:

  • YamlConverter.MaxNodeCount
  • YamlConverter.MaxDepth

Las aplicaciones que analicen documentos OpenAPI procedentes de fuentes no confiables deben evitar analizar dichos documentos en el proceso principal de la aplicación siempre que sea posible. Ejecutar el análisis en un proceso aislado puede reducir el radio de impacto de los fallos del analizador.

Software afectado

Haz clic en una tecnología para ver todas sus vulnerabilidades.

PlataformaPaqueteVersiones vulnerablesCorregida en
.NET (NuGet) Microsoft.OpenApi.Readers < 1.6.30 1.6.30
.NET (NuGet) Microsoft.OpenApi.YamlReader >= 3.0.0, < 3.10.0, >= 2.0.0-preview.11, < 2.12.0 3.10.0, 2.12.0

Referencias

Puntuación CVSS 7.5/10
Vector CVSS
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Debilidad (CWE)
CWE-400, CWE-770
Plataforma
.NET (NuGet)
Paquete
Microsoft.OpenApi.Readers, Microsoft.OpenApi.YamlReader
Publicada
14.10.2026
Actualizado
15.10.2026 08:00

Fuentes y licencias · Editado o traducido por DockRay; se mantienen los derechos y las licencias de las fuentes.

OSV / GitHub Advisory Database - GHSA-7pxr-59rr-hqj2 - CC BY 4.0

Historial de vulnerabilidades: Microsoft.OpenApi.Readers

Todas las vulnerabilidades publicadas de este paquete (.NET (NuGet)), de la más reciente a la más antigua. Muestra si es un fallo aislado o un paquete que hay que vigilar.

Esta es la única vulnerabilidad conocida de este paquete.

Identifica las vulnerabilidades de tu aplicación

Con la integración de DockRay y el inventario de software activado, DockRay compara las versiones notificadas de los componentes con las vulnerabilidades conocidas y avisa de las coincidencias confirmadas. La cobertura depende de la tecnología compatible y de los avisos disponibles.

Conectar tu aplicación
Newsletter DockRay

La seguridad de tus aplicaciones en tu correo

Vulnerabilidades importantes, recomendaciones concretas y consejos prácticos para tus aplicaciones. Elige tus tecnologías y sigue lo que importa para tu proyecto.

  • Un resumen diario de nuevas vulnerabilidades, también las críticas.
  • Avisos sobre actualizaciones importantes.
  • Consejos prácticos sobre seguridad y monitorización de aplicaciones.

Déjalo vacío para recibir avisos de todas las tecnologías.

Suscripción gratuita. Date de baja con un clic en cualquier correo.