WP-Links-Page-CVE-Report
Offenlegung für CVE-2025-10175
CVE-2025-10175 - Schwachstelle in WP Links Page
Dieses Repository legt eine Schwachstelle offen, die im WP Links Page <= 4.9.6,WordPress Plugin von Rico Macchi entdeckt wurde.
🛠 Betroffene Version
🔒 Zugewiesene CVE
| CVE ID | Type | Component | Impact |
|---|
| CVE-2025-10175 | Authenticated (Subscriber+) SQL Injection | wp-links-page/wp-links-page-free.php | Unbefugter Datenbankzugriff und Datenexfiltration. |
🧾 Detaillierte Beschreibung
CVE-2025-10175 — Unbefugter Datenbankzugriff und Datenexfiltration
- Betroffene Komponente: wplf_update_from_previous() ($wpdb->get_results("SELECT * FROM $table WHERE id = $id ..."))
- Angriffsvektor: Authentifizierte (Nonce erforderlich) AJAX-basierte Blind-SQL-Injection (id-Parameter)
- Auslöser: Durch Senden einer manipulierten Anfrage mit einer gültigen Nonce an /wp-admin/admin-ajax.php kann eine Zeitverzögerung beobachtet werden:
POST /wp-admin/admin-ajax.php
Content-Type: application/x-www-form-urlencoded
action=wplf_update_from_previous&nonce=<valid_nonce>&id=1 AND SLEEP(5)
- Auswirkung: Angreifer können nach und nach Datenbankinhalte (Benutzerkonten, E-Mails, Konfigurationswerte) extrahieren und Administrator-Passwort-Hashes erlangen, was zu einer Privilegieneskalation führt. Die Offenlegung von Schema-Informationen und Datensatzzahlen schwächt die Vertraulichkeit und erleichtert anschließende gezielte Angriffe auf die gesamte WordPress-Installation.
- PoC:
- Ein authentifizierter Benutzer sendet eine POST-Anfrage an /wp-admin/admin-ajax.php mit einer gültigen Nonce.
- Der id-Parameter wird mit einem zeitbasierten Payload wie 1 AND SLEEP(5) injiziert.
- Die Serverantwort wird verzögert, was das Vorhandensein einer Blind-SQL-Injection bestätigt.
❓Grund für die Schwachstelle
Der id-Parameter wird direkt aus $_REQUEST übernommen und nur durch sanitize_text_field() geleitet, was SQL-Injection nicht verhindert. Der Wert wird dann direkt in die SQL-Abfrage ohne Prepared Statements oder korrekte Parameterbindung eingefügt.
Vorgeschlagene Lösung:
Verwenden Sie $wpdb->prepare()
ひとこと
プラグイン自体にSQLインジェクション脆弱性があっても、WordPressのコア部分がエスケープしてしまうというケースはかなりあるが、今回はPrepareもBindも使っておらず、escシリーズも使われていなかったため、Blind SQLが可能だった。
これを期にBlind SQL構文の勉強をしたが、法律に引っかかるのが怖いので共有はしません。
🔍 Entdecker
Name: MooseLove
Rolle: Unabhängiger Sicherheitsforscher / Bug Hunter
Kontakt: Auf Anfrage erhältlich
📚 Referenzen
⚠️ Lizenz
Diese Mitteilung wird zur öffentlichen Sicherheitssensibilisierung bereitgestellt. Frei zur Weitergabe mit Namensnennung.