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-2025-22381 — Entdeckung von CVE-2025-22381: Host-Header-Injection im Open-Source-Projekt Aggie | Kitploit
Tools/GitHubGitHub/pescada-dev/cve-2025-22381
PasswortangriffeSchwachstellenanalyseExploitationPhishingWebsicherheitLernen & Bildung
GitHubpescada-dev/cve-2025-22381

CVE-2025-22381

Entdeckung von CVE-2025-22381: Host-Header-Injection im Open-Source-Projekt Aggie

Repository anzeigen
1vor 6 MonatenNoch 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-2025-22381: Host-Header-Injection in Aggie

Detaillierte Analyse und Proof-of-Concept für CVE-2025-22381, eine Host-Header-Injection-Schwachstelle, die im Open-Source-Projekt Aggie entdeckt wurde.



Schwachstellenübersicht+



CVE ID: CVE-2025-22381

Veröffentlicht: Oktober 2025 (MITRE-Zuordnung)

Öffentlich bekannt gegeben: Februar 2026

Reporter: Anas Abderrahman Benbarek

Entdeckungsdatum: 17. September 2025

Betroffenes Projekt: TID-Lab/aggie

Betroffene Versionen: Alle Versionen (einschließlich 2.6.1 und früher; Stand Februar 2026 kein Fix angewendet)

Schweregrad: Mittel bis Hoch (geschätzter CVSS-Wert ~7.1–7.5)

Auswirkung: Ermöglicht Phishing-Angriffe, die zum Diebstahl von Passwort-Reset-Tokens und potenzieller Kontokompromittierung führen.



Hintergrund



Ich verbringe ziemlich viel Zeit damit, Open-Source-Node.js-Projekte auf GitHub zu überprüfen, insbesondere solche, die Authentifizierungsabläufe behandeln. Im September 2025, als ich das Aggie-Repository durchsah, fiel mir etwas auf, das in der Passwort-Reset-Logik sofort ins Auge stach. Was als routinemäßiges Lesen von Code begann, endete als CVE-2025-22381 – eine klassische Host-Header-Injection-Schwachstelle, die es einem Angreifer ermöglicht, die Domain in Passwort-Reset-E-Mails zu kontrollieren.



Wie ich es gefunden habe



Ich klonte das Repository und begann, Dateien unter lib/api/ zu lesen, wobei ich mich auf alles konzentrierte, was mit Authentifizierung und E-Mail-Erzeugung zu tun hatte.

Die Datei lib/api/reset-password.js enthält die Endpunktlogik für /reset-password. Der kritische Teil befindet sich im sendEmail-Helfer:

function sendEmail(user, req, callback) { var token = encodeToken(user);

mailer.sendFromTemplate({ template: 'forgotPassword', user: user, token: token, host: req.headers.host, // ← vulnerable protocol: req.protocol, acceptLanguage: req.headers['accept-language'] }, callback); }

Die Zeile host: req.headers.host ist das Problem. In express stammt req.headers.host direkt aus dem Host-HTTP-Header, der vollständig vom Angreifer kontrolliert wird. Es gibt keine Validierung, keine Whitelist und keinen Rückgriff auf eine vertrauenswürdige Domain aus der Konfiguration.



Erste Bestätigung



Ich richtete schnell eine lokale Instanz gemäß den README-Anweisungen ein (Ubuntu, nvm, npm install, secrets.json mit Test-SMTP), startete den Server und löste einen Passwort-Reset aus. Der generierte E-Mail-Link verwendete wie erwartet localhost:3000.

Dann wiederholte ich die Anfrage mit einem manipulierten Host-Header:

curl -X POST http://localhost:3000/reset-password
-H "Host: evil-phish.example"
-d "email=[email protected]"

Die E-Mail (über MailHog erfasst) enthielt: http://evil-phish.example/reset-password?token=...

Der Beweis ist erbracht. Die Anwendung vertraut beim Erstellen des Reset-Links dem vom Client gelieferten Host-Header.



Wie der Angriff tatsächlich funktioniert



Der Angreifer sendet eine Passwort-Reset-Anfrage für die E-Mail-Adresse des Opfers, setzt den Host-Header jedoch auf eine Domain, die er kontrolliert (z. B. evil-phish.example).

Aggie erzeugt ein legitimes Reset-Token (serverseitig, zeitlich begrenzt, mit dem Konfigurationsgeheimnis verschlüsselt).

Die E-Mail wird mit einem Link zur Domain des Angreifers statt zur echten Domain gesendet.

Das Opfer erhält die E-Mail und klickt auf den Link (Phishing-Erfolgsbedingung).

Das Opfer landet auf dem Server des Angreifers.

Der Server des Angreifers kann:

Einfach eine gefälschte Seite „Reset fehlgeschlagen“ anzeigen und das Token stillschweigend verwerfen, oder

Das Token aus dem Query-String erfassen (über serverseitiges Logging oder JavaScript), oder

Die Anfrage per Proxy an die echte Aggie-Instanz weiterleiten, das Token erfassen und den Benutzer auf die legitime Reset-Seite umleiten (damit das Opfer nicht sofort merkt, dass etwas nicht stimmt).

Der Angreifer verwendet das erfasste Token später auf der echten Domain, um das Passwort des Opfers zurückzusetzen.

Der Kernpunkt: Host-Header-Injection allein ermöglicht dem Angreifer nicht, das Token direkt zu verwenden. Der Angreifer muss das Opfer weiterhin dazu bringen, den bösartigen Link zu besuchen, damit das Token die Infrastruktur des Angreifers erreicht. Aus diesem Grund handelt es sich um eine Phishing-ermöglichende Schwachstelle und nicht um eine direkte Kontokompromittierung ohne Benutzerinteraktion.



Technischer Schweregrad & Auswirkung



Dies ist ein Problem mit mittlerem bis hohem Schweregrad, je nach Kontext:

AV:N: Über das Netzwerk erreichbar

PR:N: Keine Berechtigungen erforderlich

AC:L: Geringe Komplexität

UI:R: Erfordert Benutzerinteraktion

S:C: Der Scope kann sich ändern (die Auswirkung erstreckt sich auf das Konto des Opfers auf der legitimen Domain)

C:L / I:H: Auswirkung auf Vertraulichkeit und Integrität des Kontos des Opfers

Viele Datenbanken geben ihn mit CVSS ~7.1–7.5 an. Ich persönlich halte ihn in Produktionsumgebungen für ernst, in denen Aggie für sensible Überwachung (Wahlen, Krisen) eingesetzt wird, da erfolgreiches Phishing hier zu einer vollständigen Kontokompromittierung führen kann.



Proof-of-Concept (Detailliert & Reproduzierbar)



Umgebung

Ubuntu 18.04/20.04 (wie empfohlen)

Node 12.16 (gemäß .nvmrc)

MailHog: Läuft lokal zur E-Mail-Erfassung (docker run -d -p 8025:8025 -p 1025:1025 mailhog/mailhog)

Aggie konfiguriert mit email.transport, das auf localhost:1025 zeigt

Schritt für Schritt

Aggie klonen & starten:

git clone https://github.com/TID-Lab/aggie.git cd aggie nvm install npm install cp config/secrets.json.example config/secrets.json edit secrets.json → set adminPassword, add test SMTP if needed npm start

Erstellen Sie einen Testbenutzer über die Web-UI oder direkt in MongoDB.

Bösartigen Reset auslösen:

curl -i -X POST http://localhost:3000/reset-password
-H "Host: evil-phish.example"
-H "Content-Type: application/x-www-form-urlencoded"
-d "email=[email protected]"

Öffnen Sie MailHog: Untersuchen Sie die gesendete E-Mail. Der Reset-Link zeigt auf http://evil-phish.example/reset-password?token=...



Offenlegungszeitplan



  1. Sep 2025: Entdeckt + lokaler PoC

  2. Sep 2025: E-Mail an [email protected] mit vollständigen Details und PoC

  3. Sep 2025: Bei MITRE eingereicht (Service-Request 1926730 / MCID15453119)

  4. Okt 2025: MITRE hat CVE-2025-22381 zugewiesen

Okt–Dez 2025: Weder öffentlicher Patch noch Reaktion beobachtet

Feb 2026: Öffentliche Offenlegung (dieser Artikel)



Empfohlener Fix



Codeänderung

Ersetzen Sie die verwundbare Zeile in lib/api/reset-password.js durch einen vertrauenswürdigen Wert:

// In lib/api/reset-password.js, inside sendEmail() const config = require('../../config/secrets').get();

// Option A: Hard trust config value (recommended for single-domain) const host = config.appHost || 'localhost:3000';

// Then use it: mailer.sendFromTemplate({ template: 'forgotPassword', user: user, token: token, host: host, // Use the trusted variable protocol: config.environment === 'production' ? 'https' : req.protocol, acceptLanguage: req.headers['accept-language'] }, callback);

Konfiguration

Fügen Sie zu secrets.json hinzu:

"appHost": "https://your-real-domain.com"



Abschließende Gedanken



Host-Header-Injection bleibt in den Jahren 2025–2026 überraschend häufig, insbesondere in Projekten, die vor Jahren gestartet wurden und nicht intensiv geprüft wurden. Aggie ist ein wertvolles Werkzeug für Civic Tech und Krisenüberwachung – ich hoffe, die Maintainer wenden bald einen Fix an.

Wenn Sie Aggie warten oder verwenden, überprüfen Sie Ihre Bereitstellung und patchen Sie manuell, bis eine offizielle Version erscheint. Zögern Sie nicht, sich zu melden, wenn Sie Fragen haben oder ähnliche Probleme in anderen Projekten besprechen möchten.

Danke fürs Lesen und bleiben Sie sicher da draußen.

Tool herunterladen