Stabsstelle Informationssicherheit der
Universität Stuttgart (RUS-CERT)
https://cert.uni-stuttgart.de
logo
Meldung Nr: RUS-CERT-880

[Generic/CDE] Mehrere Schwachstellen in CDE ToolTalk
(2002-07-11 15:38:55.149407+00)

Quelle: http://www.cert.org/advisories/CA-2002-20.html

Zwei Schwachstellen im ToolTalk-Dienst der Common Desktop Environment (CDE) ermöglichen Angreifern über eine Netzwerkverbindung bzw. über interaktiven Zugang zum System beliebigen Programmcode mit den Privilegien des ToolTalk-Dienstes (i. a. root) auszuführen.

Betroffene Systeme

Einfallstor

  1. RPC-Request an den rpc.ttdbserverd-Dienst
  2. RPC-Request an den rpc.ttdbserverd-Dienst durch einen lokalen Benutzer nach Erzeugung spezieller symbolischer Links

Auswirkung

  1. Kompromittierung des beherbergenden Rechnersystems über eine Netzwerkverbindung
    (remote root compromise)
  2. Kompromittierung des beherbergenden Rechnersystems
    (local root compromise)

Typ der Verwundbarkeit

  1. buffer overflow bug
  2. sym-link vulnerability

Gefahrenpotential

  1. sehr hoch
  2. hoch

(Hinweise zur Einstufung des Gefahrenpotentials.)

Kontext
CDE ist eine auf dem X-Windowsystem basierende, integrierte graphisches Benutzungsschnittstelle für UNIX- und Linux-Systeme.

CDE ToolTalk ist ein Nachrichtenmaklerdienst, der die rechner- und plattformübergreifende Kommunikation von Applikationen untereinander ermöglicht. Der ToolTalk RPC database server rpc.ttdbserverd verwaltet die Kommunikation von ToolTalk-Applikationen.

Üblicherweise wird rpc.ttdbserverd mit der UID=root gestartet und legt die damit verbundenen Privilegien während der Programmlaufzeit nicht ab.

Beschreibung

  1. Der ToolTalk RPC database server rpc.ttdbserverd überprüft beim Aufruf übergebene Argumente unzureichend, so daß ein Angreifer in die Lage versetzt ist, mittels entsprechend formulierter Argumente bestimmte Speicherbereiche des beherbergenden Rechnersystems zu manipulieren. Dies kann von einem Angreifer neben anderen Möglichkeiten dazu ausgenutzt werden, über eine Netzwerkverbindung beliebigen Programmcode mit den Privilegien des ToolTalk RPC database servers auszuführen. Da rpc.ttdbserverd üblicherweise die Privilegien der UID=root besitzt, führt dies zur Kompromittierung des beherbergenden Rechnersystems.
  2. Der ToolTalk RPC database server rpc.ttdbserverd überprüft beim Aufruf als Argument übergebene Dateipfade nicht ordnungsgemäß auf das Vorhandensein symbolischer Links. Dies kann von einem Angreifer mit Zugriff auf Teile des Verzeichnisbaums (z. B. ordentliche lokale Benutzer mit Zugriff auf ihr Heimatverzeichnis) dazu ausgenutzt werden, beliebige Dateien im Verzeichnisbaum von rpc.ttdbserverd überschreiben zu lassen. Im Falle von vitalen Systemdateien kann dies zur Kompromittierung des beherbergenden Rechnersystems führen.

Feststellen der Verwundbarkeit
Es sind nur Systeme betroffen, die den rpc.ttdbserverd-Dienst anbieten. Der entsprechende RPC-Dienst trägt die Programmnummer 100083; RPC-Dienste auf dem lokalen System können mit dem Befehl "rpcinfo -p" angezeigt werden:

$ rpcinfo -p
   program vers proto   port  service
    [...]
    100083    1   tcp   32773    
    [...]
$ 
Auf einem betroffenen System wird - wie oben - der RPC-Dienst 100083 aufgeführt.

Gegenmaßnahmen
Derzeit sind noch keine Patches verfügbar.

Workaround
Abschaltung des ToolTalk RPC database servers rpc.ttdbserverd

Dies kann durch das Auskommentieren der entsprechenden Zeile in der Datei /etc/inetd.conf geschehen. Dazu muß die Zeile

100083/1     tli   rpc/tcp wait root /usr/dt/bin/rpc.ttdbserverd rpc.ttdbserverd
durch
#100083/1     tli   rpc/tcp wait root /usr/dt/bin/rpc.ttdbserverd rpc.ttdbserverd
ersetzt werden. Nach dieser Maßnahme ist ein Neustart des inetd mit dem Kommando 'kill -HUP PID_von_inetd' erforderlich, wobei die die PID folgendermaßen ermittelt werden kann: (im Beispiel ist die PID=323):
# ps -ef | grep inetd
   root    323     1  0   Mar 09 ?        1:36 /usr/sbin/inetd -s
   rustler 14180 13502  0 15:29:28 pts/15   0:00 grep inetd
#
das folgende Kommando startet inetd neu:
# kill -HUP 323
# 
Ferner muß geprüft werden, ob der rpc.ttdbserverd-Dienst läuft:
# ps -ef | grep ttdbserv
      root   9731   323  0 21:43:32 ?        0:00 rpc.ttdbserverd
# 
Falls das der Fall ist, sollte mit "kill -9 PID_von_rpc.ttdbserverd" der Prozeß beendet werden, also in diesem Beispiel:
# kill -9 9731
#

Vulnerability ID

  1. VU#975403 (CERT/CC)
    CAN-2002-0677 (CVE)
  2. VU#299816 (CERT/CC)
    CAN-2002-0678 (CVE)

Weitere Information zu diesem Thema

(og)

Weitere Artikel zu diesem Thema:

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=880