
Android APK Proof-of-Concept für CVE-2025-10184, das die Umgehung der SMS-Leseberechtigung in OPPO/OnePlus Telefonieanbietern demonstriert. Enthält Quellcode, Verifizierungsdetails und eine manuelle Fehlerbehebung für die Schwachstelle.
Dies ist ein APK-Build für den CVE‑2025‑10184 PoC.
Die Schwachstelle existiert in com.\*.providers.telephony und erlaubt es beliebigen Apps, SMS zu lesen, ohne die SMS‑Leseberechtigung erhalten zu haben.
Dieser Quellcode und weitere Details sind im Artikel von Rapid7 zu finden:
https://www.rapid7.com/blog/post/cve-2025-10184-oneplus-oxygenos-telephony-provider-permission-bypass-not-fixed/
Bitte melde dich an und lade das unsignierte Installationspaket unter Actions herunter.
Es wurde bestätigt, dass OPPO und seine Untermarken ab ColorOS 7.1 in allen Versionen betroffen sind.
OPPO hat das Problem offiziell behoben (durch Ersetzen der vom Provider deklarierten Berechtigung durch OPLUS_COMPONENT_SAFE) und rollt derzeit schrittweise Updates aus.
Der einfachste Fix: Überprüfe einfach vor dem Vorgang, ob der Aufrufer die SMS‑Berechtigung hat.
Hinweis: Diese Methode wurde verifiziert, um das Lesen zu verhindern, und beeinträchtigt nicht das Lesen durch Apps, die tatsächlich die SMS‑Berechtigung haben. Es wurden jedoch keine weiteren Tests auf Auswirkungen auf die Nutzbarkeit durchgeführt.
Füge am Anfang der update-Methode der Klasse ServiceNumberProvider eine Laufzeitberechtigungsprüfung hinzu:
.method public update(Landroid/net/Uri;Landroid/content/ContentValues;Ljava/lang/String;[Ljava/lang/String;)I
.registers 8
+ invoke-virtual {p0}, Lcom/android/providers/telephony/ServiceNumberProvider;->getContext()Landroid/content/Context;
+ move-result-object v0
+
+ const-string v1, "android.permission.READ_SMS"
+ const-string v2, "Requires READ_SMS permission"
+ invoke-virtual {v0, v1, v2}, Landroid/content/Context;->enforceCallingPermission(Ljava/lang/String;Ljava/lang/String;)V
+
.line 157
iget-object p0, p0, Lcom/android/providers/telephony/ServiceNumberProvider;->mOpenHelper:Lcom/android/providers/telephony/MmsSmsDatabaseHelper;
invoke-virtual {p0}, Lcom/android/providers/telephony/MmsSmsDatabaseHelper;->getWritableDatabase()Landroid/database/sqlite/SQLiteDatabase;
move-result-object p0
# ... 省略其余原有代码
.end method
Füge den obigen Code auch in der update-Methode der Klassen PushMessageProvider und PushShopProvider hinzu.
Nach der Änderung bitte nicht signieren und nach Core‑Patch installieren, andernfalls wird die gesamte Telefonfunktion beeinträchtigt und alle SMS gehen verloren (bedingt durch den Systemsicherheitsmechanismus).