Skip to content
KitploitKITPLOIT
ToolsBlog
Log in
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.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2026-20217 — Reproduziert nicht authentifizierten ZendTo-ClamAV-RCE und Root-Rechteausweitung in einer autorisierten Laborumgebung, mit festgepinntem Docker-Ziel, Fail-Closed-Verifizierung, Nonce-gebundener Ausgabe und Bereinigung. | Kitploit
Tools/GitHubGitHub/securifera/cve-2026-20217
Privilege EscalationSchwachstellenanalyseExploitationWebanwendungs-ExploitationPost-ExploitationWebsicherheitPenetrationstestsRed Teaming
GitHubsecurifera/cve-2026-20217

CVE-2026-20217

Reproduziert nicht authentifizierten ZendTo-ClamAV-RCE und Root-Rechteausweitung in einer autorisierten Laborumgebung, mit festgepinntem Docker-Ziel, Fail-Closed-Verifizierung, Nonce-gebundener Ausgabe und Bereinigung.

1127vor 1 MonatNoch 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
Repository anzeigen

ZendTo 6.15-8 / ClamAV RCE bei exaktem Profil und Reproduktion der Root-Variante

Dieses Verzeichnis ist ein eigenständiges Reproduktionsbündel für autorisierte Labore der kontolosen ZendTo-zu-ClamAV-Code-Ausführungskette sowie ihrer separaten Smarty-/Root-Cron-Fortführung mit Standardprofil. Es enthält:

  • den vollständigen ausführbaren Abhängigkeitsabschluss des PoC;
  • Skripte und Herkunftsnachweise zur Konstruktion der Docker-Zieltopologie;
  • eine Docker-Compose-Definition, die dem getesteten systemd-/Socket-Lebenszyklus entspricht;
  • fail-closed-Prüfungen für Image, Pakete, Binärdateien, Konfiguration, CVD, DAC, Cron, PHP, MAC und Dateisystem-Semantik; und
  • Helfer für die einzige nur-im-Labor-Verifikationsfähigkeit und für die Bereinigung.

Der initiale PoC führt einen vom Aufrufer gewählten Befehl als das Standard-Dienstkonto clamav aus. Die optionale Variante erweitert diesen kontolosen Einstiegspunkt zu einem vom Aufrufer gewählten Befehl als root. Beide verwenden standardmäßig id, lehnen den wörtlichen Pfad /root/flag ab und liefern nonce-gebundene Ausgaben über HTTPS.

Die verwundbaren Gruppen-, Verzeichnis-, Smarty- und Root-Cron-Beziehungen entsprechen den Debian-Paket-/Installationsstandardwerten von ZendTo. Die Erreichbarkeit von root ist dennoch umgebungsabhängig: Diese exakte positive Testumgebung verwendet ein ext4-gestütztes /var/zendto-Volume, funktionierendes PHP-CLI-FFI/POSIX/exec und einen uneingeschränkten clamd-Prozess. Das Erzwingen von AppArmor/SELinux oder inkompatible Dateisystem-Semantik kann die Fortführung auf einer ansonsten unveränderten Installation blockieren.

Verwenden Sie dies nur auf der enthaltenen Wegwerf-Testumgebung oder einem anderen System, das Sie ausdrücklich testen dürfen.

Was gepinnt ist

Das maßgebliche exakte Ziel ist ein lokales, absichtlich nicht versioniertes Artefakt unter:

image/zendto-installer-systemd-debian12.tar.zst

Git ignoriert Docker-Image-Archive. Legen Sie vor der exakten Regression eine autorisierte lokale Kopie an diesem Pfad ab; scripts/setup.sh erwartet die aufgezeichnete SHA-256-Prüfsumme und Image-ID. source-recipe/README.md dokumentiert, wie das aus dem Installer abgeleitete Image erstellt und erfasst wurde. Ein neuer Build aus Live-Paketquellen ist für Topologietests nützlich, wird aber nicht als byte-identisch mit dem gepinnten Ziel angenommen.

Das Setup und der Container-Entrypoint lehnen jede Abweichung vom folgenden Profil ab:

KomponenteExakt getesteter Wert
Docker-Image-IDsha256:de6d2f06ca04943362a9bdec5026e808448953728f31bd926343a4ed2ca2ef7c
ZendTo6.15-8
ClamAV/libclamav-Paket1.4.3+dfsg-1~deb12u2
libclamavlibclamav.so.12.0.3, SHA-256 55e3cd94…027c
libclamav-Build-IDe6427ab62146ee3001fe463d12e797e9d25bf81a
glibc2.36-9+deb12u14, SHA-256 6b4a4535…421
main-Datenbankv63, SHA-256 0b2182d2…365
daily-Datenbankv28082, SHA-256 cddbcccf…906
bytecode-Datenbankv339, SHA-256 6d4aa01f…ffb
clamdMaxThreads 12, IdleTimeout 30, Restart=no
Lebenszyklusaktivierter clamav-daemon.socket, systemd-PID 1
Web-LaufzeitApache 2.4.68, PHP 8.2.32
MAC-Haltunguneingeschränkte privilegierte Docker-Testumgebung
Root-BrückeStandard-clamav in www-data; /var/zendto root:www-data 0775
Root-KonsumentStandard-Root-Cleanup-Cron, stündlich zur Minute 25
Smarty-Cachedeterministisch kompiliertes Smarty 4.5.4 zendto.conf
Austausch-Dateisystemext4-gestütztes benanntes /var/zendto-Volume

Die vollständigen Werte stehen in PROFILE.json.

Das ist stärker als nur die ClamAV-Paketversion zu pinnen. Die Allokator-Konstruktion hängt ebenfalls von glibc, dem CVD-gesteuerten Parser-Verkehr, den Worker-Einstellungen und der exakten Ziellibrary ab. FreshClam ist im erfassten Image deaktiviert, und der Start schlägt fehl, wenn daily.cvd abgewichen ist oder eine daily.cld aufgetaucht ist.

Der derzeit langlaufende Forschungscontainer im übergeordneten Workspace ist nicht die saubere Testumgebung: Spätere Tests haben dessen Formular für externe Absender deaktiviert und seine daily-Datenbank aktualisiert. Diese Änderungen sind hier bewusst ausgeschlossen. Dieses Bündel verwendet die saubere Baseline, gegen die die native Ausführung demonstriert wurde.

Host-Anforderungen

  • x86-64-Linux mit Docker Engine und Docker Compose v2
  • Berechtigung zum Ausführen privilegierter Container
  • cgroup v2 und /sys/fs/cgroup
  • zstd, Python 3 mit venv, ein C-Compiler, file und GNU readelf
  • ausreichend Arbeitsspeicher für die nativen Parser von ClamAV ohne enge Container-Grenze
  • mindestens 1 GiB freier Speicherplatz für das lokale Image-Artefakt und das laufende Ziel

Das Ziel teilt sich den Host-Kernel und die ASLR-Implementierung. Kernabhängiges Mapping-Verhalten bleibt daher eine Portabilitätsvariable.

Es sollte jeweils nur eine systemd-Testumgebung den Host-cgroup-Namespace teilen. Stoppen Sie auf dem ursprünglichen Forschungsrechner die ältere Testumgebung, ohne sie zu löschen:

docker stop zendto-installer-systemd-native

Sie kann später mit docker start zendto-installer-systemd-native wiederhergestellt werden.

Das exakte Ziel starten

Aus diesem Verzeichnis:

./scripts/verify-bundle.sh
./scripts/setup.sh

Das Setup-Skript:

  1. prüft das unveränderliche Quell-Manifest und die SHA-256-Prüfsumme des lokalen Images;
  2. lädt das exakte Image und vergibt es neu, ohne eine Registry zu kontaktieren;
  3. erstellt .venv mit den gepinnten Python-Abhängigkeiten des PoC;
  4. baut den kleinen lokalen PESpin-Helfer für die libc des Betreibers neu;
  5. prüft das lokale libclamav-Artefakt und alle Ziel-Gadget-Fenster;
  6. validiert das Compose-Modell;
  7. erstellt ein neues benanntes /var/zendto-Volume und startet systemd; und
  8. prüft Paketversionen, Ziel-Hashes, CVDs, Apache, clamd und Socket-Aktivierung; und
  9. weist die Voraussetzungen der Standard-Root-Variante nach, einschließlich einer Wegwerf-Operation renameat2(RENAME_EXCHANGE), die als clamav ausgeführt wird.

Die Standard-Endpunkte sind nur auf Loopback erreichbar:

http://127.0.0.1:18084/
https://127.0.0.1:18447/

Das Zertifikat ist selbstsigniert. Der PoC verwendet für jede HTTP-Anfrage bewusst verify=False. Vor dem Setup können andere Loopback-Ports gewählt werden:

export ZENDTO_HTTP_PORT=19084
export ZENDTO_HTTPS_PORT=19447
./scripts/setup.sh

Verwenden Sie für spätere Compose-/Helfer-Befehle dieselben Umgebungsvariablen.

Überprüfen Sie das Ziel jederzeit:

./scripts/verify-target.sh
docker compose ps

Die CAPTCHA-/E-Mail-Grenze in dieser Testumgebung

Die saubere Installer-Baseline enthält:

allowExternalUploads = TRUE
confirmExternalEmails = TRUE
captcha = google

Seine CAPTCHA- und Mail-Werte sind Installer-Platzhalter, sodass das unveränderte Archiv die öffentliche Verifikations-E-Mail nicht tatsächlich zustellen kann. Das native Regressionstesten hat nur diesen abgeschlossenen Anwendungsschritt durch eine äquivalente AuthData-Zeile für externe Absender repräsentiert. Der Zielcode, die Pakete, der Scanner, die Berechtigungen und der Exploit-Pfad wurden nicht gepatcht.

Erstellen Sie diese eine Labor-Zeile und eine Token-Datei mit Modus 0600 mit:

./scripts/mint-lab-auth.py [email protected]

Der Token-Wert wird nicht ausgegeben und unter folgendem Pfad gespeichert:

.lab/upload-auth-token.txt

Dieser lokale Helfer ist keine Behauptung, dass eine Bereitstellung mit deaktiviertem externen Upload aus der Ferne ausgenutzt werden kann. Wenn das öffentliche Formular für externe Absender deaktiviert ist, stoppt der PoC korrekt vor ClamAV, selbst wenn eine Token-Datei bereitgestellt wird.

Tool herunterladen