ITFlow zranitelnost (CVE-2024-25344)
Ačkoliv naší pomoc zaměřujeme na systém WordPress, nejvíce se naše společnost zabývá vývojem zakázkového software a jeho provozu. V průběhu posledního čtvrtletí roku 2023 jsme pro naše klienty nasazovali open-source systém pro ticketing a správu klientů ITFlow.
Při nasazování a nastavování, jsme kvůli několika nedokonalostem v dokumentaci zamířili pro informace přímo do zdrojového kódu. V něm jsme identifikovali potenciální problém, kdy pro klíčové změny systému nedocházelo k využívání CSRF tokenů.
Zranitelnost typu Cross Site Request Forgery (CSRF) se vyznačuje tím, že dochází ke zneužití aktuálního přihlášení uživatele v nějaké aplikaci, kdy bez jeho vědomí, v rámci jeho přihlášení, dochází k odesílání požadavků do zranitelné aplikace. Často tak dochází např. k nevyžádané změně hesla účtu atd.
Pro otestování naší hypotézy jsme sestavili PoC (Proof of concept) a vyzkoušeli na lokální verzi, zda se zranitelnost skutečně v testovaném software nachází.
CVE-2024-25344
Software ITFlow měl zranitelnou sekci pro nastavení systému, konkrétně endpoint post.php, který využívá pro zpracovávání formulářů. Zde absentovala kontrola vygenerovaných CSRF tokenů, které jsou běžnou obranou před zranitelností CSRF.
Po exploitování této zranitelnosti se nám podařilo změnit nastavení platební brány Stripe, kterou určitě velká většina WordPressáků zná, případně se nám podařilo upravit nastavení Microsoft Azure SSO. Výsledkem je pro útočníka možnost nastavit systém tak, aby veškeré platby skrze systém ITFlow a bránu Stripe obdržel on.
PoC
Protože již byla zranitelnost v kooperaci s vývojáři opravena, zveřejňujeme tuto zprávu a náš PoC, pro zranitelné verze systému. Zranitelné jsou všechny instance ITFlow před commitem 432488eca3998c5be6b6b9e8f8ba01f54bc12378.