Hlavní navigace

Stack Clash - lokální zranitelnost v Linuxu, BSD a Solarisu

Jan Fikar

Včera byla zveřejněna lokální zranitelnost Stack Clash, která umožňuje lokálně přepsat paměť, spustit libovolný kód nebo získat oprávnění roota. Zranitelné jsou Linux, OpenBSD, NetBSD, FreeBSD a Solaris na platformách i386 a amd64.

Útoky na zásobník (stack) jsou známé již z let 2005 a 2010, v roce 2010 Linux přidal stack guard-page. Tato ochrana je však před novým útokem neúčinná. Jde hlavně o zranitelnost CVE-2017–1000364 , která ukazuje, že stack guard-page s pár kB není dostatečná. Dále byly objeveny další zranitelnosti například  CVE-2017–1000365 a CVE-2017–1000367.

Obranou proti Stack Clash by bylo zvětšení stack guard-page na alespoň 1 MB, což od roku 2010 umožňuje PaX nebo grcsecurity. Toto řešení je jednoduché, ale krátkodobé. Půjde obejít speciálním útokem.

Druhým řešením je překompilovat všechny programy i knihovny s gcc -fstack-check. Toto dlouhodobé řešení je složitější, ale mělo by fungovat jen s 4 kB stack guard-page. Více v detailním popisu zranitelnosti.

(zdroj: securityaffairs)

Našli jste v článku chybu?