Mehrere lokale und entfernte Verwundbarkeiten wurden im Linux Kernel
entdeckt, die eine Diensteverweigerung (denial of service
) oder die
Ausführung von beliebigem Code zur Folge haben können.
Das Common Vulnerabilities and Exposures Project
legt die folgenden
Probleme fest:
Mehrfache Überläufe sind im Treiber io_edgeport vorhanden, die möglicherweise als Angriffsvektor für eine Diensteverweigerung genutzt werden können.
Bryan Fulton berichtete über einen Fehler bei der Grenzenkontrolle in der Funktion coda_pioctl, der es lokalen Benutzern möglicherweise erlaubt, beliebigen Code auszuführen oder eine Diensteverweigerung auszulösen.
Ein Fehler wurde in der Funktion skb_checksum_help() aus dem netfilter-Framework entdeckt, der es ermöglicht, Paketfilterregeln zu umgehen oder eine Diensteverweigerung auszulösen.
Tim Yamin entdeckte, dass eine unzureichende Eingabevalidierung im Treiber zisofs für komprimierte ISO-Dateisysteme eine Diensteverweigerung durch böswillig erstellte ISO-Images ermöglicht.
Ein Pufferüberlauf in der Funktion sendmsg() erlaubt es einem lokalen Benutzer, beliebigen Code auszuführen.
Herbert Xu entdeckte, dass die Funktion setsockopt() nicht auf Benutzer/Prozesse mit der Fähigkeit CAP_NET_ADMIN beschränkt war. Dies erlaubt es Angreifern, die IPSEC-Richtlinien zu manipulieren oder eine Diensteverweigerung auszulösen.
Al Viro entdeckte eine Race-Condition in der Handhabung von /proc durch Netzwerkgeräte. Ein (lokaler) Angreifer könnte eine nach dem Shutdown einer Schnittstelle zurückgebliebene Referenz ausnutzen, um eine Diensteverweigerung auszulösen oder möglicherweise Code im Kernel-Modus auszuführen.
Jan Blunck entdeckte, dass bei wiederholt fehlgeschlagenen Leseversuchen von /proc/scsi/sg/devices eine Speicherleck besteht, das einen Angriff zur Diensteverweigerung erlaubt.
Tetsuo Handa entdeckte, dass die Funktion udp_v6_get_port() aus dem IPv6-Code in eine unendliche Schleife gezwungen werden kann, was einen Angriff zur Diensteverweigerung erlaubt.
Vasiliy Averin entdeckte, dass die Referenzzähler von sockfd_put() und fput() zur Überlappung gezwungen werden können, was über eine Null-Zeiger-Dereferenzierung einen Angriff zur Diensteverweigerung erlaubt.
Eric Dumazet entdeckte, dass der System-Call set_mempolicy() als ersten Parameter einen negativen Wert zulässt, was einen BUG()-Assert auslöst. Dies erlaubt einen Angriff zur Diensteverweigerung.
Harald Welte entdeckte, dass eine zurückgebliebener Zeiger dereferenziert würde, wenn ein Prozess einen USB Request Block (URB) auf ein Gerät verlege und sich beende, bevor der URB abgeschlossen sei. Dies könnte dazu ausgenutzt werden, einen Angriff zur Diensteverweigerung auszulösen.
Pavel Roskin entdeckte, dass der Treiber für Orinoco Funknetzwerkkarten seinen Puffer nur unzureichend leert. Dies könnte sensitive Informationen dem Benutzerbereich offenbaren.
Robert Derr entdeckte, dass das Audit-Subsystem eine falsche Funktion zum freigeben von Speicher verwendet, was einen Angriff zur Diensteverweigerung erlaubt.
Rudolf Polzer entdeckte, dass der Kernel Zugriff auf den KDSKBSENT-ioctl unangemessen beschränkt, was möglicherweise eine Privilegien-Erweiterung zur Folge haben kann.
Doug Chapman entdeckte, dass der Syscall mq_open dazu verleitet werden kann, einen internen Zähler zweimal zu verkleinern, was über eine Kernel-Panic einen Angriff zur Diensteverweigerung erlaubt.
Doug Chapman entdeckte, das die Übergabe einer Null-Bitmaske an den System-Call set_mempolicy() eine Kernel-Panic zur Folge hat, was einen Angriff zur Diensteverweigerung erlaubt.
Der CLONE_THREAD verwendende ptrace-Code benutzt nicht die Thread-Gruppen-ID zur Bestimmung, ob der Aufrufer entsprechend anbindet, was einen Angriff zur Diensteverweigerung erlaubt.
Die Funktionalität zum automatischen Beenden von Kindprozessen beinhaltete ptraced-angebundene Prozesse, was über hängende Referenzen einen Angriff zur Diensteverweigerung erlaubt.
Yen Zheng entdeckte, dass der IPv6-Flow-Label-Code eine falsche Variable modifiziert, was eine Speicherverfälschung und Diensteverweigerung zur Folge haben könnte.
Es wurde entdeckt, dass ein in Threads ablaufender Echtzeitprozess, der gerade einen Coredump durchführt, in einen Stillstand gezwungen werden kann, indem ihm ein SIGKILL-Signal gesendet wird, was einen Angriff zur Diensteverweigerung erlaubt.
Ollie Wild entdeckte ein Speicherleck in der Funktion icmp_push_reply(), was über Speicherverbrauch eine Diensteverweigerung erlaubt.
Chris Wright entdeckte, dass exzessive Allozierung von kaputten Datei-Lock-Leases in der VFS-Schicht den Speicher erschöpfen und das Systemprotokoll anfüllen kann, was eine Diensteverweigerung erlaubt.
Patrick McHardy entdeckte ein Speicherleck in der Funktion ip6_input_finish() aus dem IPv6-Code, was eine Diensteverweigerung erlaubt.
Karl Janmar entdeckte, dass ein Fehler in der Signedness im procfs-Code dazu ausgenutzt werden kann, um Kernel-Speicher auszulesen, worüber sensitive Informationen enthüllt werden können.
Yi Ying entdeckte, dass sysctl die Größe eines Puffers nicht angemessen vorschreibt, was einen Angriff zur Diensteverweigerung erlaubt.
Stefan Rompf entdeckte, dass dm_crypt einen internen Struct nicht löscht, bevor es ihn freigibt, wodurch sensitive Informationen enthüllt werden können.
Es wurde entdeckt, dass die Überprüfung auf Fähigkeiten des SDLA-Treibers zu locker für Firmware-Aktualisierungen war.
Ludovic Courtes entdeckte, dass get_compat_timespec() unzureichende Eingabebereinigung betreibt, was einen lokalen Angriff zur Diensteverweigerung erlaubt.
Es wurde entdeckt, dass ptrace() auf der ia64-Architektur einen lokalen Angriff zur Diensteverweigerung erlaubt, wenn preemption aktiviert ist.
Die folgende Matrix erklärt, welche Kernelversion für welche Architektur die oben genannten Probleme behebt:
| Debian 3.1 (Sarge) | |
|---|---|
| Quelle | 2.6.8-16sarge2 |
| Alpha-Architektur | 2.6.8-16sarge2 |
| AMD64-Architektur | 2.6.8-16sarge2 |
| HP Precision-Architektur | 2.6.8-6sarge2 |
| Intel IA-32-Architektur | 2.6.8-16sarge2 |
| Intel IA-64-Architektur | 2.6.8-14sarge2 |
| Motorola 680x0-Architektur | 2.6.8-4sarge2 |
| PowerPC-Architektur | 2.6.8-12sarge2 |
| IBM S/390-Architektur | 2.6.8-5sarge2 |
| Sun Sparc-Architektur | 2.6.8-15sarge2 |
Die folgende Matrix listet zusätzliche Pakete auf, die aus Gründen der Kompatibilität, oder um Vorteile aus dieser Aktualisierung zu gewinnen, neu erstellt wurden:
| Debian 3.1 (Sarge) | |
|---|---|
| kernel-latest-2.6-alpha | 101sarge1 |
| kernel-latest-2.6-amd64 | 103sarge1 |
| kernel-latest-2.6-hppa | 2.6.8-1sarge1 |
| kernel-latest-2.6-sparc | 101sarge1 |
| kernel-latest-2.6-i386 | 101sarge1 |
| kernel-latest-powerpc | 102sarge1 |
| fai-kernels | 1.9.1sarge1 |
| hostap-modules-i386 | 0.3.7-1sarge1 |
| mol-modules-2.6.8 | 0.9.70+2.6.8+12sarge1 |
| ndiswrapper-modules-i386 | 1.1-2sarge1 |
Wir empfehlen Ihnen, Ihr kernel-Paket unverzüglich zu aktualisieren und ihre Rechner neu zu starten. Falls Sie einen angepassten Kernel aus einem Kernel-Quellpaket erstellt haben, müssen sie diesen neu erstellen, um einen Nutzen aus diesen Fehlerbehebungen zu ziehen.
Diese Aktualisierung führt eine Änderung in der Binärschnittstelle des Kernel ein. Die betroffenen Kernelpakete innerhalb von Debian sind neu erstellt worden, wenn Sie lokale Anpassungen hinzugefügt haben, dann müssen sie auch diese neu erstellen. Aufgrund einer Änderung des Paketnamens müssen Sie apt-get dist-upgrade verwenden, um Ihr System zu aktualisieren.
MD5-Prüfsummen der aufgeführten Dateien stehen in der ursprünglichen Sicherheitsankündigung zur Verfügung.