Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-0023-Update-Ownership-PoC — Environnement de laboratoire Android reproductible démontrant CVE-2026-0023, un contournement de confiance de propriété de mise à jour dans PackageInstaller. Inclut trois applications pour observer le comportement vulnérable et comprendre le correctif. | Kitploit
Outils/GitHubGitHub/qm4rs/cve-2026-0023-update-ownership-poc
Sécurité AndroidAnalyse des VulnérabilitésExploitationSécurité MobileApprentissage et ÉducationLabs et Pratique
GitHubqm4rs/cve-2026-0023-update-ownership-poc

CVE-2026-0023-Update-Ownership-PoC

Environnement de laboratoire Android reproductible démontrant CVE-2026-0023, un contournement de confiance de propriété de mise à jour dans PackageInstaller. Inclut trois applications pour observer le comportement vulnérable et comprendre le correctif.

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Voir le dépôt
83il y a 2 moisPas encore vérifié

CVE-2026-0023 - Contournement de la vérification de propriétaire de mise à jour Android (PoC)

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.


Aperçu

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é.


Comparaison visuelle rapide

Comportement attenduComportement 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.
Avertissement de propriétaire affichéAvertissement de propriétaire supprimé

Informations sur la vulnérabilité


Informations sur le correctif

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.


Résumé de la cause racine

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 :

root@kitploit:~
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;
}

Avant le correctif, l'indicateur n'était pas explicitement effacé avant cette vérification de profil géré.

Après le correctif, Android supprime d'abord l'indicateur et ne le définit à nouveau que si le système détermine que l'utilisateur est effectivement géré par une organisation.

Cela empêche un installateur ordinaire d'influencer cet état interne de session d'installation.


Composants du dépôt

Ce dépôt contient trois applications Android :

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

Safe Mart

Safe Mart est une application d'installation de référence.

Elle installe l'application cible et demande la propriété de mise à jour lors de l'installation initiale.

Son objectif est de simuler une boutique d'applications légitime qui devient le propriétaire de mise à jour enregistré de l'application cible.


Unsafe Mart

Unsafe Mart est une deuxième application d'installation utilisée pour reproduire CVE-2026-0023.

Elle prend en charge deux chemins d'installation :

  • Chemin de mise à jour normal
  • Chemin de reproduction de CVE-2026-0023

Le chemin normal déclenche l'avertissement attendu de propriétaire de mise à jour d'Android.

Le chemin CVE supprime l'avertissement de propriétaire et fait afficher à Android une boîte de dialogue de confirmation de mise à jour générique à la place.


Ownership Inspector

Ownership Inspector est l'application cible utilisée dans la démonstration.

L'application déclare la prise en charge de la propriété de mise à jour et affiche les métadonnées liées à l'installateur rapportées par le PackageManager d'Android.

Son objectif est de faciliter l'observation de la manière dont l'application cible a été installée ou mise à jour à chaque étape de la preuve de concept.

Avant CVE-2026-0023Après CVE-2026-0023
---

Étapes de reproduction

La preuve de concept illustre deux flux de mise à jour différents :

  • Un flux de mise à jour normal, où Android affiche l'avertissement attendu de propriétaire de mise à jour.
  • Un flux de reproduction de CVE-2026-0023, où l'avertissement de propriétaire est supprimé et remplacé par une boîte de dialogue de confirmation de mise à jour générique.
root@kitploit:~
flowchart LR
    A["Safe Mart<br/>Installateur de référence"] -->|"Installe l'app cible<br/>+ demande la propriété de mise à jour"| B["Ownership Inspector<br/>App cible"]

    C["Unsafe Mart<br/>Installateur alternatif"] --> D{"Chemin de mise à jour"}

    D -->|"Chemin de mise à jour normal"| E["Android affiche<br/>l'avertissement de propriétaire de mise à jour"]

    D -->|"Chemin CVE-2026-0023"| F["Android affiche seulement<br/>une boîte de dialogue de mise à jour générique"]

    E --> G["L'utilisateur est averti :<br/>Safe Mart est le propriétaire de la mise à jour"]

    F --> H["L'avertissement de propriétaire<br/>est supprimé"]

1. Installer Safe Mart et Unsafe Mart

Installez les deux applications d'installation sur l'appareil de test.

Autorisez les deux applications à installer des applications inconnues lorsqu'Android le demande.


2. Installer Ownership Inspector via Safe Mart

Ouvrez Safe Mart et sélectionnez le fichier APK d'Ownership Inspector.

Safe Mart installe l'application cible et demande la propriété de mise à jour lors de la session d'installation initiale.

À ce stade, Safe Mart agit comme l'installateur de référence et devient la source de mise à jour attendue pour l'application cible.


3. Vérifier l'état d'installation initial

Ouvrez Ownership Inspector.

L'application affiche les métadonnées liées à l'installateur rapportées par le PackageManager d'Android.

Cette étape permet de confirmer l'état d'installation initial avant de tenter des mises à jour depuis Unsafe Mart.


4. Déclencher le chemin de mise à jour normal depuis Unsafe Mart

Ouvrez Unsafe Mart et sélectionnez le fichier APK d'Ownership Inspector.

Choisissez le chemin de mise à jour normal.

Parce qu'Owership Inspector a été installé initialement via Safe Mart avec la propriété de mise à jour activée, Android affiche un avertissement de propriétaire de mise à jour.

C'est le comportement attendu d'Android.

L'avertissement indique à l'utilisateur que l'application reçoit normalement les mises à jour de Safe Mart, alors que la tentative de mise à jour actuelle provient d'Unsafe Mart.


5. Déclencher le chemin de reproduction de CVE-2026-0023

Revenez à Unsafe Mart et sélectionnez à nouveau le fichier APK d'Ownership Inspector.

Choisissez le chemin de reproduction de CVE-2026-0023.

Dans ce flux, Android n'affiche plus l'avertissement de propriétaire de mise à jour.

Au lieu de cela, le système affiche seulement une boîte de dialogue de confirmation de mise à jour générique.

C'est le comportement vulnérable démontré par la preuve de concept.

La différence importante n'est pas seulement le changement visuel dans la boîte de dialogue.

Le signal de sécurité concernant le propriétaire de mise à jour enregistré est supprimé du flux de mise à jour.


6. Vérifier l'état final

Une fois la mise à jour terminée, ouvrez à nouveau Ownership Inspector.

L'application peut être utilisée pour observer les métadonnées liées à l'installateur après que le chemin de reproduction de CVE-2026-0023 a été exécuté.


Ce que cette PoC démontre

Cette preuve de concept démontre un contournement du modèle de confiance du propriétaire de mise à jour.

Plus précisément, elle montre que :

  • Une application cible peut être installée avec la propriété de mise à jour activée.
  • Android avertit normalement l'utilisateur lorsqu'un installateur différent tente de mettre à jour cette application.
  • CVE-2026-0023 permet au flux de mise à jour de contourner cet avertissement de propriétaire.
  • La confirmation de mise à jour est rétrogradée d'un avertissement tenant compte du propriétaire à une invite de mise à jour générique.
  • Le comportement peut être reproduit sans accès root, commandes ADB ou privilèges système.

La PoC ne tente pas de fournir un accès root, d'exécuter du code arbitraire, d'assurer une persistance, une furtivité ou un comportement de type logiciel malveillant.


Environnement

La vulnérabilité a été reproduite sur Android 15.

La preuve de concept ne nécessite pas :

  • Accès root
  • Commandes ADB
  • Privilèges système
  • Privilèges de propriétaire d'appareil
  • Privilèges de propriétaire de profil
  • LSPosed
  • Magisk

L'ensemble de la démonstration est réalisée via des applications Android ordinaires s'exécutant dans le bac à sable standard des applications Android.

Les informations de sécurité de l'appareil testé peuvent être observées dans les journaux d'application.

Exemples de valeurs collectées par la PoC :

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

Prérequis

Pour compiler et exécuter le projet, vous avez besoin de :

  • Android Studio
  • SDK Android
  • Un appareil ou émulateur Android vulnérable
  • Android 14 ou plus récent pour les API liées à la propriété de mise à jour
  • Autorisation d'installer des applications inconnues pour Safe Mart et Unsafe Mart

Aucune modification spéciale de l'appareil n'est requise.


Compilation

Ouvrez chaque projet d'application dans Android Studio et compilez les APK de débogage :

  • Safe Mart
  • Unsafe Mart
  • Ownership Inspector

Installez ensuite Safe Mart et Unsafe Mart sur l'appareil de test.

Ownership Inspector doit être installé via Safe Mart pendant le flux de reproduction.


Notes d'implémentation

La PoC interagit avec les API PackageInstaller d'Android et modifie les paramètres de session d'installation pour reproduire le comportement vulnérable.

Pendant le chemin de reproduction CVE, la PoC utilise l'indicateur système lié au comportement d'installation d'utilisateur ou de profil géré :

root@kitploit:~
INSTALL_FROM_MANAGED_USER_OR_PROFILE

La vulnérabilité n'est pas causée par l'accès aux API cachées elles-mêmes.

L'accès aux API cachées est uniquement utilisé comme un détail d'implémentation pour atteindre les interfaces framework requises depuis un contexte d'application ordinaire.

La frontière de sécurité importante est que cet indicateur d'installation ne devrait être fiable que lorsqu'il est défini par le système après validation de l'état de l'utilisateur géré ou du profil géré.


Remerciements

Ce projet utilise la bibliothèque RestrictionBypass de ChickenHook pour accéder aux interfaces framework Android non-SDK nécessaires à la preuve de concept.

Le mécanisme d'accès aux API cachées n'est pas lié à la cause racine de CVE-2026-0023 et n'est utilisé que pour interagir avec les API PackageInstaller nécessaires.

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

Crédits aux auteurs originaux pour leur travail.


Impact

Google a classé CVE-2026-0023 comme une vulnérabilité de haute gravité de type Élévation de privilège.

Le problème ne fournit pas d'accès root ni d'exécution de code arbitraire.

Cependant, il permet à un installateur non privilégié d'effectuer une opération qui devrait normalement être protégée par le modèle de sécurité d'installation de paquets Android.

L'impact le plus pertinent se situe probablement dans les scénarios de déploiement en entreprise et sur appareils gérés.

Les organisations peuvent se fier au propriétaire de mise à jour pour garantir que les applications sont mises à jour via une boutique d'applications approuvée ou un installateur d'entreprise.

En supprimant l'avertissement de propriétaire, CVE-2026-0023 affaiblit un signal de confiance qu'Android fournirait normalement avant d'autoriser une mise à jour depuis une source différente.

Pour les appareils grand public standard, l'impact pratique dépend fortement du comportement d'installation de l'utilisateur, du niveau de correctif de l'appareil et du fait que l'application cible repose sur la sémantique du propriétaire de mise à jour.


Limites

Ce dépôt est destiné à démontrer la vulnérabilité dans un environnement de recherche contrôlé.

Il ne tente pas de :

  • Exploiter d'autres vulnérabilités Android non liées
  • Obtenir un accès root
  • Contourner la vérification de signature d'application
  • Contourner les exigences de signature APK
  • Installer des logiciels malveillants
  • Se cacher de l'utilisateur
  • Persister après l'installation
  • Automatiser l'exploitation à grande échelle

La preuve de concept se concentre spécifiquement sur le comportement de contournement de l'avertissement de propriétaire de mise à jour associé à CVE-2026-0023.


Références

  • Bulletin de sécurité Android - Mars 2026 https://source.android.com/docs/security/bulletin/2026/2026-03-01

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

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

  • Correctif AOSP - Désactivation explicite de l'indicateur INSTALL_FROM_MANAGED_USER_OR_PROFILE https://android.googlesource.com/platform/frameworks/base/+/09055276288a68cf35b0f84ba32e28822f74ecf9

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


Avertissement

Ce dépôt est fourni à des fins de recherche en sécurité, d'éducation et d'analyse de vulnérabilités.

Le code est destiné uniquement à reproduire et étudier CVE-2026-0023 dans des environnements contrôlés et sur des appareils où les tests sont autorisés.

L'auteur n'encourage ni n'approuve les tests non autorisés contre des appareils, applications, utilisateurs, organisations ou systèmes sans permission.

Les utilisateurs sont responsables du respect de toutes les lois, politiques et exigences organisationnelles applicables lors des tests ou de la modification d'appareils Android.

Utilisez ce dépôt de manière responsable.

Télécharger l’outil
ChampValeur
CVECVE-2026-0023
ComposantFramework / PackageInstaller
Fichier affectéPackageInstallerService.java
Méthode affectéecreateSessionInternal
Type de vulnérabilitéÉlévation de privilège
GravitéÉlevée
CVSS v3.17.8
Vecteur CVSSCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Vecteur d'attaqueLocal
Complexité d'attaqueFaible
Privilèges requisFaible
Interaction utilisateurAucune
PérimètreInchangé
ImpactÉlévation de privilège via un comportement non autorisé de propriétaire de mise à jour
Bulletin de sécurité AndroidMars 2026
Référence de bogue AndroidA-459461121
Versions AOSP affectées listées par GoogleAndroid 14, 15, 16, 16-qpr2
ÉvénementValeur
Bulletin de sécurité AndroidMars 2026
Date de publication du bulletin2 mars 2026
Section du niveau de correctif de sécurité2026-03-01
Niveau de correctif entièrement traité du bulletin2026-03-05 ou ultérieur
Référence de bogue AndroidA-459461121
Correctif AOSP09055276288a68cf35b0f84ba32e28822f74ecf9
Titre du correctifExplicitly unset INSTALL_FROM_MANAGED_USER_OR_PROFILE flag