[Generic/talkd] Schwachstelle im talkd
(2002-05-27 17:03:05.521653+00)
Quelle:
http://cert.Uni-Stuttgart.DE/archive/bugtraq/2002/05/msg00204.html
In verschiedenen Versionen des talk
-Servers wurde eine Format-String-Schwachstelle entdeckt, die über das Netz für Angriffe ausnutzbar ist.
Betroffene Systeme
- OpenBSD bis einschließlich Version 2.7
ktalkd
in KDE bis einschließlich Version 3.0.1- Solaris 2.6, 8 und 8
- IRIX 6.5.9 und frühere Versionen
- Weitere
talkd
-Implementierungen sind vermutlich betroffen.
Nicht betroffene Systeme
- OpenBSD ab Version 2.8
- Debian-Systeme, die das Paket
talkd
(stattktalkd
) in einer neueren Version (z.B. 0.17-5) verwenden. - Weitere Systeme, die neuere Versionen von
netkit-ntalk
verwenden. - IRIX 6.5.10 und spätere Versionen
Einfallstor
Ein Angriff erfolgt über das talk
-Protokoll (UDP-Port 517) und DNS (Port 53 UDP/TCP).
Auswirkung
Kompromittierung des beherbergenden Rechnersystems über eine Netzwerkverbindung
(remote root compromise)
Typ der Verwundbarkeit
format string bug
Gefahrenpotential
sehr hoch
(Hinweise zur Einstufung des Gefahrenpotentials.)
Beschreibung
In verschiedenen Versionen des talk
-Servers ist ein format string bug bei der Verarbeitung von Daten, die über das Netz übertragen wurden, enthalten. (Diese Daten stammen aus eingegangenen talk
-Requests und/oder aus dem Domain Name System (DNS).) Dieser Fehler ermöglicht es Angreifern, beliebigen Programmcode mit den Rechten des talkd
-Prozesses auszuführen (in der Regel sind dies root
-Rechte).
Unter Solaris wird in.talkd
standardmäßig installiert und durch inetd
bei dem Eintreffen eines entsprechenden UDP-Requests gestartet.
(Bei der Schwachstelle handelt es sich um ein Problem, welches bereits im Oktober 2000 beschrieben wurde.)
Gegenmaßnahmen
- Auf Debian-Systemen kann das Paket
talkd
verwendet werden, welches zumindest in der Version 0.17-5 diese Schwachstelle nicht aufweist. - Für Solaris stehen noch keine Patches zur Verfügung.
Workaround
In der Regel läßt sich talkd
(bzw. ein talk
-Server mit anderem Namen) ohne negative Auswirkungen deaktivieren, da der Dienst nicht benötigt wird.
- Bei GNU/Linux-Systemen deinstallieren Sie das entsprechende Paket ("
talkd
" oder "ktalkd
"). Um sicherzugehen, daß danach keine Kopie destalk
-Servers mehr läuft, ist anschließend ein Neustart empfehlenswert. - Unter Solaris ist das Auskommentieren der ensprechenden Zeile in
/etc/inetd.conf
empfehlenswert:- Loggen Sie sich als
root
ein:$ su Password: #
- Editieren Sie die Datei
/etc/inetd.conf
# vi /etc/inetd.conf
- Suchen Sie die Zeile
talk dgram udp wait root /usr/sbin/in.talkd in.talkd
und kommentieren Sie sie durch Voranstellung eines Doppelkreuzes aus:# talk dgram udp wait root /usr/sbin/in.talkd in.talkd
- Starten Sie
inetd
neu und beenden Sie ggf. einen noch laufendenin.talkd
-Prozeß:- unter Solaris 2.5.1 und 2.6 mit den Kommandos:
# kill -HUP PID_von_inetd # kill PID_von_in.talkd
Mittels des Kommandos:# ps -ef | grep inetd
bzw.# ps -ef | grep in.talkd
kann die PID des jeweiligen Prozesses ermittelt werden. - unter Solaris 7 und 8:
# pkill -HUP inetd # pkill in.talkd
- unter Solaris 2.5.1 und 2.6 mit den Kommandos:
- Loggen Sie sich wieder aus:
# exit $
- Loggen Sie sich als
Weitere Information zu diesem Thema
- [NGSEC-2002-3] Solaris in.talkd remote root compromise
- BUGTRAQ-Artikel vom Oktober 2000 zu diesem Problem
Hinweis
Die in diesem Text enthaltene Information wurde für die Mitglieder der Universität Stuttgart recherchiert und zusammengestellt. Die Universität Stuttgart übernimmt keinerlei Haftung für die Inhalte. Dieser Artikel darf ausschließlich in unveränderter Form und nur zusammen mit diesem Hinweis sowie dem folgenden Copyrightverweis veröffentlicht werden. Eine Veröffentlichung unter diesen Bedingungen an anderer Stelle ist ausdrücklich gestattet.
Copyright © 2022 RUS-CERT, Universität Stuttgart, https://cert.uni-stuttgart.de/
https://cert.uni-stuttgart.de/ticker/article.php?mid=819