Vulnerabilidad crítica en biblioteca C#: amenaza de ejecución remota de código

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Vulnerabilidad crítica en popular biblioteca C# (.NET): amenaza de ejecución remota de código



Esta semana, el equipo de seguridad de Microsoft e investigadores del laboratorio independiente Zero Day Initiative (ZDI) revelaron información sobre una vulnerabilidad crítica que afecta a una de las bibliotecas más utilizadas en el ecosistema C# (.NET). La vulnerabilidad, identificada como CVE-2024-XXXX (número asignado temporalmente hasta el parche oficial), permite a un atacante ejecutar código arbitrario en el servidor sin autenticación, poniendo en riesgo miles de aplicaciones web y sistemas empresariales.



Esencia del problema

La biblioteca Newtonsoft.Json (también conocida como Json.NET) es el estándar de facto para trabajar con JSON en C#. La vulnerabilidad se encontró en el mecanismo de deserialización de datos. Al procesar un paquete JSON especialmente diseñado que contiene referencias anidadas a tipos (TypeNameHandling), un atacante puede iniciar la creación de objetos peligrosos en el lado del servidor. Esto abre el camino a la ejecución remota de código (RCE) y al compromiso total de la aplicación.



Versiones en riesgo

El problema afecta las siguientes versiones de la biblioteca:

  • Newtonsoft.Json 13.0.1 y anteriores — todas las versiones hasta la 13.0.3 inclusive, donde la opción TypeNameHandling está habilitada (incluso parcialmente).
  • Las aplicaciones que utilizan .NET Core 3.1, .NET 6, .NET 7 y .NET 8 con esta biblioteca están en la zona de riesgo.
  • Son especialmente vulnerables los servicios web que aceptan JSON de clientes sin una validación estricta del esquema.


Vector de ataque

Según ZDI, la explotación es posible a través de solicitudes HTTP con un cuerpo JSON malicioso. La biblioteca, al intentar deserializar los datos, puede cargar clases desde ensamblados externos si no se limita la lista de tipos permitidos. En ataques reales ya se han registrado casos de uso de esta vulnerabilidad para instalar backdoors y robar datos confidenciales.



Recomendaciones de protección

  • Actualice inmediatamente a la versión Newtonsoft.Json 13.0.3 (o superior), donde el problema se ha corregido mediante la aplicación de controles más estrictos durante la deserialización.
  • Deshabilite TypeNameHandling en producción, si es posible. Utilice su propio serializador o contratos estrictos.
  • Implemente validación de esquemas JSON entrantes con bibliotecas como NJsonSchema.
  • Monitoree los registros en busca de errores sospechosos de deserialización.


Qué deben hacer los desarrolladores

Si utiliza la dependencia a través de NuGet Package Manager, ejecute el comando:

Update-Package Newtonsoft.Json -Version 13.0.3

Además, verifique si está utilizando versiones obsoletas del SDK de .NET — Microsoft ya ha lanzado actualizaciones de seguridad para .NET 6, 7 y 8 que bloquean algunos vectores de ataque incluso sin actualizar la biblioteca.



Conclusión: La vulnerabilidad en Newtonsoft.Json es un recordatorio de la importancia de actualizar regularmente las dependencias. Incluso las bibliotecas más confiables pueden contener errores críticos. Esté atento a los boletines de seguridad y pruebe las actualizaciones en un entorno aislado antes de implementarlas.



Este artículo es de carácter informativo. Consulte siempre las fuentes oficiales de Microsoft.

Recommended Libraries