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-4406 — Das Gravity Forms Plugin für WordPress (getestet bis Version 2.9.28) ist anfällig für unauthentifiziertes reflektiertes Cross-Site-Scripting (XSS) über den Parameter `form_ids` in der AJAX-Aktion `gform_get_config`. | Kitploit
Tools/GitHubGitHub/hann1bl3l3ct3r/cve-2026-4406
SchwachstellenanalyseExploitationWebanwendungs-ExploitationWebsicherheitPenetrationstests
GitHubhann1bl3l3ct3r/cve-2026-4406

CVE-2026-4406

Das Gravity Forms Plugin für WordPress (getestet bis Version 2.9.28) ist anfällig für unauthentifiziertes reflektiertes Cross-Site-Scripting (XSS) über den Parameter `form_ids` in der AJAX-Aktion `gform_get_config`.

Repository anzeigen
19vor 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

Gravity Forms <= 2.9.28 — Nicht authentifiziertes reflektiertes Cross-Site-Scripting über den form_ids-Parameter von gform_get_config

Schwachstellenübersicht

FeldWert
Betroffene SoftwareGravity Forms (WordPress-Plugin)
AnbieterRocketgenius, Inc.
SchwachstellentypCWE-79: Unzureichende Neutralisierung von Eingaben bei der Webseitengenerierung (Reflektiertes Cross-Site-Scripting)
CWE-KetteCWE-20 → CWE-116 → CWE-838 → CWE-79 (siehe CWE-Analyse unten)
Betroffene VersionenBestätigt in 2.9.28 (aktuellste Version zum Zeitpunkt der Entdeckung); frühere Versionen wahrscheinlich ebenfalls betroffen
Behobene Version2.9.30.1 (Hotfix)
CVSS-3.1-Score6.1 (Mittel)
CVSS-3.1-VektorAV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
Erforderliche AuthentifizierungKeine (nicht authentifiziert)
BenutzerinteraktionErforderlich (das Opfer muss eine vom Angreifer kontrollierte Seite besuchen oder einen manipulierten Link anklicken)
Entdeckt vonAnthony Cihan — Obviam
Entdeckungsdatum2026-03-04
Offenlegungsdatum2026-03-18
CVE-IDCVE-2026-4406

Wordfence-Öffentlicher Eintrag


Beschreibung

Das Gravity-Forms-Plugin für WordPress (getestet bis Version 2.9.28) ist anfällig für nicht authentifiziertes reflektiertes Cross-Site-Scripting (XSS) über den form_ids-Parameter in der AJAX-Aktion gform_get_config. Die Schwachstelle besteht darin, dass vom Benutzer bereitgestellte form_ids-Werte ohne jegliche Bereinigung, Kodierung oder Ausgabe-Escaping wörtlich in der HTTP-Antwort des Servers reflektiert werden. Die Antwort wird mit einem Content-Type: text/html; charset=UTF-8-Header ausgeliefert, wodurch der Browser den reflektierten Inhalt als HTML parst und rendert, einschließlich aller injizierten Skriptelemente.

Ein nicht authentifizierter Angreifer kann diese Schwachstelle ausnutzen, um beliebiges JavaScript im Kontext der Ursprungsdomain der Ziel-WordPress-Website auszuführen. Da die Aktion gform_get_config ein gültiges config_nonce erfordert und dieses Nonce öffentlich im HTML-Quellcode jeder Seite eingebettet ist, die ein Gravity-Forms-Formular lädt, kann ein Angreifer problemlos ein gültiges Nonce erhalten, indem er vor dem Erstellen der Exploit-Anfrage eine beliebige öffentlich zugängliche Seite der Zielwebsite anfordert.

Eine erfolgreiche Ausnutzung ermöglicht es einem Angreifer, Sitzungscookies zu stehlen, Aktionen im Namen authentifizierter Benutzer (einschließlich WordPress-Administratoren) auszuführen, Benutzer auf bösartige Websites umzuleiten, Seiteninhalte zu verunstalten oder durch die Erstellung von Administratorkonten dauerhaften Zugriff zu erlangen.


Ursachenanalyse

Verwundbarer Endpunkt```

POST /wp-admin/admin-ajax.php

### Verwundbare Aktion```
gform_get_config

Verwundbarer Parameter

Der args-POST-Parameter akzeptiert ein JSON-Objekt, das ein form_ids-Array enthält. Werte in diesem Array werden ohne Bereinigung als Objektschlüssel in der JSON-Antwortstruktur verwendet:```json {"form_ids":["ATTACKER_CONTROLLED_VALUE"]}

### Antwortverhalten

Der Server verarbeitet die `form_ids`-Werte und gibt sie als JSON-Schlüssel im Antworttext wieder. Die Antwort wird in HTML-Kommentar-Markern eingebettet und als `text/html` ausgeliefert:```
Content-Type: text/html; charset=UTF-8

<!-- gf:json_start -->{"success":true,"data":{"common":{"form":{"pagination":{"ATTACKER_CONTROLLED_VALUE":null}}}}}<!-- gf:json_end -->

Warum dies ausnutzbar ist

  1. Keine Eingabevalidierung: Die form_ids-Werte werden nicht als Ganzzahlen validiert, bereinigt oder gefiltert. Der Server akzeptiert beliebige Zeichenfolgeninhalte, einschließlich HTML-Tags und Event-Handler.
  2. Keine Ausgabekodierung: Die form_ids-Werte werden ohne HTML-Entity-Kodierung im Antworttext widergespiegelt. Zeichen wie <, >, " und ' werden unverändert durchgelassen.
  3. HTML-Content-Type: Die Antwort wird mit Content-Type: text/html; charset=UTF-8 ausgeliefert, was den Browser anweist, den Antworttext als HTML zu parsen. Alle HTML-Tags innerhalb des widergespiegelten Werts werden vom HTML-Parser des Browsers instanziiert und gerendert.
  4. Öffentlich zugängliches Nonce: Das config_nonce, das für die Aktion gform_get_config erforderlich ist, ist im JavaScript-Konfigurationsobjekt (gform_theme_config) auf jeder Seite eingebettet, die ein Gravity-Forms-Formular lädt. Dieses Nonce ist auf allen Seiten identisch und nicht an eine bestimmte Benutzersitzung gebunden, wodurch es für nicht authentifizierte Benutzer trivial zu erlangen ist.

CWE-Analyse

Diese Schwachstelle ist das Ergebnis mehrerer beitragender Schwächen, die sich zu einer ausnutzbaren Bedingung verketten. Während CWE-79 die primäre Klassifizierung für die CVE-Meldung ist, dokumentiert die vollständige Kette, wie sich jedes Versagen gegenseitig verstärkt, um die Ausnutzung zu ermöglichen.

Schwachstellenkette```

CWE-20 CWE-116 CWE-838 CWE-79 Improper Input → Improper Encoding → Inappropriate Encoding → Cross-Site Validation or Escaping of Output for Output Context Scripting (XSS) [EXPLOITABLE] form_ids accepts Reflected values are JSON data served as Browser parses arbitrary strings not HTML-entity text/html instead of injected HTML tags instead of integers encoded in response application/json and executes JS

### CWE-20: Unsachgemäße Eingabevalidierung (Beitragend)

**Rolle:** Grundlegender Ermöglicher — erlaubt, dass schädliche Daten in die Verarbeitungspipeline gelangen.

Der Parameter `form_ids` im `args`-JSON-Objekt soll numerische Formular-IDs enthalten, akzeptiert jedoch beliebige Zeichenfolgeneingaben ohne jegliche Validierung. Es werden keine Typprüfung (`intval()`), keine Regex-Filterung (`^[0-9]+$`), kein Whitelist-Abgleich gegen bekannte Formular-IDs und keine Längenbeschränkungen angewendet.

**Beleg:** Der Server akzeptiert und verarbeitet `form_ids`-Werte, die HTML-Tags, JavaScript-Ereignishandler und beliebiges Unicode enthalten, ohne sie abzulehnen.```json
{"form_ids":["<svg onload=alert(1)>"]}    ← Accepted
{"form_ids":["3"]}                         ← Expected

CWE-116: Unsachgemäße Kodierung oder Maskierung von Ausgaben (primärer technischer Fehler)

Rolle: Kernschwachstelle — die direkte Ursache für den XSS-Zustand.

Wenn der Server die JSON-Antwort mit den form_ids-Werten erstellt, wendet er keine HTML-Entity-Kodierung auf die Ausgabe an. Zeichen mit besonderer Bedeutung in HTML (<, >, ", ', &) gelangen unverändert in den Antworttext. Die PHP-Funktionen htmlspecialchars(), esc_html(), wp_json_encode() mit JSON_HEX_TAG oder gleichwertige Ausgabekodierungsfunktionen werden nicht auf die form_ids-Werte angewendet, bevor sie in die Antwort geschrieben werden.

Nachweis: Die wörtliche Zeichenkette <svg onload=alert(document.domain)> erscheint im Antworttext byte-für-byte identisch zur Eingabe, anstatt als &lt;svg onload=alert(document.domain)&gt;.

CWE-838: Unangemessene Kodierung für den Ausgabekontext (verschärfend)

Rolle: Kontext-Eskalation — verwandelt ein Datenreflexionsproblem in eine ausführbare Code-Injektion.

Tool herunterladen