
Preuve de concept démontrant CVE-2026-0023, un contournement de confiance de propriété de mise à jour Android qui supprime l'avertissement de propriété lors des mises à jour d'applications. Inclut trois applications Android pour reproduire et étudier la vulnérabilité.
Un environnement de laboratoire Android complet pour reproduire et étudier CVE-2026-0023.
Ce dépôt montre comment CVE-2026-0023 permet à un installateur classique d'influencer un indicateur d'installation interne Android qui ne devrait être contrôlé que par le système, ce qui entraîne la suppression de l'avertissement de propriétaire de mise à jour d'Android lors des mises à jour d'applications.
Le projet contient trois applications Android qui modélisent un flux de travail réaliste de propriétaire de mise à jour et fournissent un environnement reproductible pour observer le comportement vulnérable.
Android a introduit le propriétaire de mise à jour (Update Ownership) pour aider les applications, les boutiques d'applications et les environnements professionnels à maintenir une chaîne de mise à jour fiable.
Lorsqu'une application a un propriétaire de mise à jour enregistré, Android avertit l'utilisateur si un autre installateur tente de mettre à jour cette application.
Dans des conditions normales, cet avertissement indique à l'utilisateur que l'application reçoit généralement ses mises à jour d'une source différente.
CVE-2026-0023 affecte le flux d'installation de paquets Android dans PackageInstallerService#createSessionInternal.
Le problème est lié à la gestion de l'indicateur d'installation interne INSTALL_FROM_MANAGED_USER_OR_PROFILE.
Dans les versions vulnérables, cet indicateur n'était pas explicitement effacé avant qu'Android ne vérifie si l'installation était effectivement associée à un utilisateur géré ou à un profil géré.
En conséquence, un installateur ordinaire pouvait influencer le comportement de la propriété de mise à jour et faire en sorte qu'Android supprime l'avertissement attendu de propriétaire de mise à jour.
Ce dépôt montre la différence entre le comportement attendu et le comportement vulnérable à l'aide d'un environnement de preuve de concept contrôlé.
| Comportement attendu | Comportement vulnérable |
|---|---|
| Android affiche l'avertissement de propriétaire de mise à jour. | Android affiche seulement une boîte de dialogue de mise à jour générique. |
![]() | ![]() |
| Champ | Valeur |
|---|---|
| CVE | CVE-2026-0023 |
| Composant | Framework / PackageInstaller |
| Fichier affecté | PackageInstallerService.java |
| Méthode affectée | createSessionInternal |
| Type de vulnérabilité | Élévation de privilège |
| Gravité | Élevée |
| CVSS v3.1 | 7.8 |
| Vecteur CVSS | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| Vecteur d'attaque | Local |
| Complexité d'attaque | Faible |
| Privilèges requis | Faible |
| Interaction utilisateur | Aucune |
| Périmètre | Inchangé |
| Impact | Élévation de privilège via un comportement non autorisé de propriétaire de mise à jour |
| Bulletin de sécurité Android | Mars 2026 |
| Référence de bogue Android | A-459461121 |
| Versions AOSP affectées listées par Google | Android 14, 15, 16, 16-qpr2 |
| Événement | Valeur |
|---|---|
| Bulletin de sécurité Android | Mars 2026 |
| Date de publication du bulletin | 2 mars 2026 |
| Section du niveau de correctif de sécurité | 2026-03-01 |
| Niveau de correctif entièrement traité du bulletin | 2026-03-05 ou ultérieur |
| Référence de bogue Android | A-459461121 |
| Correctif AOSP | 09055276288a68cf35b0f84ba32e28822f74ecf9 |
| Titre du correctif | Explicitly unset INSTALL_FROM_MANAGED_USER_OR_PROFILE flag |
CVE-2026-0023 est répertorié dans le bulletin de sécurité Android de mars 2026 sous la section 2026-03-01 des détails de la vulnérabilité du niveau de correctif de sécurité.
Les niveaux de correctif de sécurité Android 2026-03-01 ou ultérieurs corrigent tous les problèmes associés au niveau de correctif de sécurité 2026-03-01.
Les niveaux de correctif de sécurité Android 2026-03-05 ou ultérieurs corrigent tous les problèmes associés au niveau de correctif de sécurité 2026-03-05 et à tous les niveaux de correctif précédents.
Le comportement vulnérable est lié à la gestion de l'indicateur interne INSTALL_FROM_MANAGED_USER_OR_PROFILE.
Cet indicateur est destiné à représenter le comportement d'installation associé à un utilisateur géré ou à un profil géré.
Le correctif officiel AOSP efface explicitement cet indicateur avant qu'Android ne vérifie si l'installation appartient réellement à un utilisateur géré par une organisation.
La logique corrigée garantit que seul le système peut définir cet indicateur en fonction du résultat de DevicePolicyManagerInternal#isUserOrganizationManaged(userId).
Logique de correctif simplifiée :
final var dpmi = LocalServices.getService(DevicePolicyManagerInternal.class);
+ // Seul le système devrait pouvoir définir cet indicateur - donc assurez-vous qu'il est désactivé lorsqu'il n'est pas nécessaire.
+ params.installFlags &= ~PackageManager.INSTALL_FROM_MANAGED_USER_OR_PROFILE;
if (dpmi != null && dpmi.isUserOrganizationManaged(userId)) {
params.installFlags |= PackageManager.INSTALL_FROM_MANAGED_USER_OR_PROFILE;
}