CVE-2017-5638
Summary
V Apache Struts 2 byla zjištěna exploitable vulnerability v OGNL evaluaci, která umožnila vzdálenému útočníkovi spouštět libovolný kód na serveru.
Writeup
Zranitelnost se týkala nepovolené evaluace OGNL výrazů v frameworku Apache Struts 2. V konkrétních endpointách, které přijímaly uživatelské vstupy a předávaly je jako část parametrů formuláře, se vyskytovala cesta, kde aplikace neověřila obsah proměnné a framework ji interpretoval jako kód. Útočník mohl poslat payload, který se rozvinul do spouštění příkazů v jazyce Java nebo shellu na hostitelském systému. Z hlediska útoku byla tato chyba velmi nebezpečná, protože se dala zneužít i bez autentizace u některých systémů a výsledek byl 'code execution' s plnými právy procesu. V případech jako Equifax to vedlo k masivní exfiltraci dat a k dlouhodobé reakci v oblasti incident response. Zranitelnost je klasickým příkladem toho, jak zranitelný framework s rozsáhlým používáním OGNL a dynamického vyhodnocování může vytvořit kritickou exploitable cestu přes HTTP request.
Impact
Útočník mohl spouštět libovolné příkazy, číst data z disku, měnit konfiguraci a získat plný přístup k aplikaci i infrastruktuře. Jednalo se o jednu z nejznámějších webových exploitable chyb v období 2017.
Affected products
- Apache Struts 2.3.x
- Apache Struts 2.5.x before patch level 2.5.12