[ pisac @ 12.12.2017. 16:36 ] @
Igrao sam se malo sa DirtyCow exploit kodom na Linuxu (nešto starijim kernelima), koji je sa user naloga menjao /usr/bin/passwd, i na moje veliko čuđenje taj konkretni kod nije radio na Slekveru. Pogledao sam zašto, i ipostavilo se da /usr/bin/passwd nije čitljiv od strane "others". Fajl je samo izvršan, ali ne i čitljiv, tako da može da se startuje od strane običnog korisnika ali ne može da se otvori za čitanje i primeni dotični DirtyCow na njemu.

Da Debianu, Centosu, Ubuntu, taj fajl je i čitljiv, tako da dotični exploit nema problema sa čitanjem. I onda me zaintrigiralo pitanje, zašto uopšte neki izvršni fajl treba da bude čitljiv za "others" ako može da se izvrši i bez tog prava čitanja? Zašto ne staviti sve setuid fajlove da budu nečitljvii?

To naravno ne rešava DirtyCow problem, jer će se već naći način da se izmene neki drugi (neizvršni) čitljivi root fajlovi koji će eskalirati privilegije, ali ova tema nema fokus na tom detalju.





[ tuxserbia @ 12.12.2017. 20:26 ] @
Pa, ne mora. Zašto jeste? Ne znam. Mislim da je lična odluka programera, pakera distribucije i, na kraju, samog korisnika da li će ili neće biti čitljivo. Na kraju, ništa nije nečitljivo, zar ne? ;-)