目标达成 感谢每一位支持者 — 我们达成了 100% 目标!

目标: 1000 元 · 已筹: 1000

100.0%

CVE-2025-10184 PoC — OnePlus OxygenOS 安全漏洞

来源
关联漏洞
标题:OnePlus OxygenOS 安全漏洞 (CVE-2025-10184)
Description:OnePlus OxygenOS是中国一加(OnePlus)公司的一款智能手机操作系统。 OnePlus OxygenOS存在安全漏洞,该漏洞源于多个内容提供程序缺少写入操作权限以及这些提供程序的update方法中存在SQL注入,可能导致敏感信息泄露。
介绍
# APK Build for CVE‑2025‑10184 PoC

这是一个 **CVE‑2025‑10184** 的 **PoC** 的 APK 构建

该漏洞存在于 com.\*.providers.telephony 中, 允许任意应用在未获得 SMS 读取权限的情况下读取短信

---

## 源码

此源码及更多细节可见 Rapid7 的文章:  
https://www.rapid7.com/blog/post/cve-2025-10184-oneplus-oxygenos-telephony-provider-permission-bypass-not-fixed/

---

## 下载

请登录后在 Actions 下载 **未签名** 的安装包

---

## 验证

已确认 OPPO 及其子品牌, 自 ColorOS 7.1 的所有版本均受影响

---

## 修复

OPPO 官方已修复此问题 (通过替换 Provider 声明的权限为 OPLUS_COMPONENT_SAFE), 目前正在逐步推送更新

---

## 等不了 OPPO 了, 我他妈自己修

最简单的修复方法:只需要在操作之前验证调用者是否拥有 SMS 权限  
注:此方法已验证可以防止读取, 并且不影响真正拥有 SMS 权限的应用读取, 但是未进行其他可用性影响测试

在 `ServiceNumberProvider` 类的 `update` 方法开头添加运行时权限检查:
```diff
 .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
```
在 `PushMessageProvider` 类和 `PushShopProvider` 类的 `update` 方法也需要添加以上代码  

修改后请 **不要签名** 并且需要 **核心破解** 后安装, 否则将破坏整个通话功能并丢失所有短信 (系统安全机制所致)
文件快照

[4.0K] /data/pocs/a34a1d1c0ea18afc7f5c1f60494aa00327567409 ├── [4.0K] app │   ├── [ 953] build.gradle │   ├── [ 751] proguard-rules.pro │   └── [4.0K] src │   ├── [4.0K] androidTest │   │   └── [4.0K] java │   │   └── [4.0K] poc │   │   └── [4.0K] chutchut │   │   └── [4.0K] cpblindsqli │   │   └── [ 775] ExampleInstrumentedTest.java │   ├── [4.0K] main │   │   ├── [ 754] AndroidManifest.xml │   │   ├── [4.0K] java │   │   │   └── [4.0K] poc │   │   │   └── [4.0K] chutchut │   │   │   └── [4.0K] cpblindsqli │   │   │   ├── [ 14K] MainActivity.java │   │   │   └── [9.3K] QueryParser.java │   │   └── [4.0K] res │   │   ├── [4.0K] drawable │   │   │   └── [5.5K] ic_launcher_background.xml │   │   ├── [4.0K] drawable-v24 │   │   │   └── [1.7K] ic_launcher_foreground.xml │   │   ├── [4.0K] layout │   │   │   └── [1.8K] activity_main.xml │   │   ├── [4.0K] mipmap-anydpi-v26 │   │   │   ├── [ 272] ic_launcher_round.xml │   │   │   └── [ 272] ic_launcher.xml │   │   ├── [4.0K] mipmap-hdpi │   │   │   ├── [3.5K] ic_launcher.png │   │   │   └── [5.2K] ic_launcher_round.png │   │   ├── [4.0K] mipmap-mdpi │   │   │   ├── [2.6K] ic_launcher.png │   │   │   └── [3.3K] ic_launcher_round.png │   │   ├── [4.0K] mipmap-xhdpi │   │   │   ├── [4.8K] ic_launcher.png │   │   │   └── [7.3K] ic_launcher_round.png │   │   ├── [4.0K] mipmap-xxhdpi │   │   │   ├── [7.7K] ic_launcher.png │   │   │   └── [ 12K] ic_launcher_round.png │   │   ├── [4.0K] mipmap-xxxhdpi │   │   │   ├── [ 10K] ic_launcher.png │   │   │   └── [ 16K] ic_launcher_round.png │   │   └── [4.0K] values │   │   ├── [ 208] colors.xml │   │   ├── [ 74] strings.xml │   │   └── [ 383] styles.xml │   └── [4.0K] test │   └── [4.0K] java │   └── [4.0K] poc │   └── [4.0K] chutchut │   └── [4.0K] cpblindsqli │   └── [ 396] ExampleUnitTest.java ├── [ 574] build.gradle ├── [4.0K] gradle │   └── [4.0K] wrapper │   ├── [ 53K] gradle-wrapper.jar │   └── [ 230] gradle-wrapper.properties ├── [1.1K] gradle.properties ├── [5.2K] gradlew ├── [2.1K] gradlew.bat ├── [2.2K] README.md └── [ 46] settings.gradle 31 directories, 33 files
神龙机器人已为您缓存
备注
    1. 建议优先通过来源进行访问。
    2. 如果因为来源失效或无法访问,请发送邮件到 f.jinxu#gmail.com 索取本地快照(把 # 换成 @)。
    3. 神龙已为您对 POC 代码进行快照,为了长期维护,请考虑为本地 POC 付费/捐赠,感谢您的支持。