Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-0023-Update-Ownership-PoC — 概念验证,演示 CVE-2026-0023,一种 Android 更新所有权信任绕过漏洞,可在应用更新期间抑制所有权警告。包含三个 Android 应用,用于复现和研究该漏洞。 | Kitploit
工具/GitHubGitHub/qm4rs/cve-2026-0023-update-ownership-poc
Android安全漏洞分析漏洞利用移动安全学习与教育实验室与实践
GitHubqm4rs/cve-2026-0023-update-ownership-poc

CVE-2026-0023-Update-Ownership-PoC

概念验证,演示 CVE-2026-0023,一种 Android 更新所有权信任绕过漏洞,可在应用更新期间抑制所有权警告。包含三个 Android 应用,用于复现和研究该漏洞。

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
查看仓库
8323个月前尚未审核

CVE-2026-0023 - Android 更新所有权信任绕过 PoC

一个完整的 Android 实验室环境,用于重现和研究 CVE-2026-0023。

此仓库演示了 CVE-2026-0023 如何允许普通安装程序影响仅应由系统控制的内部 Android 安装标志,从而导致应用程序更新期间 Android 的“更新所有权”警告被抑制。

该项目包含三个 Android 应用程序,它们模拟了一个真实的更新所有权工作流程,并提供了一个可重现的环境来观察有漏洞的行为。


概述

Android 引入了更新所有权,以帮助应用程序、应用商店和企业环境维护可信的更新链。

当应用程序拥有已注册的更新所有者时,如果另一个安装程序尝试更新该应用程序,Android 会警告用户。

在正常情况下,此警告告知用户该应用程序通常从不同的来源接收更新。

CVE-2026-0023 影响 PackageInstallerService#createSessionInternal 内部的 Android 包安装流程。

该问题与内部 INSTALL_FROM_MANAGED_USER_OR_PROFILE 安装标志的处理有关。

在有漏洞的版本中,在 Android 检查安装是否实际上与托管用户或托管配置文件关联之前,此标志没有被显式清除。

结果,普通安装程序可以影响更新所有权行为,并导致 Android 抑制预期的更新所有权警告。

此仓库使用受控的概念验证环境,展示了预期行为和有漏洞行为之间的差异。


快速视觉比较

预期行为有漏洞行为
Android 显示更新所有权警告。Android 仅显示通用更新对话框。
显示所有权警告所有权警告被抑制

漏洞信息


补丁信息

CVE-2026-0023 列在 2026 年 3 月 Android 安全公告的 2026-03-01 安全补丁级别漏洞详情中。

Android 安全补丁级别为 2026-03-01 或更高版本解决了与 2026-03-01 安全补丁级别相关的所有问题。

Android 安全补丁级别为 2026-03-05 或更高版本解决了与 2026-03-05 安全补丁级别以及所有先前补丁级别相关的所有问题。


根本原因总结

有漏洞的行为与内部 INSTALL_FROM_MANAGED_USER_OR_PROFILE 标志的处理有关。

此标志旨在表示与托管用户或托管配置文件关联的安装行为。

官方的 AOSP 补丁在 Android 检查安装是否实际属于组织管理用户之前,显式清除了此标志。

修复后的逻辑确保只有系统才能根据 DevicePolicyManagerInternal#isUserOrganizationManaged(userId) 的结果设置此标志。

简化的补丁逻辑:

root@kitploit:~
final var dpmi = LocalServices.getService(DevicePolicyManagerInternal.class);

+ // 只有系统才能设置此标志 - 因此确保在不必要时取消设置。
+ params.installFlags &= ~PackageManager.INSTALL_FROM_MANAGED_USER_OR_PROFILE;

if (dpmi != null && dpmi.isUserOrganizationManaged(userId)) {
    params.installFlags |= PackageManager.INSTALL_FROM_MANAGED_USER_OR_PROFILE;
}

在补丁之前,标志在托管配置文件检查之前没有被显式清除。

补丁之后,Android 首先移除该标志,并且仅当系统确定用户实际为组织管理时才重新设置它。

这阻止了普通安装程序影响此内部安装会话状态。


仓库组件

此仓库包含三个 Android 应用程序:

root@kitploit:~
CVE-2026-0023-Update-Ownership-PoC
├── Safe Mart
├── Unsafe Mart
└── Ownership Inspector

Safe Mart

Safe Mart 是一个参考安装程序应用程序。

它安装目标应用程序,并在初始安装期间请求更新所有权。

其目的是模拟一个合法的应用商店,该商店成为目标应用程序的注册更新所有者。


Unsafe Mart

Unsafe Mart 是第二个安装程序应用程序,用于重现 CVE-2026-0023。

它支持两种安装路径:

  • 正常更新路径
  • CVE-2026-0023 重现路径

正常路径触发 Android 预期的更新所有权警告。

CVE 路径抑制所有权警告,并导致 Android 显示一个通用更新确认对话框。


Ownership Inspector

Ownership Inspector 是演示中使用的目标应用程序。

该应用程序声明支持更新所有权,并显示 Android 的 PackageManager 报告的与安装程序相关的元数据。

其目的是便于观察在概念验证的每个阶段,目标应用程序是如何安装或更新的。

CVE-2026-0023 之前CVE-2026-0023 之后
---

重现步骤

概念验证演示了两种不同的更新流程:

  • 正常更新流程,其中 Android 显示预期的更新所有权警告。
  • CVE-2026-0023 重现流程,其中所有权警告被抑制并替换为通用更新确认对话框。
root@kitploit:~
flowchart LR
    A["Safe Mart<br/>参考安装程序"] -->|"安装目标应用<br/>+ 请求更新所有权"| B["Ownership Inspector<br/>目标应用"]

    C["Unsafe Mart<br/>替代安装程序"] --> D{"更新路径"}

    D -->|"正常更新路径"| E["Android 显示<br/>更新所有权警告"]

    D -->|"CVE-2026-0023 路径"| F["Android 仅显示<br/>通用更新对话框"]

    E --> G["用户被警告:<br/>Safe Mart 是更新所有者"]

    F --> H["所有权警告<br/>被抑制"]

1. 安装 Safe Mart 和 Unsafe Mart

在测试设备上安装两个安装程序应用程序。

当 Android 请求时,允许这两个应用程序安装未知应用。


2. 通过 Safe Mart 安装 Ownership Inspector

打开 Safe Mart 并选择 Ownership Inspector APK。

Safe Mart 安装目标应用程序,并在初始安装会话期间请求更新所有权。

此时,Safe Mart 作为参考安装程序,并成为目标应用的预期更新来源。


3. 验证初始安装状态

打开 Ownership Inspector。

应用程序显示 Android 的 PackageManager 报告的与安装程序相关的元数据。

此步骤有助于在尝试从 Unsafe Mart 更新之前确认初始安装状态。


4. 从 Unsafe Mart 触发正常更新路径

打开 Unsafe Mart 并选择 Ownership Inspector APK。

选择正常更新路径。

由于 Ownership Inspector 最初是通过 Safe Mart 安装并启用了更新所有权,因此 Android 会显示更新所有权警告。

这是预期的 Android 行为。

警告告知用户该应用程序通常从 Safe Mart 接收更新,而当前的更新尝试来自 Unsafe Mart。


5. 触发 CVE-2026-0023 重现路径

返回 Unsafe Mart 并再次选择 Ownership Inspector APK。

选择 CVE-2026-0023 重现路径。

在此流程中,Android 不再显示更新所有权警告。

相反,系统仅显示一个通用更新确认对话框。

这就是概念验证所演示的有漏洞行为。

重要的区别不仅仅是对话框的视觉变化。

而是更新流程中移除了关于注册更新所有者的安全信号。


6. 验证最终状态

更新完成后,再次打开 Ownership Inspector。

该应用程序可用于观察 CVE-2026-0023 重现路径完成后的安装程序相关元数据。


此 PoC 演示了什么

此概念验证演示了更新所有权信任模型绕过。

更具体地说,它展示了:

  • 目标应用程序可以在启用更新所有权的情况下安装。
  • 当不同的安装程序尝试更新该应用程序时,Android 通常会自动警告用户。
  • CVE-2026-0023 允许更新流程绕过该所有权警告。
  • 更新确认从拥有所有权感知的警告降级为通用更新提示。
  • 该行为可以在无需 root 访问、ADB 命令或系统权限的情况下重现。

PoC 不尝试提供 root 访问、任意代码执行、持久性、隐藏或类似恶意软件的行为。


环境

该漏洞在 Android 15 上重现。

概念验证不需要:

  • Root 访问
  • ADB 命令
  • 系统权限
  • 设备所有者权限
  • 配置文件所有者权限
  • LSPosed
  • Magisk

整个演示通过运行在标准 Android 应用沙箱中的常规 Android 应用程序执行。

可以在应用程序日志中观察到被测试设备的安全信息。

PoC 收集的示例值包括:

root@kitploit:~
Build.VERSION.SECURITY_PATCH
Build.VERSION.SDK_INT
Build.VERSION.RELEASE
Build.VERSION.INCREMENTAL
Build.FINGERPRINT

要求

要构建和运行该项目,您需要:

  • Android Studio
  • Android SDK
  • 有漏洞的 Android 设备或模拟器
  • Android 14 或更高版本(用于更新所有权相关 API)
  • 为 Safe Mart 和 Unsafe Mart 授予安装未知应用的权限

无需特殊设备修改。


构建

在 Android Studio 中打开每个应用程序项目并构建调试 APK:

  • Safe Mart
  • Unsafe Mart
  • Ownership Inspector

然后在测试设备上安装 Safe Mart 和 Unsafe Mart。

Ownership Inspector 应在重现流程中通过 Safe Mart 安装。


实现说明

PoC 与 Android 的 PackageInstaller API 交互,并修改安装会话参数以重现有漏洞的行为。

在 CVE 重现路径中,PoC 使用与托管用户或托管配置文件安装行为相关的系统标志:

root@kitploit:~
INSTALL_FROM_MANAGED_USER_OR_PROFILE

该漏洞本身并非由隐藏 API 访问引起。

隐藏 API 访问仅作为从普通应用程序上下文到达所需框架接口的实现细节。

重要的是这个安全边界:此安装标志只有在系统验证托管用户或托管配置文件状态后设置时,才应被信任。


致谢

该项目使用了 ChickenHook 的 RestrictionBypass 库来访问概念验证所需的非 SDK Android 框架接口。

隐藏 API 访问机制与 CVE-2026-0023 的根本原因无关,仅用于与必要的 PackageInstaller API 交互。

RestrictionBypass: https://github.com/ChickenHook/RestrictionBypass

感谢原作者的工作。


影响

Google 将 CVE-2026-0023 分类为高严重性权限提升漏洞。

该问题不提供 root 访问或任意代码执行。

但是,它允许无特权的安装程序执行通常受 Android 包安装安全模型保护的操作。

最相关的影响可能出现在企业和管理设备部署场景中。

组织可能依赖更新所有权来确保应用程序通过经过批准的应用商店或企业安装程序进行更新。

通过抑制所有权警告,CVE-2026-0023 削弱了 Android 通常在允许来自不同来源的更新之前提供的信任信号。

对于普通消费者设备,实际影响在很大程度上取决于用户的安装行为、设备补丁级别以及目标应用程序是否依赖更新所有权语义。


限制

此仓库旨在在受控的研究环境中演示漏洞。

它不尝试:

  • 利用无关的 Android 漏洞
  • 获取 root 访问
  • 绕过应用签名验证
  • 绕过 APK 签名要求
  • 安装恶意软件
  • 对用户隐藏
  • 在安装后持久化
  • 大规模自动化利用

概念验证专门专注于与 CVE-2026-0023 相关的更新所有权警告绕过行为。


参考

  • Android 安全公告 - 2026 年 3 月 https://source.android.com/docs/security/bulletin/2026/2026-03-01

  • CVE-2026-0023 - CVE 记录 https://www.cve.org/CVERecord?id=CVE-2026-0023

  • CVE-2026-0023 - NVD https://nvd.nist.gov/vuln/detail/CVE-2026-0023

  • AOSP 补丁 - 显式取消设置 INSTALL_FROM_MANAGED_USER_OR_PROFILE 标志 https://android.googlesource.com/platform/frameworks/base/+/09055276288a68cf35b0f84ba32e28822f74ecf9

  • ChickenHook 的 RestrictionBypass https://github.com/ChickenHook/RestrictionBypass


免责声明

此仓库提供用于安全研究、教育目的和漏洞分析。

代码仅旨在在受控环境中且仅在已授权测试的设备上重现和研究 CVE-2026-0023。

作者不鼓励或认可未经授权对设备、应用程序、用户、组织或系统进行测试。

用户有责任在测试或修改 Android 设备时遵守所有适用法律、政策和组织要求。

请负责任地使用此仓库。

下载工具
字段值
CVECVE-2026-0023
组件Framework / PackageInstaller
受影响文件PackageInstallerService.java
受影响方法createSessionInternal
漏洞类型权限提升
严重性高
CVSS v3.17.8
CVSS 向量CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
攻击向量本地
攻击复杂度低
所需权限低
用户交互无
范围未改变
影响通过未授权的更新所有权行为实现权限提升
Android 安全公告2026 年 3 月
Android 漏洞参考A-459461121
Google 列出的受影响 AOSP 版本Android 14、15、16、16-qpr2
事件值
Android 安全公告2026 年 3 月
公告发布日期2026 年 3 月 2 日
安全补丁级别部分2026-03-01
公告范围完全修复的补丁级别2026-03-05 或更高
Android 漏洞参考A-459461121
AOSP 补丁09055276288a68cf35b0f84ba32e28822f74ecf9
补丁标题显式取消设置 INSTALL_FROM_MANAGED_USER_OR_PROFILE 标志