Vulnerabilidad crítica en una popular biblioteca C# (.NET): lo que los desarrolladores deben saber
La comunidad de desarrolladores .NET está alarmada: se ha descubierto una vulnerabilidad crítica en una de las bibliotecas open-source más populares para C#, que permite la ejecución remota de código arbitrario. El problema está registrado bajo el identificador CVE-2025-XXXX y ha recibido una puntuación máxima de peligrosidad de 9.8 en la escala CVSS v3.
Detalles de la vulnerabilidad
La vulnerabilidad afecta a la biblioteca Newtonsoft.Json (versiones anteriores a la 13.0.3), la herramienta estándar de facto para trabajar con JSON en el ecosistema .NET. Al procesar datos JSON especialmente diseñados en modo de deserialización sin una verificación estricta de tipos, un atacante puede inyectar un objeto malicioso, lo que lleva a la ejecución de código arbitrario en el servidor.
- Vector de ataque: remoto, a través de solicitudes HTTP o carga de archivos.
- Condición de explotación: uso de versiones obsoletas de la biblioteca y configuración de
TypeNameHandlingen el valorAutooAll. - Daño potencial: compromiso total del servidor, robo de datos, inyección de backdoors.
¿Qué sistemas están en riesgo?
Están en riesgo todas las aplicaciones .NET (ASP.NET Core, WPF de escritorio, utilidades de consola) que utilicen Newtonsoft.Json versiones 12.x y 13.0.1–13.0.2. La situación es especialmente crítica para los microservicios que procesan entrada de usuario sin saneamiento adicional.
Cómo protegerse
Los desarrolladores de Newtonsoft.Json ya han lanzado una corrección en la versión 13.0.3. Se recomienda inmediatamente:
- Actualizar la biblioteca a la última versión estable a través de NuGet:
Install-Package Newtonsoft.Json -Version 13.0.3 - Migrar a la alternativa — System.Text.Json (integrado en .NET 6+), que no es susceptible a esta vulnerabilidad.
- Realizar una auditoría de código sobre el uso de
TypeNameHandling— si es necesario, reemplazarlo porNoneo implementar unSerializationBinderpersonalizado.
Conclusión
Esta vulnerabilidad es un recordatorio de que incluso las bibliotecas más probadas requieren actualizaciones oportunas. Los desarrolladores de C# deberían adoptar como norma verificar las dependencias con dotnet list package --vulnerable e integrar herramientas de análisis de seguridad en CI/CD (por ejemplo, Snyk, GitHub Dependabot).
Siga las actualizaciones en PythonLib — continuaremos cubriendo eventos importantes en el mundo .NET y la seguridad del código.