Skip to main content

In this article

El framework Node.js Fastify mejora la seguridad de JSON gracias a un informe de seguridad

Escrito por
Node How even quick async functions can block the Event Loop starve tumb

10 de marzo de 2020

0 minutos de lectura

El 9 de abril, Francesco Soncina —también conocido como phra en la plataforma de recompensas por errores de seguridad HackerOne— reportó una vulnerabilidad de inyección de código JavaScript del lado del servidor al grupo de trabajo de seguridad de Node.js. Esta vulnerabilidad se identificó inicialmente en Fastify, un framework de aplicaciones web de Node.js, como el objetivo afectado por este problema de seguridad.

Matteo Collina, uno de los mantenedores del proyecto de código abierto Fastify, recibió una invitación para clasificar el informe a tiempo y revisar el código de explotación de prueba de concepto. El ataque de prueba de concepto usaba una inyección de código JavaScript que iniciaba una shell inversa, integrada en el esquema JSON que leía el framework.

Al final, se consideró que este informe de seguridad era relativamente inofensivo, ya que no afecta a Fastify por sí solo. Esto se debe a que el usuario proporciona el esquema JSON como un elemento de configuración de la aplicación, por lo que se considera una entrada confiable.

Aun así, es interesante y también fundamental destacar la importancia de este tipo de informes de seguridad, tanto si terminan convirtiéndose en una vulnerabilidad de seguridad CVE verificada como si no.

En este caso en particular, el debate sobre seguridad a lo largo del informe gira en torno a una discusión en curso entre el mantenedor de Fastify y el investigador de seguridad que la divulgó. El trabajo colaborativo y la determinación de Collina y Soncina son fascinantes. Se enfocaron en detectar todos los posibles puntos vulnerables en la lógica de representación de JSON para hacerla lo más resistente posible a los problemas de seguridad que puedan surgir.

Lo más interesante es que este informe sobre una vulnerabilidad de seguridad dio lugar a lo siguiente:

  1. Un análisis de JSON más sólido y seguro en fast-json-stringify, que se refleja en este pull request en GitHub y en su posterior lanzamiento oficial, en la versión 1.15.3.

  2. Una advertencia de seguridad en la documentación que explica claramente los riesgos y las áreas de preocupación, para que quienes usan la biblioteca sepan cómo manejar los datos. Se incorporó mediante este pull request.

Mientras terminaba este informe y lo preparaba para su divulgación, me quedó claro que deberíamos hacer más para reconocer el valor de las divulgaciones de seguridad. Aunque el problema reportado no afectaba directamente a Fastify ni a fast-json-stringify, dio lugar a una conversación significativa. Y, lo más importante, ayudó a que los mantenedores tomaran conciencia de los problemas de seguridad relacionados con su código.

Comentarios finales

Si eres investigador de seguridad o mantienes un módulo, quiero compartir contigo esta nota del informe original. Una vez más, quiero agradecerte todo el trabajo y esfuerzo que dedicas a ayudarnos a proteger el ecosistema de Node.js, JavaScript y el código abierto.

Captura de pantalla de un comentario de GitHub de lirantal que analiza si los informes de seguridad sobre fast-json-stringify y Fastify corresponden a vulnerabilidades o a problemas de políticas del proyecto.

Leer más

Live Stream

Agentes de remediación, sin misterios: por qué solucionar es mejor que encontrar

Descubre cómo el agente de remediación de Snyk utiliza inteligencia de seguridad, análisis de explotabilidad y validación para convertir las vulnerabilidades en solicitudes de incorporación de cambios listas para fusionarse.

feature insights context
Blog

Dentro del compromiso de keyv en npm: malware preinstall, procedencia confiable y hooks de IDE

keyv 6.0.0 y diez versiones relacionadas de npm distribuyeron malware durante la instalación. Consulta las versiones afectadas, los hashes, los pasos de detección y el orden seguro para remediar el problema.

feature ai ide dark
Blog

Un primer vistazo a Evo Agentic AppSec: remediación agéntica y defensa contra código malicioso

Explora las primeras capacidades de Agentic AppSec de Snyk: un agente de remediación autónomo que corrige vulnerabilidades y una defensa contra código malicioso que bloquea paquetes riesgosos antes de que se publiquen.