Linux-Kernel: Race Condition lässt Befehle ausführen

Eine Sicherheitslücke (CVE-2014-0196) im Linux-Kernel hat zur Folge, dass ein lokaler Angreifer Denial-of-Service-Attacken ausführen kann. Weiter ist es auch möglich, dass lokale Angreifer höhere Rechte auf dem System erlangen.

Die Ursache ist ein Race-Condition-Fehler im Code für Pseudo-Terminals (PTY). Der Programmierfehler befindet sich in der Funktion “n_tty_write()” in der Quelltext-Datei “drivers/tty/n_tty.c”. Das Problem tritt auf, wenn zwei Prozesse/Threads auf dasselbe PTY schreiben. Dieser Fehler wurde vermutlich in der Kernelversion 2.6.31 in den Code eingebaut.

Der Patch zur Behebung führt ein Mutex-Lock ein, um die Race Condition zu verhindern:

...
mutex_lock(&ldata->output_lock);
c = tty->ops->write(tty, b, nr);
mutex_unlock(&ldata->output_lock);
...

Dadurch kann die Race Condition nicht mehr auftreten und die Attacke ist nicht mehr möglich.

Nach oben