CVE-2022-22965: Nová zranitelnost Spring Frameworku (SpringShell)

4. 4. 2022

Byla objevena kritická zranitelnost velmi rozšířeného Java frameworku Spring, který využíváme i na mnoha námi vyvíjených projektech. Ihned po zveřejnění jsme pro naše zákazníky všechny projekty prověřili a žádný z nich nebyl touto zranitelností postižen. Přesto všechny naše aplikace aktualizujeme.

Jedná se o CVE-2022-22965 umožňující vzdálené spuštění kódu zneužitím data bindingu. Zranitelnost bývá uváděna pod názvem SpringShell (případně také Spring4Shell).

Zranitelnost se týká aplikací, které:

  • používají Spring framework verzí 5.3.0 až 5.3.17, 5.2.0 až 5.2.19, nebo starší;
  • mají závislost na spring-webmvc nebo spring-webflux;
  • běží na JDK 9 nebo novějším;
  • jsou sestaveny jako WAR a jsou provozovány v samostatné instanci Tomcatu;
  • používají Apache Tomcat jako Servlet kontejner.

Opravné verze frameworků již existují (Spring Framework 5.3.18 a 5.2.20, Spring Boot 2.6.6 a 2.5.12), ale pokud nemáte možnost dostatečně rychle upgradovat, lze použít některý z workaroundů:

  • upgrade Apache Tomcat na verze 10.0.20, 9.0.62, or 8.5.78;
  • downgrade na Javu 8; 
  • zakázání bindingu zneužitelných atributů v konfiguraci aplikace.

Kompletní informace o možných workaroundech a zranitelnosti samotné jsou dostupné v oficiálním oznámení. 

Úvodní ilustrace: Padlock icons created by Pixel perfect – Flaticon