Java ํ๋ซํผ์ ์คํ์์ค ํ๋ ์์ํฌ์ธ Spring Framework์์ ์๊ฒฉ ์ฝ๋ ์คํ์ด ๊ฐ๋ฅํ ์ทจ์ฝ์ ์ ์ธ๋ถ ์ ๋ณด๊ฐ ๊ณต๊ฐ๋์์ต๋๋ค. Spring์ ๋ค์ํ ์๋น์ค์์ ์ฌ์ฉ๋๋ ์ธ๊ธฐ์๋ ํ๋ ์์ํฌ๋ก, ํด๋น ์ทจ์ฝ์ ์ ํ๊ธ๋ ฅ์ด ํด ๊ฒ์ผ๋ก ์์๋๋ฉฐ Log4j์ RCE ์ทจ์ฝ์ ์ด์๋ Log4Shell๊ณผ ์ ์ฌํ Spring4Shell, SpringShell ๋ฑ์ผ๋ก ๋ถ๋ฆฌ๊ณ ์์ต๋๋ค.
2์์๋ Spring Framework ๊ด๋ จ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ SpEL(Spring Expression Language) ๋ฅผ ์ ์ฉํ ์ทจ์ฝ์ ์ด ๊ณต๊ฐ๋๊ธฐ๋ ํ์ต๋๋ค.
์ทจ์ฝ์ ์ Spring Core์ ๋ฐ์ธ๋ฉ ํ๋ก์ธ์ค bindRequestParameters๊ฐ ์บ์์ ๊ฐ์ฒด ์์ฑ์ ๊ฐ์ ธ์ค๊ธฐ ์ํด getCachedIntrospectionResults ๋ฉ์๋๋ฅผ ํธ์ถํ ๋ ๋ฐ์ํฉ๋๋ค.
๋ฐ๋ผ์ ์๊ฒฉ์์ HTTP Request๋ฅผ ๋ณด๋ด๋๊ฒ๋ง์ผ๋ก ํด๋์ค์ ์ ๊ทผํ ์ ์์ต๋๋ค.
์ทจ์ฝ์ ์ ์ ๋ณด์๋ Apache Tomcat์์ classLoader ๋ก Tomcat์ ๋ก๊น ๊ตฌ์ฑ์ ์์ ํ๊ณ ์์ ์ฝ๋ ์คํ์ ํธ๋ฆฌ๊ฑฐํ๋ PoC๋ฅผ ๊ณต๊ฐํ์ต๋๋ค.