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)