
Prueba de concepto que demuestra CVE-2026-0023, un bypass de confianza de actualización de Android que suprime la advertencia de propiedad durante las actualizaciones de aplicaciones. Incluye tres aplicaciones Android para reproducir y estudiar la vulnerabilidad.
Un entorno de laboratorio Android completo para reproducir y estudiar CVE-2026-0023.
Este repositorio demuestra cómo CVE-2026-0023 permite que un instalador normal influya en una bandera interna de instalación de Android que solo debería ser controlada por el sistema, lo que provoca que la advertencia de Propiedad de Actualización de Android se suprima durante las actualizaciones de aplicaciones.
El proyecto contiene tres aplicaciones Android que modelan un flujo de trabajo realista de propiedad de actualización y proporcionan un entorno reproducible para observar el comportamiento vulnerable.
Android introdujo la Propiedad de Actualización para ayudar a las aplicaciones, tiendas de aplicaciones y entornos empresariales a mantener una cadena de actualización confiable.
Cuando una aplicación tiene un propietario de actualización registrado, Android advierte al usuario si otro instalador intenta actualizar esa aplicación.
En condiciones normales, esta advertencia le indica al usuario que la aplicación normalmente recibe actualizaciones de una fuente diferente.
CVE-2026-0023 afecta el flujo de instalación de paquetes de Android dentro de PackageInstallerService#createSessionInternal.
El problema está relacionado con el manejo de la bandera interna de instalación INSTALL_FROM_MANAGED_USER_OR_PROFILE.
En compilaciones vulnerables, esta bandera no se limpiaba explícitamente antes de que Android verificara si la instalación estaba realmente asociada con un usuario administrado o un perfil administrado.
Como resultado, un instalador normal podía influir en el comportamiento de la propiedad de actualización y hacer que Android suprima la advertencia de Propiedad de Actualización esperada.
Este repositorio demuestra la diferencia entre el comportamiento esperado y el comportamiento vulnerable utilizando un entorno de prueba de concepto controlado.
| Comportamiento esperado | Comportamiento vulnerable |
|---|---|
| Android muestra la advertencia de Propiedad de Actualización. | Android muestra solo un diálogo de actualización genérico. |
![]() | ![]() |
| Campo | Valor |
|---|---|
| CVE | CVE-2026-0023 |
| Componente | Framework / PackageInstaller |
| Archivo afectado | PackageInstallerService.java |
| Método afectado | createSessionInternal |
| Tipo de vulnerabilidad | Elevación de privilegios |
| Gravedad | Alta |
| CVSS v3.1 | 7.8 |
| Vector CVSS | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| Vector de ataque | Local |
| Complejidad del ataque | Baja |
| Privilegios requeridos | Bajos |
| Interacción del usuario | Ninguna |
| Alcance | Sin cambios |
| Impacto | Elevación de privilegios mediante comportamiento no autorizado de propiedad de actualización |
| Boletín de seguridad de Android | Marzo 2026 |
| Referencia de error de Android | A-459461121 |
| Versiones AOSP afectadas listadas por Google | Android 14, 15, 16, 16-qpr2 |
| Evento | Valor |
|---|---|
| Boletín de seguridad de Android | Marzo 2026 |
| Fecha de publicación del boletín | 2 de marzo de 2026 |
| Sección del nivel de parche de seguridad | 2026-03-01 |
| Nivel de parche completamente solucionado del boletín | 2026-03-05 o posterior |
| Referencia de error de Android | A-459461121 |
| Parche de AOSP | 09055276288a68cf35b0f84ba32e28822f74ecf9 |
| Título del parche | Explicitly unset INSTALL_FROM_MANAGED_USER_OR_PROFILE flag |
CVE-2026-0023 está listado en el Boletín de seguridad de Android de marzo de 2026 en los detalles de vulnerabilidad del nivel de parche de seguridad 2026-03-01.
Los niveles de parche de seguridad de Android 2026-03-01 o posteriores solucionan todos los problemas asociados con el nivel de parche de seguridad 2026-03-01.
Los niveles de parche de seguridad de Android 2026-03-05 o posteriores solucionan todos los problemas asociados con el nivel de parche de seguridad 2026-03-05 y todos los niveles de parche anteriores.
El comportamiento vulnerable está relacionado con el manejo de la bandera interna INSTALL_FROM_MANAGED_USER_OR_PROFILE.
Esta bandera está destinada a representar el comportamiento de instalación asociado con un usuario administrado o un perfil administrado.
El parche oficial de AOSP limpia explícitamente esta bandera antes de que Android verifique si la instalación realmente pertenece a un usuario administrado por la organización.
La lógica corregida asegura que solo el sistema pueda establecer esta bandera basándose en el resultado de DevicePolicyManagerInternal#isUserOrganizationManaged(userId).
Lógica del parche simplificada:
final var dpmi = LocalServices.getService(DevicePolicyManagerInternal.class);
+ // Solo el sistema debería poder establecer esta bandera, así que asegúrese de que no esté establecida cuando no sea necesario.
+ params.installFlags &= ~PackageManager.INSTALL_FROM_MANAGED_USER_OR_PROFILE;
if (dpmi != null && dpmi.isUserOrganizationManaged(userId)) {
params.installFlags |= PackageManager.INSTALL_FROM_MANAGED_USER_OR_PROFILE;
}
Antes del parche, la bandera no se limpiaba explícitamente antes de esta verificación de perfil administrado.