Frissített GrSecurity patchek

Brad frissítette a GrSecurity 2.1.9-es patch-eket az újabb kernelekhez, valamint javításra került egy hiba a 2.4-es verzióban ami a MEMORY_SANTINIZE és UDEREF opciók használatakor bootolási problémát okozhatott.

Hozzászólások

kis pontositas:

1. a problema csak a UDEREF hasznalata soran lepett elo (ettol persze meg lehet hiba a masikban is, csak arrol akkor en meg nem tudok ;-).

2. a problema nem a PaX-ban volt, hanem magaban a linux-ban, es a UDEREF pont az ilyenek kiszuresere lett kitalalva (a hibat amugy a 2.6-ban mar regebben javitottak).

3. a hibavadaszat kozben sikerult rabukkanni a legoregebb es a mai napig letezo linux bugra, ami a 15 evvel ezelott kiadott 0.01-ben is megvolt mar ;-).

a technikai reszletekert nezd meg az arch/i386/kernel/head.S-ben a setup_idt/ignore_int koruli modositasokat. egyszeruen fogalmazva, a korai boot soran (amikor meg 'se kep se hang', vagyis meg a konzol alrendszer sem indult be) a linux egy ideiglenes megszakitaskezelot hasznal, ami elvileg nem csinalna mast, mint kiirna egy rovid uzenetet ("Unknown interrupt") azutan visszaterne a hibas kodhoz. ez effektive vegtelen ciklusban generalna ezt az uzenetet (a hibat okozo utasitas nem javul meg magatol), de legalabb az ember tudna, hogy valami eleg korai kod szepen elszallt.

a hiba miatt ez a 'visszateres a hibas kodhoz' muvelet visszateres helyett onmaga ujabb proci megszakitast okoz, ami gyorsan elfogyasztja a kernel vermet, azutan felulir egy csomo memoriat es vegul egy triple fault-nak nevezett esemenyt okoz, ami a gyakorlatban azonnali reset-tel er fel. magyaran az egeszbol a felhasznalo (vagy kernelfejleszto) csak egy gyors ujraindulast lat, ami ugye nem tul sok segitseg.

egy masik feature/hiba 2.4-ben meg az is, hogy a kiirashoz hasznalt printk() pufferolt, es csak akkor jelenik/jelenne meg tenylegesen a kepernyon, miutan a konzol alrendszer beindult, tehat az uzenet akkor sem jelenne meg, ha a korai megszakitaskezeloben nem lenne a fenti hiba. 2.6-ban szerencsere legalabb ezt mar javitottak, early printk-nek hivjak. ennek egy egyszerusitett valtozatat atirtam 2.4-hez, igy sikerult aztan megtalalni az igazi hibat, ami a UDEREF alatt jott elo nehany SMP rendszeren.