1.5 CVE-2007-3381

Privilege Escalation RCE Injection SQL Buffer Overflow RCI XSS Ransomware Risk
 

Der GDM-Daemon in GNOME Display Manager (GDM) vor 2.14.13, 2.16.x vor 2.16.7, 2.18.x vor 2.18.4 und 2.19.x vor 2.19.5 behandelt NULL-Rückgabewerte der Funktion g_strsplit nicht richtig, was es lokalen Benutzern ermöglicht, über einen manipulierten Befehl an den Socket des Daemons einen Denial-of-Service (anhaltenden Absturz des Daemons) zu verursachen. Dies betrifft (1) gdm.c und (2) gdmconfig.c in daemon/ und (3) gdmconfig.c und (4) gdmflexiserver.c in gui/.
https://nvd.nist.gov/vuln/detail/CVE-2007-3381

Kategorien

CWE-20 : Unsachgemäße Eingabevalidierung
Das Produkt empfängt Eingaben oder Daten, validiert aber nicht oder nicht korrekt, ob die Eingaben die Eigenschaften aufweisen, die für eine sichere und korrekte Verarbeitung der Daten erforderlich sind. Wenn eine benutzerdefinierte Eingabevalidierung erforderlich ist, z. B. bei der Durchsetzung von Geschäftsregeln, ist eine manuelle Analyse notwendig, um sicherzustellen, dass die Validierung ordnungsgemäß implementiert ist. Fuzzing-Techniken können bei der Erkennung von Eingabevalidierungsfehlern hilfreich sein. Wenn die Software unerwartete Eingaben erhält, sollte sie nicht abstürzen oder anderweitig instabil werden, und sie sollte anwendungsgesteuerte Fehlermeldungen erzeugen. Wenn Ausnahmen oder vom Interpreter generierte Fehlermeldungen auftreten, deutet dies darauf hin, dass die Eingabe nicht von der Anwendungslogik selbst erkannt und verarbeitet wurde. Erwägen Sie die Verwendung sprachtheoretischer Sicherheitstechniken (LangSec), die Eingaben mit Hilfe einer formalen Sprache charakterisieren und "Erkennungsprogramme" für diese Sprache erstellen. Dies macht es erforderlich, dass das Parsing eine separate Schicht ist, die eine Grenze zwischen der rohen Eingabe und den internen Datendarstellungen durchsetzt, anstatt zuzulassen, dass der Parser-Code im Programm verstreut ist, wo er Fehler oder Inkonsistenzen aufweisen kann, die Schwachstellen verursachen. [REF-1109] [REF-1110] [REF-1111] Verwenden Sie ein Eingabevalidierungs-Framework wie Struts oder die OWASP ESAPI Validation API. Beachten Sie, dass die Verwendung eines Frameworks nicht automatisch alle Probleme bei der Eingabevalidierung löst; achten Sie auf Schwachstellen, die durch den Missbrauch des Frameworks selbst entstehen könnten (CWE-1173). Machen Sie sich mit allen potenziellen Bereichen vertraut, in denen nicht vertrauenswürdige Eingaben in Ihre Software gelangen können: Parameter oder Argumente, Cookies, alles, was aus dem Netzwerk gelesen wird, Umgebungsvariablen, Reverse-DNS-Lookups, Abfrageergebnisse, Request-Header, URL-Komponenten, E-Mail, Dateien, Dateinamen, Datenbanken und alle externen Systeme, die der Anwendung Daten zur Verfügung stellen. Denken Sie daran, dass solche Eingaben auch indirekt über API-Aufrufe bezogen werden können. Wenn Ihre Anwendung Daten aus mehreren Quellen kombiniert, führen Sie die Validierung durch, nachdem die Quellen kombiniert wurden. Die einzelnen Datenelemente können den Validierungsschritt bestehen, aber nach der Kombination gegen die beabsichtigten Einschränkungen verstoßen. Achten Sie besonders darauf, alle Eingaben zu validieren, wenn Sie Code aufrufen, der Sprachgrenzen überschreitet, z. B. von einer interpretierten Sprache zu nativem Code. Dies könnte zu einer unerwarteten Interaktion zwischen den Sprachgrenzen führen. Stellen Sie sicher, dass Sie nicht gegen die Erwartungen der Sprache verstoßen, mit der Sie eine Schnittstelle bilden. Auch wenn Java beispielsweise nicht anfällig für Pufferüberläufe ist, könnte die Angabe eines großen Arguments in einem Aufruf an nativen Code einen Überlauf auslösen. Konvertieren Sie Ihren Eingabetyp direkt in den erwarteten Datentyp, z. B. mit einer Konvertierungsfunktion, die eine Zeichenkette in eine Zahl umwandelt. Stellen Sie nach der Konvertierung in den erwarteten Datentyp sicher, dass die Eingabewerte in den erwarteten Bereich zulässiger Werte fallen und dass die Konsistenz von mehreren Feldern gewahrt bleibt. Stellen Sie beim Datenaustausch zwischen Komponenten sicher, dass beide Komponenten die gleiche Zeichenkodierung verwenden. Stellen Sie sicher, dass an jeder Schnittstelle die richtige Kodierung verwendet wird. Legen Sie die von Ihnen verwendete Kodierung explizit fest, wenn das Protokoll dies zulässt. Kette: Unsachgemäße Eingabevalidierung (CWE-20) führt zu einem Integer-Überlauf (CWE-190) in mobilen Betriebssystemen, wie er in freier Wildbahn per CISA KEV ausgenutzt wurde. Kette: Unsachgemäße Eingabevalidierung (CWE-20) führt zu einem Integer-Überlauf (CWE-190) in mobilen Betriebssystemen, wie er in freier Wildbahn gemäß CISA KEV ausgenutzt wurde. Kette: Ein Backslash gefolgt von einem Zeilenumbruch kann einen Validierungsschritt umgehen (CWE-20), was zu einer eval-Injektion führt (CWE-95), wie sie in freier Wildbahn durch CISA KEV ausgenutzt wurde. Kette: Unzureichende Eingabevalidierung (CWE-20) im Browser ermöglicht Heap Corruption (CWE-787), wie in freier Wildbahn durch CISA KEV ausgenutzt. Kette: unzureichende Eingabevalidierung (CWE-20) im Parameter username, was zur Einspeisung von OS-Befehlen führt (CWE-78), wie in the wild per CISA KEV ausgenutzt wurde. Chain: Sicherheitsprodukt hat unsachgemäße Eingabevalidierung (CWE-20), die zu Directory Traversal (CWE-22) führt, wie in the wild per CISA KEV ausgenutzt wurde. Unsachgemäße Eingabevalidierung von HTTP-Anfragen in IP-Telefonen, die gemäß CISA KEV in freier Wildbahn ausgenutzt werden. Kette: Unsachgemäße Eingabevalidierung (CWE-20) in einem Firewall-Produkt führt zu XSS (CWE-79), das laut CISA KEV in freier Wildbahn ausgenutzt wurde. Kette: Caching-Proxy-Server hat eine unsachgemäße Eingabevalidierung (CWE-20) von Headern, die das Einschmuggeln von HTTP-Antworten (CWE-444) unter Verwendung eines "LF-Zeilenendes" ermöglicht Eval-Injection in Perl-Programm unter Verwendung einer ID, die nur Bindestriche und Zahlen enthalten sollte. SQL-Injection durch eine ID, die eigentlich numerisch sein sollte. Mangelnde Eingabevalidierung in einem Tabellenkalkulationsprogramm führt zu Pufferüberläufen, Integer-Überläufen, Array-Index-Fehlern und Speicherbeschädigung. unzureichende Validierung ermöglicht XSS-Treiber in Sicherheitsprodukt ermöglicht Codeausführung aufgrund unzureichender Validierung Endlosschleife von DNS-Paket mit einem Label, das auf sich selbst verweist Endlosschleife von DNS-Paket mit einem Label, das auf sich selbst verweist fehlender Parameter führt zu Absturz HTTP-Anfrage mit fehlender Protokollversionsnummer führt zu Absturz Anfrage mit fehlenden Parametern führt zu Systemabsturz mit Offset-Wert, der nicht mit der Paketgröße übereinstimmt Feld, das nicht mit der Paketgröße übereinstimmt, führt zu Pufferüberlauf Produkt verwendet eine Denyliste, um potenziell gefährliche Inhalte zu identifizieren Ermöglicht Angreifern die Umgehung einer Warnung Sicherheitsumgehung über einen zusätzlichen Header Leeres Paket löst Neustart aus Unvollständige Denyliste ermöglicht SQL-Injektion NUL-Byte im Themennamen führt dazu, dass die Auswirkungen von Directory Traversal schlimmer sind Kernel validiert einen eingehenden Zeiger nicht, bevor er ihn dereferenziert Anti-Virus-Produkt hat eine unzureichende Eingabevalidierung von gehakten SSDT-Funktionen Ermöglichung der Code-Ausführung Antiviren-Produkt ermöglicht DoS über ein Feld mit Null-Länge Treiber validiert keine Eingaben aus dem Benutzerland an den Kernel Kernel validiert keine Parameter, die aus dem Benutzerland gesendet werden, Ermöglicht Code-Ausführung fehlende Validierung von String-Längenfeldern ermöglicht Speicherverbrauch oder Puffer-Überlesen fehlende Validierung des Längenfeldes führt zu Endlosschleife fehlende Validierung der Eingabe in eine IOCTL ermöglicht Code-Ausführung Null-Längen-Anhang führt zu Absturz Null-Längen-Eingabe führt zu nicht initialisiertem Zeiger Absturz über eine fehlerhafte Rahmenstruktur Endlosschleife aus einer langen SMTP-Anfrage Router stürzt mit einem fehlerhaften Paket ab Paket mit ungültiger Versionsnummer führt zu NULL-Zeiger-Dereferenz Absturz über mehrere "." Zeichen in der Dateierweiterung

Referenzen


 

CPE

cpe start ende
Configuration 1
cpe:2.3:a:gnome:gdm:0.7:*:*:*:*:*:*:*
cpe:2.3:a:gnome:gdm:1.0:*:*:*:*:*:*:*
cpe:2.3:a:gnome:gdm:2.0:*:*:*:*:*:*:*
cpe:2.3:a:gnome:gdm:2.2:*:*:*:*:*:*:*
cpe:2.3:a:gnome:gdm:2.3:*:*:*:*:*:*:*
cpe:2.3:a:gnome:gdm:2.4:*:*:*:*:*:*:*
cpe:2.3:a:gnome:gdm:2.5:*:*:*:*:*:*:*
cpe:2.3:a:gnome:gdm:2.6:*:*:*:*:*:*:*
cpe:2.3:a:gnome:gdm:2.8:*:*:*:*:*:*:*
cpe:2.3:a:gnome:gdm:2.13:*:*:*:*:*:*:*
cpe:2.3:a:gnome:gdm:2.14:*:*:*:*:*:*:*
cpe:2.3:a:gnome:gdm:2.14.1:*:*:*:*:*:*:*
cpe:2.3:a:gnome:gdm:2.14.2:*:*:*:*:*:*:*
cpe:2.3:a:gnome:gdm:2.14.3:*:*:*:*:*:*:*
cpe:2.3:a:gnome:gdm:2.14.4:*:*:*:*:*:*:*
cpe:2.3:a:gnome:gdm:2.14.5:*:*:*:*:*:*:*
cpe:2.3:a:gnome:gdm:2.14.6:*:*:*:*:*:*:*
cpe:2.3:a:gnome:gdm:2.14.7:*:*:*:*:*:*:*
cpe:2.3:a:gnome:gdm:2.14.8:*:*:*:*:*:*:*
cpe:2.3:a:gnome:gdm:2.14.9:*:*:*:*:*:*:*
cpe:2.3:a:gnome:gdm:2.14.10:*:*:*:*:*:*:*
cpe:2.3:a:gnome:gdm:2.14.11:*:*:*:*:*:*:*
cpe:2.3:a:gnome:gdm:*:*:*:*:*:*:*:* <= 2.14.12
Configuration 2
cpe:2.3:a:gnome:gdm:2.14.3:*:*:*:*:*:*:*
cpe:2.3:a:gnome:gdm:2.14.4:*:*:*:*:*:*:*
cpe:2.3:a:gnome:gdm:2.14.5:*:*:*:*:*:*:*
cpe:2.3:a:gnome:gdm:2.14.6:*:*:*:*:*:*:*
cpe:2.3:a:gnome:gdm:2.16:*:*:*:*:*:*:*
cpe:2.3:a:gnome:gdm:2.16.1:*:*:*:*:*:*:*
cpe:2.3:a:gnome:gdm:2.16.2:*:*:*:*:*:*:*
Configuration 3
cpe:2.3:a:gnome:gdm:2.18:*:*:*:*:*:*:*
cpe:2.3:a:gnome:gdm:2.18.1:*:*:*:*:*:*:*
cpe:2.3:a:gnome:gdm:2.18.2:*:*:*:*:*:*:*
cpe:2.3:a:gnome:gdm:2.18.3:*:*:*:*:*:*:*
Configuration 4
cpe:2.3:a:gnome:gdm:2.19:*:*:*:*:*:*:*
cpe:2.3:a:gnome:gdm:2.19.1:*:*:*:*:*:*:*
cpe:2.3:a:gnome:gdm:2.19.2:*:*:*:*:*:*:*
cpe:2.3:a:gnome:gdm:2.19.3:*:*:*:*:*:*:*
cpe:2.3:a:gnome:gdm:2.19.4:*:*:*:*:*:*:*


REMEDIERUNG




EXPLOITS


Exploit-db.com

id beschreibung datum
Keine bekannten Exploits

Andere (github, ...)

Url
Keine bekannten Exploits


CAPEC


Common Attack Pattern Enumerations and Classifications

id beschreibung schweregrad
10 Buffer Overflow via Environment Variables
Hoch
101 Server Side Include (SSI) Injektion
Hoch
104 Cross Zone Scripting
Hoch
108 Command Line Execution through SQL Injection
Sehr hoch
109 Objektrelationale Mapping-Injektion
Hoch
110 SQL Injection durch SOAP-Parameter-Manipulation
Sehr hoch
120 Doppelte Kodierung
Mittel
13 Umgebungsvariablenwerte unterwandern
Sehr hoch
135 Format String Injection
Hoch
136 LDAP Injection
Hoch
14 Client-seitige Injektion-induzierter Pufferüberlauf
Hoch
153 Input Data Manipulation
Mittel
182 Flash Injection
Mittel
209 XSS Using MIME Type Mismatch
Mittel
22 Exploiting Trust in Client
Hoch
23 File Content Injection
Sehr hoch
230 Serialisierte Daten mit verschachtelten Nutzdaten
Hoch
231 Übergroße serialisierte Daten-Nutzlasten
Hoch
24 Filter Failure through Buffer Overflow
Hoch
250
261 Fuzzing zum Sammeln anderer benachbarter Benutzer/sensibler Daten
Mittel
267 Alternative Kodierung nutzen
Hoch
28 Fuzzing
Mittel
3 Führende "Geister"-Zeichenfolgen zum Umgehen von Eingabefiltern verwenden
Mittel
31 Zugriff/Abfangen/Modifizieren von HTTP-Cookies
Hoch
42 MIME Conversion
Hoch
43 Ausnutzen mehrerer Eingangsinterpretationsschichten
Hoch
45 Buffer Overflow via Symbolic Links
Hoch
46 Overflow Variables and Tags
Hoch
47 Buffer Overflow via Parameter Expansion
Hoch
473 Signature Spoof
52 NULL-Bytes einbetten
Hoch
53 Postfix, Nullterminierung und Backslash
Hoch
588 DOM-Based XSS
Sehr hoch
63 Cross-Site Scripting (XSS)
Sehr hoch
64 Kombinierte Verwendung von Schrägstrichen und URL-Kodierung zur Umgehung der Validierungslogik
Hoch
664 Server Side Request Forgery
Hoch
67 String Format Overflow in syslog()
Sehr hoch
7 Blinde SQL-Injektion
Hoch
71 Verwendung der Unicode-Kodierung zur Umgehung der Validierungslogik
Hoch
72 URL-Kodierung
Hoch
73 User-Controlled Filename
Hoch
78 Escaped Slashes in alternativer Kodierung verwenden
Hoch
79 Schrägstriche in alternativer Kodierung verwenden
Hoch
8 Buffer Overflow in an API Call
Hoch
80 Verwendung der UTF-8-Kodierung zur Umgehung der Validierungslogik
Hoch
81
Hoch
83 XPath-Injektion
Hoch
85 AJAX-Footprinting
Niedrig
88 OS-Befehlsinjektion
Hoch
9 Buffer Overflow in Local Command-Line Utilities
Hoch


MITRE


Techniken

id beschreibung
T1027 Verdeckte Dateien oder Informationen
T1036.001 Maskerade: Ungültige Code-Signatur
T1539 Web-Session-Cookie stehlen
T1553.002 Vertrauenskontrollen unterwandern: Code Signing
T1562.003 Verteidigungen beeinträchtigen:Protokollierung der Befehlshistorie beeinträchtigen
T1574.006 Hijack-Ausführungsablauf: Dynamisches Linker-Hijacking
T1574.007 Hijack-Ausführungsablauf: Abfangen von Pfaden durch die Umgebungsvariable PATH
© 2022 The MITRE Corporation. Dieses Werk wird mit Genehmigung von The MITRE Corporation vervielfältigt und verbreitet.

Abhilfemaßnahmen

id beschreibung
T1027 Aktivieren Sie unter Windows 10 die ASR-Regeln (Attack Surface Reduction), um die Ausführung von potenziell verschleierten Nutzdaten zu verhindern.
T1036.001 Erfordert signierte Binärdateien.
T1539 Schulen Sie die Benutzer darin, Aspekte von Phishing-Versuchen zu erkennen, bei denen sie aufgefordert werden, Anmeldedaten auf einer Website einzugeben, die die falsche Domäne für die Anwendung hat, bei der sie sich anmelden.
T1562.003 Stellen Sie sicher, dass die <code>HISTCONTROL</code> Umgebungsvariable auf "ignoredups" statt auf "ignoreboth" oder "ignorespace" gesetzt ist.
T1574.006 Wenn Systemintegritätsschutz (SIP) in macOS aktiviert ist, werden die oben genannten Umgebungsvariablen bei der Ausführung geschützter Binärdateien ignoriert. Anwendungen von Drittanbietern können auch Apples Hardened Runtime nutzen, um sicherzustellen, dass diese Umgebungsvariablen auferlegten Einschränkungen unterworfen sind. Administratoren können Anwendungen Einschränkungen hinzufügen, indem sie die setuid- und/oder setgid-Bits setzen, Berechtigungen verwenden oder ein __RESTRICT-Segment in der Mach-O-Binärdatei haben.
T1574.007
© 2022 The MITRE Corporation. Dieses Werk wird mit Genehmigung von The MITRE Corporation vervielfältigt und verbreitet.