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