Iconos SCW
héroe bg sin separador
Blog

Nuevas vulnerabilidades en las bibliotecas Spring: cómo saber si está en riesgo y qué hacer al respecto.

Charlie Eriksen
Publicado el 01 de abril de 2022
Última actualización el 6 de marzo de 2026

Recientemente, las bibliotecas Spring, una de las bibliotecas más populares de la comunidad Java, revelaron dos vulnerabilidades relacionadas con la ejecución remota de código (RCE). Para ayudarle a determinar más fácilmente si está expuesto a alguna de estas vulnerabilidades y qué medidas debe tomar, hemos desglosado la información conocida sobre «Spring4Shell» y «Spring Cloud Function».

Vulnerabilidad 1 - « Spring4Shell » (CVE-42-22965)

El 29 de marzo de 2022, la comunidad descubrió una serie de tuits que contenían capturas de pantalla de una prueba de concepto de un exploit dirigido a Spring Core (SC), que permite la ejecución remota de código para todas las versiones de Spring Core, incluida la más reciente, la 5.3.17.

¿Qué aplicaciones están amenazadas?

Actualmente, solo las aplicaciones alojadas en Tomcat están confirmadas como expuestas a este nuevo exploit. Aunque no se ha demostrado que el exploit sea eficaz contra el contenedor de servlets Tomcat integrado ni contra ninguna otra aplicación no alojada en Tomcat, esto no excluye la posibilidad de que la amenaza resulte eficaz en el futuro para estos marcos.

Spring ha publicado un comunicado oficial sobre la vulnerabilidad, en el que se especifica que, según el entendimiento actual de la vulnerabilidad, deben cumplirse las siguientes condiciones para que exista vulnerabilidad:

  • JDK 9 o superior
  • Apache Tomcat como contenedor de servlets
  • Empaquetado en forma de archivo WAR tradicional (a diferencia de un archivo jar ejecutable Spring Boot).
  • dependencia spring-webmvc o spring-webflux
  • Versiones 5.3.0 a 5.3.17, 5.2.0 a 5.2.19 y versiones anteriores de Spring Framework.

¿Cómo funciona la explotación «Spring4Shell»?

La explotación se basa en el uso del «enlace de datos» (org.springframework.web.bind.WebDataBinder) en las solicitudes que utilizan objetos Java simples (POJO) antiguos en la firma del método:

Donde la clase Foo es una clase POJO, que podría definirse de la siguiente manera. Tenga en cuenta que la clase en sí misma no es importante, siempre y cuando sea cargada por el cargador de clases.

Cuando una solicitud se procesa mediante un método como este, se utiliza el cargador de clases para resolver la clase. El cargador de clases se encarga de cargar las clases en el momento de la ejecución, sin tener que precargar previamente todos los tipos posibles en la memoria. Determina qué archivo .jar cargar cuando se utiliza una nueva clase.

Puede encontrar la información más reciente y detallada sobre esta vulnerabilidad directamente en Spring, en su entrada de blog, incluyendo posibles correcciones o soluciones alternativas.

Vulnerabilidad 2: función Spring Cloud (CVE-249 22963)

El 27 de marzo de 2022, Cyber Kendra divulgó información sobre una vulnerabilidad de ejecución remota de código (RCE) de día cero en Spring Cloud Functions para la que no existía ningún parche. A la vulnerabilidad se le asignó el ID CVE-04-22963: Vulnerabilidad de acceso a recursos en Spring Expression.

¿Qué aplicaciones están amenazadas?

La vulnerabilidad afectó a las aplicaciones en las siguientes condiciones:

  • JDK 9 o versión posterior
  • Spring Cloud Functions versión 3.1.6 (o inferior), 3.2.2 (o inferior) o cualquier versión no compatible.

¿Cómo funciona la explotación?

Spring Cloud Function permite a los desarrolladores configurar la forma en que se gestiona el enrutamiento a través de la propiedad spring.cloud.function.routing-expression, normalmente mediante la configuración o el código. Se trata de una potente funcionalidad que admite el «Spring Expression Language» (SPel). Gracias a esta vulnerabilidad de día cero, hemos descubierto que esta propiedad se puede definir a través de los encabezados HTTP de una solicitud, lo que significa que un atacante puede integrar código SPEL directamente en su solicitud HTTP a un punto final RoutingFunction y, de este modo, ejecutar código arbitrario.

¿Qué medidas deben tomar los usuarios para mitigar los riesgos?

Le printemps ha publicado las versiones 3.1.7 y 3.2.3 para resolver este problema, no permitiendo la definición de esta propiedad a través de encabezados HTTP, lo que mitiga la vulnerabilidad. Después de actualizar a cualquiera de las dos versiones, no es necesario realizar ningún paso adicional.

¿Desea obtener más información sobre cómo ayudamos a los desarrolladores a escribir código más seguro? Reserve una demostración o explore nuestras directrices de codificación segura gratuitas en coach de code sécurisé.

Fuentes

Mostrar el recurso
Mostrar el recurso

Recientemente, las bibliotecas Spring, una de las bibliotecas más populares de la comunidad Java, revelaron dos vulnerabilidades relacionadas con la ejecución remota de código (RCE). Hemos detallado la información conocida sobre «Spring4Shell» y «Spring Cloud Function» para ayudarle a comprender si está en riesgo y qué hacer en caso afirmativo.

¿Desea obtener más información?

Más información

Secure Code Warrior aquí para ayudar a su organización a proteger el código a lo largo de todo el ciclo de desarrollo de software y a crear una cultura en la que la ciberseguridad sea una prioridad. Tanto si es responsable de la seguridad de las aplicaciones, desarrollador, responsable de la seguridad informática o cualquier otra persona involucrada en la seguridad, podemos ayudar a su organización a reducir los riesgos asociados a un código no seguro.

Reserve una demostración
Compartir en:
marcas de LinkedInSocialx logotipo
Autor
Charlie Eriksen
Publicado el 01 de abril de 2022

Compartir en:
marcas de LinkedInSocialx logotipo

Recientemente, las bibliotecas Spring, una de las bibliotecas más populares de la comunidad Java, revelaron dos vulnerabilidades relacionadas con la ejecución remota de código (RCE). Para ayudarle a determinar más fácilmente si está expuesto a alguna de estas vulnerabilidades y qué medidas debe tomar, hemos desglosado la información conocida sobre «Spring4Shell» y «Spring Cloud Function».

Vulnerabilidad 1 - « Spring4Shell » (CVE-42-22965)

El 29 de marzo de 2022, la comunidad descubrió una serie de tuits que contenían capturas de pantalla de una prueba de concepto de un exploit dirigido a Spring Core (SC), que permite la ejecución remota de código para todas las versiones de Spring Core, incluida la más reciente, la 5.3.17.

¿Qué aplicaciones están amenazadas?

Actualmente, solo las aplicaciones alojadas en Tomcat están confirmadas como expuestas a este nuevo exploit. Aunque no se ha demostrado que el exploit sea eficaz contra el contenedor de servlets Tomcat integrado ni contra ninguna otra aplicación no alojada en Tomcat, esto no excluye la posibilidad de que la amenaza resulte eficaz en el futuro para estos marcos.

Spring ha publicado un comunicado oficial sobre la vulnerabilidad, en el que se especifica que, según el entendimiento actual de la vulnerabilidad, deben cumplirse las siguientes condiciones para que exista vulnerabilidad:

  • JDK 9 o superior
  • Apache Tomcat como contenedor de servlets
  • Empaquetado en forma de archivo WAR tradicional (a diferencia de un archivo jar ejecutable Spring Boot).
  • dependencia spring-webmvc o spring-webflux
  • Versiones 5.3.0 a 5.3.17, 5.2.0 a 5.2.19 y versiones anteriores de Spring Framework.

¿Cómo funciona la explotación «Spring4Shell»?

La explotación se basa en el uso del «enlace de datos» (org.springframework.web.bind.WebDataBinder) en las solicitudes que utilizan objetos Java simples (POJO) antiguos en la firma del método:

Donde la clase Foo es una clase POJO, que podría definirse de la siguiente manera. Tenga en cuenta que la clase en sí misma no es importante, siempre y cuando sea cargada por el cargador de clases.

Cuando una solicitud se procesa mediante un método como este, se utiliza el cargador de clases para resolver la clase. El cargador de clases se encarga de cargar las clases en el momento de la ejecución, sin tener que precargar previamente todos los tipos posibles en la memoria. Determina qué archivo .jar cargar cuando se utiliza una nueva clase.

Puede encontrar la información más reciente y detallada sobre esta vulnerabilidad directamente en Spring, en su entrada de blog, incluyendo posibles correcciones o soluciones alternativas.

Vulnerabilidad 2: función Spring Cloud (CVE-249 22963)

El 27 de marzo de 2022, Cyber Kendra divulgó información sobre una vulnerabilidad de ejecución remota de código (RCE) de día cero en Spring Cloud Functions para la que no existía ningún parche. A la vulnerabilidad se le asignó el ID CVE-04-22963: Vulnerabilidad de acceso a recursos en Spring Expression.

¿Qué aplicaciones están amenazadas?

La vulnerabilidad afectó a las aplicaciones en las siguientes condiciones:

  • JDK 9 o versión posterior
  • Spring Cloud Functions versión 3.1.6 (o inferior), 3.2.2 (o inferior) o cualquier versión no compatible.

¿Cómo funciona la explotación?

Spring Cloud Function permite a los desarrolladores configurar la forma en que se gestiona el enrutamiento a través de la propiedad spring.cloud.function.routing-expression, normalmente mediante la configuración o el código. Se trata de una potente funcionalidad que admite el «Spring Expression Language» (SPel). Gracias a esta vulnerabilidad de día cero, hemos descubierto que esta propiedad se puede definir a través de los encabezados HTTP de una solicitud, lo que significa que un atacante puede integrar código SPEL directamente en su solicitud HTTP a un punto final RoutingFunction y, de este modo, ejecutar código arbitrario.

¿Qué medidas deben tomar los usuarios para mitigar los riesgos?

Le printemps ha publicado las versiones 3.1.7 y 3.2.3 para resolver este problema, no permitiendo la definición de esta propiedad a través de encabezados HTTP, lo que mitiga la vulnerabilidad. Después de actualizar a cualquiera de las dos versiones, no es necesario realizar ningún paso adicional.

¿Desea obtener más información sobre cómo ayudamos a los desarrolladores a escribir código más seguro? Reserve una demostración o explore nuestras directrices de codificación segura gratuitas en coach de code sécurisé.

Fuentes

Mostrar el recurso
Mostrar el recurso

Rellene el siguiente formulario para descargar el informe.

Nos gustaría obtener su autorización para enviarle información sobre nuestros productos y/o sobre temas relacionados con la codificación segura. Siempre trataremos sus datos personales con el mayor cuidado y nunca los venderemos a otras empresas con fines de marketing.

Enviar
Icono de éxito de SCW
Icono de error scw
Para enviar el formulario, active las cookies «Analytics». No dude en desactivarlas de nuevo una vez que haya terminado.

Recientemente, las bibliotecas Spring, una de las bibliotecas más populares de la comunidad Java, revelaron dos vulnerabilidades relacionadas con la ejecución remota de código (RCE). Para ayudarle a determinar más fácilmente si está expuesto a alguna de estas vulnerabilidades y qué medidas debe tomar, hemos desglosado la información conocida sobre «Spring4Shell» y «Spring Cloud Function».

Vulnerabilidad 1 - « Spring4Shell » (CVE-42-22965)

El 29 de marzo de 2022, la comunidad descubrió una serie de tuits que contenían capturas de pantalla de una prueba de concepto de un exploit dirigido a Spring Core (SC), que permite la ejecución remota de código para todas las versiones de Spring Core, incluida la más reciente, la 5.3.17.

¿Qué aplicaciones están amenazadas?

Actualmente, solo las aplicaciones alojadas en Tomcat están confirmadas como expuestas a este nuevo exploit. Aunque no se ha demostrado que el exploit sea eficaz contra el contenedor de servlets Tomcat integrado ni contra ninguna otra aplicación no alojada en Tomcat, esto no excluye la posibilidad de que la amenaza resulte eficaz en el futuro para estos marcos.

Spring ha publicado un comunicado oficial sobre la vulnerabilidad, en el que se especifica que, según el entendimiento actual de la vulnerabilidad, deben cumplirse las siguientes condiciones para que exista vulnerabilidad:

  • JDK 9 o superior
  • Apache Tomcat como contenedor de servlets
  • Empaquetado en forma de archivo WAR tradicional (a diferencia de un archivo jar ejecutable Spring Boot).
  • dependencia spring-webmvc o spring-webflux
  • Versiones 5.3.0 a 5.3.17, 5.2.0 a 5.2.19 y versiones anteriores de Spring Framework.

¿Cómo funciona la explotación «Spring4Shell»?

La explotación se basa en el uso del «enlace de datos» (org.springframework.web.bind.WebDataBinder) en las solicitudes que utilizan objetos Java simples (POJO) antiguos en la firma del método:

Donde la clase Foo es una clase POJO, que podría definirse de la siguiente manera. Tenga en cuenta que la clase en sí misma no es importante, siempre y cuando sea cargada por el cargador de clases.

Cuando una solicitud se procesa mediante un método como este, se utiliza el cargador de clases para resolver la clase. El cargador de clases se encarga de cargar las clases en el momento de la ejecución, sin tener que precargar previamente todos los tipos posibles en la memoria. Determina qué archivo .jar cargar cuando se utiliza una nueva clase.

Puede encontrar la información más reciente y detallada sobre esta vulnerabilidad directamente en Spring, en su entrada de blog, incluyendo posibles correcciones o soluciones alternativas.

Vulnerabilidad 2: función Spring Cloud (CVE-249 22963)

El 27 de marzo de 2022, Cyber Kendra divulgó información sobre una vulnerabilidad de ejecución remota de código (RCE) de día cero en Spring Cloud Functions para la que no existía ningún parche. A la vulnerabilidad se le asignó el ID CVE-04-22963: Vulnerabilidad de acceso a recursos en Spring Expression.

¿Qué aplicaciones están amenazadas?

La vulnerabilidad afectó a las aplicaciones en las siguientes condiciones:

  • JDK 9 o versión posterior
  • Spring Cloud Functions versión 3.1.6 (o inferior), 3.2.2 (o inferior) o cualquier versión no compatible.

¿Cómo funciona la explotación?

Spring Cloud Function permite a los desarrolladores configurar la forma en que se gestiona el enrutamiento a través de la propiedad spring.cloud.function.routing-expression, normalmente mediante la configuración o el código. Se trata de una potente funcionalidad que admite el «Spring Expression Language» (SPel). Gracias a esta vulnerabilidad de día cero, hemos descubierto que esta propiedad se puede definir a través de los encabezados HTTP de una solicitud, lo que significa que un atacante puede integrar código SPEL directamente en su solicitud HTTP a un punto final RoutingFunction y, de este modo, ejecutar código arbitrario.

¿Qué medidas deben tomar los usuarios para mitigar los riesgos?

Le printemps ha publicado las versiones 3.1.7 y 3.2.3 para resolver este problema, no permitiendo la definición de esta propiedad a través de encabezados HTTP, lo que mitiga la vulnerabilidad. Después de actualizar a cualquiera de las dos versiones, no es necesario realizar ningún paso adicional.

¿Desea obtener más información sobre cómo ayudamos a los desarrolladores a escribir código más seguro? Reserve una demostración o explore nuestras directrices de codificación segura gratuitas en coach de code sécurisé.

Fuentes

Ver el seminario web
Comience
Más información

Haga clic en el enlace siguiente y descargue el PDF de este recurso.

Secure Code Warrior aquí para ayudar a su organización a proteger el código a lo largo de todo el ciclo de desarrollo de software y a crear una cultura en la que la ciberseguridad sea una prioridad. Tanto si es responsable de la seguridad de las aplicaciones, desarrollador, responsable de la seguridad informática o cualquier otra persona involucrada en la seguridad, podemos ayudar a su organización a reducir los riesgos asociados a un código no seguro.

Mostrar el informeReserve una demostración
Descargar el PDF
Mostrar el recurso
Compartir en:
marcas de LinkedInSocialx logotipo
¿Desea obtener más información?

Compartir en:
marcas de LinkedInSocialx logotipo
Autor
Charlie Eriksen
Publicado el 01 de abril de 2022

Compartir en:
marcas de LinkedInSocialx logotipo

Recientemente, las bibliotecas Spring, una de las bibliotecas más populares de la comunidad Java, revelaron dos vulnerabilidades relacionadas con la ejecución remota de código (RCE). Para ayudarle a determinar más fácilmente si está expuesto a alguna de estas vulnerabilidades y qué medidas debe tomar, hemos desglosado la información conocida sobre «Spring4Shell» y «Spring Cloud Function».

Vulnerabilidad 1 - « Spring4Shell » (CVE-42-22965)

El 29 de marzo de 2022, la comunidad descubrió una serie de tuits que contenían capturas de pantalla de una prueba de concepto de un exploit dirigido a Spring Core (SC), que permite la ejecución remota de código para todas las versiones de Spring Core, incluida la más reciente, la 5.3.17.

¿Qué aplicaciones están amenazadas?

Actualmente, solo las aplicaciones alojadas en Tomcat están confirmadas como expuestas a este nuevo exploit. Aunque no se ha demostrado que el exploit sea eficaz contra el contenedor de servlets Tomcat integrado ni contra ninguna otra aplicación no alojada en Tomcat, esto no excluye la posibilidad de que la amenaza resulte eficaz en el futuro para estos marcos.

Spring ha publicado un comunicado oficial sobre la vulnerabilidad, en el que se especifica que, según el entendimiento actual de la vulnerabilidad, deben cumplirse las siguientes condiciones para que exista vulnerabilidad:

  • JDK 9 o superior
  • Apache Tomcat como contenedor de servlets
  • Empaquetado en forma de archivo WAR tradicional (a diferencia de un archivo jar ejecutable Spring Boot).
  • dependencia spring-webmvc o spring-webflux
  • Versiones 5.3.0 a 5.3.17, 5.2.0 a 5.2.19 y versiones anteriores de Spring Framework.

¿Cómo funciona la explotación «Spring4Shell»?

La explotación se basa en el uso del «enlace de datos» (org.springframework.web.bind.WebDataBinder) en las solicitudes que utilizan objetos Java simples (POJO) antiguos en la firma del método:

Donde la clase Foo es una clase POJO, que podría definirse de la siguiente manera. Tenga en cuenta que la clase en sí misma no es importante, siempre y cuando sea cargada por el cargador de clases.

Cuando una solicitud se procesa mediante un método como este, se utiliza el cargador de clases para resolver la clase. El cargador de clases se encarga de cargar las clases en el momento de la ejecución, sin tener que precargar previamente todos los tipos posibles en la memoria. Determina qué archivo .jar cargar cuando se utiliza una nueva clase.

Puede encontrar la información más reciente y detallada sobre esta vulnerabilidad directamente en Spring, en su entrada de blog, incluyendo posibles correcciones o soluciones alternativas.

Vulnerabilidad 2: función Spring Cloud (CVE-249 22963)

El 27 de marzo de 2022, Cyber Kendra divulgó información sobre una vulnerabilidad de ejecución remota de código (RCE) de día cero en Spring Cloud Functions para la que no existía ningún parche. A la vulnerabilidad se le asignó el ID CVE-04-22963: Vulnerabilidad de acceso a recursos en Spring Expression.

¿Qué aplicaciones están amenazadas?

La vulnerabilidad afectó a las aplicaciones en las siguientes condiciones:

  • JDK 9 o versión posterior
  • Spring Cloud Functions versión 3.1.6 (o inferior), 3.2.2 (o inferior) o cualquier versión no compatible.

¿Cómo funciona la explotación?

Spring Cloud Function permite a los desarrolladores configurar la forma en que se gestiona el enrutamiento a través de la propiedad spring.cloud.function.routing-expression, normalmente mediante la configuración o el código. Se trata de una potente funcionalidad que admite el «Spring Expression Language» (SPel). Gracias a esta vulnerabilidad de día cero, hemos descubierto que esta propiedad se puede definir a través de los encabezados HTTP de una solicitud, lo que significa que un atacante puede integrar código SPEL directamente en su solicitud HTTP a un punto final RoutingFunction y, de este modo, ejecutar código arbitrario.

¿Qué medidas deben tomar los usuarios para mitigar los riesgos?

Le printemps ha publicado las versiones 3.1.7 y 3.2.3 para resolver este problema, no permitiendo la definición de esta propiedad a través de encabezados HTTP, lo que mitiga la vulnerabilidad. Después de actualizar a cualquiera de las dos versiones, no es necesario realizar ningún paso adicional.

¿Desea obtener más información sobre cómo ayudamos a los desarrolladores a escribir código más seguro? Reserve una demostración o explore nuestras directrices de codificación segura gratuitas en coach de code sécurisé.

Fuentes

Índice

Descargar el PDF
Mostrar el recurso
¿Desea obtener más información?

Más información

Secure Code Warrior aquí para ayudar a su organización a proteger el código a lo largo de todo el ciclo de desarrollo de software y a crear una cultura en la que la ciberseguridad sea una prioridad. Tanto si es responsable de la seguridad de las aplicaciones, desarrollador, responsable de la seguridad informática o cualquier otra persona involucrada en la seguridad, podemos ayudar a su organización a reducir los riesgos asociados a un código no seguro.

Reserve una demostraciónDescargar
Compartir en:
marcas de LinkedInSocialx logotipo
Centro de recursos

Recursos para ayudarle a empezar

Más publicaciones
Centro de recursos

Recursos para ayudarle a empezar

Más publicaciones