
Proof-of-concept zur Demonstration von CVE-2026-0023, einer Umgehung der Android-Update-Eigentümerschaft, die die Eigentümerwarnung bei App-Updates unterdrückt. Enthält drei Android-Apps zur Reproduktion und Untersuchung der Schwachstelle.
Eine vollständige Android-Laborumgebung zur Nachstellung und Untersuchung von CVE-2026-0023.
Dieses Repository zeigt, wie CVE-2026-0023 einem regulären Installer erlaubt, ein internes Android-Installationsflag zu beeinflussen, das nur vom System kontrolliert werden sollte, was dazu führt, dass die Android-Warnung zur Update-Besitzerprüfung bei App-Updates unterdrückt wird.
Das Projekt enthält drei Android-Anwendungen, die einen realistischen Workflow für Update-Besitzer modellieren und eine reproduzierbare Umgebung zur Beobachtung des anfälligen Verhaltens bieten.
Android hat die Update-Besitzerprüfung eingeführt, um Apps, App-Stores und Unternehmensumgebungen zu helfen, eine vertrauenswürdige Update-Kette aufrechtzuerhalten.
Wenn eine App einen registrierten Update-Besitzer hat, warnt Android den Benutzer, wenn ein anderer Installer versucht, diese App zu aktualisieren.
Unter normalen Bedingungen teilt diese Warnung dem Benutzer mit, dass die App normalerweise Updates von einer anderen Quelle erhält.
CVE-2026-0023 betrifft den Paketinstallationsablauf von Android innerhalb von PackageInstallerService#createSessionInternal.
Das Problem hängt mit der Behandlung des internen Installationsflags INSTALL_FROM_MANAGED_USER_OR_PROFILE zusammen.
In anfälligen Builds wurde dieses Flag nicht explizit gelöscht, bevor Android prüfte, ob die Installation tatsächlich mit einem verwalteten Benutzer oder einem verwalteten Profil verbunden war.
Infolgedessen konnte ein regulärer Installer das Verhalten der Update-Besitzerprüfung beeinflussen und Android dazu bringen, die erwartete Warnung zur Update-Besitzerprüfung zu unterdrücken.
Dieses Repository zeigt den Unterschied zwischen dem erwarteten Verhalten und dem anfälligen Verhalten mithilfe einer kontrollierten Proof-of-Concept-Umgebung.
| Erwartetes Verhalten | Anfälliges Verhalten |
|---|---|
| Android zeigt die Warnung zur Update-Besitzerprüfung an. | Android zeigt nur ein generisches Update-Dialogfeld an. |
![]() | ![]() |
| Feld | Wert |
|---|---|
| CVE | CVE-2026-0023 |
| Komponente | Framework / PackageInstaller |
| Betroffene Datei | PackageInstallerService.java |
| Betroffene Methode | createSessionInternal |
| Schwachstellentyp | Erhöhung von Privilegien |
| Schweregrad | Hoch |
| CVSS v3.1 | 7.8 |
| CVSS-Vektor | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| Angriffsvektor | Lokal |
| Angriffskomplexität | Niedrig |
| Erforderliche Privilegien | Niedrig |
| Benutzerinteraktion | Keine |
| Auswirkungsbereich | Unverändert |
| Auswirkungen | Erhöhung von Privilegien durch unbefugtes Verhalten der Update-Besitzerprüfung |
| Android-Sicherheitsbulletin | März 2026 |
| Android-Fehlerreferenz | A-459461121 |
| Von Google aufgeführte betroffene AOSP-Versionen | Android 14, 15, 16, 16-qpr2 |
| Ereignis | Wert |
|---|---|
| Android-Sicherheitsbulletin | März 2026 |
| Veröffentlichungsdatum des Bulletins | 2. März 2026 |
| Abschnitt des Sicherheitspatch-Levels | 2026-03-01 |
| Im Bulletin vollständig adressiertes Patch-Level | 2026-03-05 oder später |
| Android-Fehlerreferenz | A-459461121 |
| AOSP-Patch | 09055276288a68cf35b0f84ba32e28822f74ecf9 |
| Patch-Titel | Explizit INSTALL_FROM_MANAGED_USER_OR_PROFILE-Flag löschen |
CVE-2026-0023 ist im Android-Sicherheitsbulletin vom März 2026 unter den Details zu Schwachstellen des Sicherheitspatch-Levels 2026-03-01 aufgeführt.
Android-Sicherheitspatch-Levels von 2026-03-01 oder später adressieren alle Probleme, die mit dem Sicherheitspatch-Level 2026-03-01 verbunden sind.
Android-Sicherheitspatch-Levels von 2026-03-05 oder später adressieren alle Probleme, die mit dem Sicherheitspatch-Level 2026-03-05 und allen vorherigen Patch-Levels verbunden sind.
Das anfällige Verhalten hängt mit der Behandlung des internen Flags INSTALL_FROM_MANAGED_USER_OR_PROFILE zusammen.
Dieses Flag soll das Installationsverhalten darstellen, das mit einem verwalteten Benutzer oder einem verwalteten Profil verbunden ist.
Der offizielle AOSP-Patch löscht dieses Flag explizit, bevor Android prüft, ob die Installation tatsächlich zu einem durch die Organisation verwalteten Benutzer gehört.
Die korrigierte Logik stellt sicher, dass nur das System dieses Flag basierend auf dem Ergebnis von DevicePolicyManagerInternal#isUserOrganizationManaged(userId) setzen kann.
Vereinfachte Patch-Logik:
final var dpmi = LocalServices.getService(DevicePolicyManagerInternal.class);
+ // Nur das System sollte dieses Flag setzen können – daher sicherstellen, dass es nicht gesetzt ist, wenn es nicht benötigt wird.
+ params.installFlags &= ~PackageManager.INSTALL_FROM_MANAGED_USER_OR_PROFILE;
if (dpmi != null && dpmi.isUserOrganizationManaged(userId)) {
params.installFlags |= PackageManager.INSTALL_FROM_MANAGED_USER_OR_PROFILE;
}
Vor dem Patch wurde das Flag nicht explizit vor dieser Prüfung des verwalteten Profils gelöscht.
Nach dem Patch entfernt Android zunächst das Flag und setzt es nur dann erneut, wenn das System feststellt, dass der Benutzer tatsächlich durch die Organisation verwaltet wird.