CVE-2024-0710
- Schwachstelle: CVE-2024-0710 (Unauthenticated Form Submission Unique ID Modification)
- CVSS: 5.3 (Mittel)
- Software: GP Unique ID (gp-unique-id)
- Betroffene Versionen: <= 1.5.5
- Gepatchte Version: 1.5.6
- Entwickler: Gravity Wiz
- Forscher: Karl Emil Nikka, Nikka Systems
- Öffentlich veröffentlicht: 2024-04-10
- Zuletzt aktualisiert: 2024-04-18
Übersicht
Ein nicht authentifizierter Formularabsender kann einen benutzerdefinierten Wert für ein Feld wählen, das eigentlich immer einen zufälligen oder sequenziellen Wert haben soll. Diese Schwachstelle betrifft nur Websites, bei denen der Wert aus rechtlichen, funktionalen oder sicherheitstechnischen Gründen entweder zufällig oder sequenziell sein muss.
Hintergrund
GP Unique ID ist ein Add-on für Gravity Forms. Es weist Einträgen nach erfolgreicher Übermittlung eindeutige IDs zu. Im Gegensatz zu den eigentlichen Datenbank-IDs der Einträge können die GP Unique IDs (im Folgenden GPUIDs genannt) vom Formularersteller angepasst werden, um einer bestimmten Syntax mit definierter Startnummer, Zeichensatz, Länge, Präfix und Suffix zu folgen. Die GPUID wird in einem benutzerdefinierten Gravity-Forms-Eintragsfeld gespeichert. Das Feld ist im Frontend ausgeblendet.
Der Plugin-Entwickler listet die folgenden häufigen Anwendungsfälle für GP Unique ID auf.
- Bereitstellung einer Bestätigungs- oder Referenznummer mit fester Länge für jeden Eintrag.
- Führen einer sequenziellen Rechnungsnummer.
- Generieren eines eindeutigen Gutscheincodes, der bei späteren Formulareinreichungen verwendet werden kann.
- Generieren einer eindeutigen Nummer für Verlosungen.
Die Schwachstelle
GP Unique ID weist die GPUID zu, nachdem das Formular erfolgreich übermittelt wurde, jedoch nur solange kein Wert bereits im Feld vorhanden ist. Dadurch kann ein Formularabsender beim Absenden des Formulars eine benutzerdefinierte GPUID festlegen. Da das Feld nicht leer ist, wird keine echte GPUID gespeichert. Ein Besucher kann daher
- eine GPUID festlegen, die nicht der Syntax folgt
- eine GPUID festlegen, die nicht sequenziell ist
- eine GPUID festlegen, die nicht zufällig ist
- eine GPUID festlegen, die bereits einem anderen Eintrag zugewiesen ist.
Patches
Gravity Wiz veröffentlichte am 09.04.2024 eine gepatchte Version des Plugins. Site-Administratoren sollten auf die gepatchte Version (1.5.6) aktualisieren und, falls relevant, sicherstellen, dass die vorherigen Einreichungen nicht manipuliert wurden.
- 2024-01-13 Ich meldete die Schwachstelle an Gravity Wiz (gemäß Project Zeros 90-Tage-Richtlinie für verantwortungsvolle Offenlegung).
- 2024-01-13 Ich reichte die Schwachstelle bei Wordfences CNA ein. Ich lehnte die Teilnahme an ihrem Bug-Bounty-Programm ab.
- 2024-01-15 Gravity Wiz bestätigte den Erhalt des Berichts.
- 2024-01-16 Gravity Wiz erkannte die Schwachstelle an und teilte mir mit, dass sie einen Patch dafür veröffentlichen würden.
- 2024-01-19 Wordfence wies der Schwachstelle die CVE-ID CVE-2024-0710 zu.
- 2024-02-29 Ich sandte eine 45-Tage-Erinnerung an Gravity Wiz.
- 2024-04-01 Ich sandte eine Erinnerung, dass das 90-Tage-Fenster für verantwortungsvolle Offenlegung in zwei Wochen enden würde.
- 2024-04-07 Gravity Wiz sandte mir eine Vorabversion des gepatchten Plugins.
- 2024-04-09 Gravity Wiz veröffentlichte das gepatchte Plugin, 87 Tage nach der ersten Meldung (innerhalb des 90-Tage-Fensters für verantwortungsvolle Offenlegung).