Kernel Crash-Exploit descubierto

Horst von Brand vonbrand en inf.utfsm.cl
Lun Jun 14 14:16:29 CLT 2004


Carlos Manuel Duclos Vergara <carlos en embedded.cl> dijo:
> > Peeeeero, eventualmente, como sería una posible soluciòn?

[...]

> el punto seria buscar la manera de evitar que alguien pueda cambiar los 
> bits de la FPU mas que evitar que la interrupcion provoque la debacle;

La interrupcion dentro del nucleo provoca la debacle porque _no_ la
interceptan/manejan adecuadamente. Creian que interrupciones de la FPU en
el nucleo eran imposibles...

>                                                                        no 
> puse mayor atencion al codigo del ejemplo, pero habria que preguntarse:
> 1.- que privilegios requiere el codigo para ser ejecutado?

Usuario corriente.

> 2.- como es que un registro sensible como el estado de la FPU esta 
> disponible para ser cambiado?

Porque son flags de estado de la FPU, no es privilegiado de ninguna forma.

> 3.- se necesita cambiar el valor de ese registro?

Yep. Cada vez que efectuas una operacion de punto flotante cambian,
registran modo de redondeo, genero NaN, ...

> 3.a.- No: es posible cambiar el mapa de memoria y dejar ese registro en una 
> region ro?

Imposible. Son flags de la CPU.
-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                     Fono: +56 32 654431
Universidad Tecnica Federico Santa Maria              +56 32 654239
Casilla 110-V, Valparaiso, Chile                Fax:  +56 32 797513


Más información sobre la lista de distribución Linux