Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-0023-Update-Ownership-PoC — CVE-2026-0023을 시연하는 재현 가능한 Android 실험실 환경입니다. PackageInstaller에서 Update Ownership 신뢰 우회 취약점을 보여줍니다. 취약한 동작을 관찰하고 패치를 이해할 수 있는 세 개의 앱이 포함되어 있습니다. | Kitploit
도구/GitHubGitHub/qm4rs/cve-2026-0023-update-ownership-poc
Android SecurityVulnerability AnalysisExploitationMobile SecurityLearning & EducationLabs & Practice
GitHubqm4rs/cve-2026-0023-update-ownership-poc

CVE-2026-0023-Update-Ownership-PoC

CVE-2026-0023을 시연하는 재현 가능한 Android 실험실 환경입니다. PackageInstaller에서 Update Ownership 신뢰 우회 취약점을 보여줍니다. 취약한 동작을 관찰하고 패치를 이해할 수 있는 세 개의 앱이 포함되어 있습니다.

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기
832개월 전아직 검토되지 않음

CVE-2026-0023 - Android Update Ownership 신뢰 우회 PoC

CVE-2026-0023을 재현하고 연구하기 위한 완전한 Android 실험실 환경입니다.

이 저장소는 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 보안 패치 수준 취약점 세부 정보에 나열되어 있습니다.

2026-03-01 이상의 Android 보안 패치 수준은 2026-03-01 보안 패치 수준과 관련된 모든 문제를 해결합니다.

2026-03-05 이상의 Android 보안 패치 수준은 2026-03-05 보안 패치 수준 및 이전 모든 패치 수준과 관련된 모든 문제를 해결합니다.


근본 원인 요약

취약한 동작은 내부 INSTALL_FROM_MANAGED_USER_OR_PROFILE 플래그의 처리와 관련이 있습니다.

이 플래그는 관리 사용자 또는 관리 프로필과 관련된 설치 동작을 나타내기 위한 것입니다.

공식 AOSP 패치는 Android가 설치가 실제로 조직 관리 사용자에 속하는지 확인하기 전에 이 플래그를 명시적으로 지웁니다.

수정된 로직은 DevicePolicyManagerInternal#isUserOrganizationManaged(userId)의 결과에 따라 시스템만 이 플래그를 설정할 수 있도록 보장합니다.

단순화된 패치 로직:

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

+ // Only the system should be able to set this flag - so ensure it is unset when not needed.
+ 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/>Reference installer"] -->|"Installs target app<br/>+ requests update ownership"| B["Ownership Inspector<br/>Target app"]

    C["Unsafe Mart<br/>Alternative installer"] --> D{"Update path"}

    D -->|"Normal update path"| E["Android displays<br/>Update Ownership warning"]

    D -->|"CVE-2026-0023 path"| F["Android displays only<br/>generic update dialog"]

    E --> G["User is warned:<br/>Safe Mart is the update owner"]

    F --> H["Ownership warning<br/>is suppressed"]

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은 업데이트 흐름이 해당 소유권 경고를 우회할 수 있도록 합니다.
  • 업데이트 확인은 소유권 인식 경고에서 일반 업데이트 프롬프트로 다운그레이드됩니다.
  • 이 동작은 루트 액세스, ADB 명령 또는 시스템 권한 없이도 재현할 수 있습니다.

PoC는 루트 액세스, 임의 코드 실행, 지속성, 은닉 또는 맬웨어와 유사한 동작을 제공하려고 시도하지 않습니다.


환경

취약점은 Android 15에서 재현되었습니다.

개념 증명에는 다음이 필요하지 않습니다:

  • 루트 액세스
  • 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 장치 또는 에뮬레이터
  • 업데이트 소유권 관련 API를 위한 Android 14 이상
  • 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 액세스는 일반 애플리케이션 컨텍스트에서 필요한 프레임워크 인터페이스에 도달하기 위한 구현 세부 사항으로만 사용됩니다.

중요한 보안 경계는 이 설치 플래그가 시스템이 관리 사용자 또는 관리 프로필 상태를 검증한 후에 설정된 경우에만 신뢰되어야 한다는 것입니다.


감사의 말

이 프로젝트는 개념 증명에 필요한 비 SDK Android 프레임워크 인터페이스에 액세스하기 위해 ChickenHook의 RestrictionBypass 라이브러리를 사용합니다.

숨겨진 API 액세스 메커니즘은 CVE-2026-0023의 근본 원인과 관련이 없으며 필요한 PackageInstaller API와 상호 작용하는 데만 사용됩니다.

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

원저자들의 작업에 감사드립니다.


영향

Google은 CVE-2026-0023을 높은 심각도의 권한 상승 취약점으로 분류했습니다.

이 문제는 루트 액세스나 임의 코드 실행을 제공하지 않습니다.

그러나 권한이 없는 설치자가 일반적으로 Android의 패키지 설치 보안 모델로 보호되어야 하는 작업을 수행할 수 있도록 허용합니다.

가장 관련성이 높은 영향은 기업 및 관리 장치 배포 시나리오에 있을 가능성이 높습니다.

조직은 애플리케이션이 승인된 앱 스토어 또는 엔터프라이즈 설치자를 통해 업데이트되도록 하기 위해 업데이트 소유권에 의존할 수 있습니다.

소유권 경고를 억제함으로써 CVE-2026-0023은 Android가 다른 소스의 업데이트를 허용하기 전에 일반적으로 제공하는 신뢰 신호를 약화시킵니다.

일반 소비자 장치의 경우 실제 영향은 사용자의 설치 동작, 장치 패치 수준 및 대상 애플리케이션이 업데이트 소유권 의미 체계에 의존하는지 여부에 크게 좌우됩니다.


제한 사항

이 저장소는 통제된 연구 환경에서 취약점을 시연하기 위한 것입니다.

다음을 시도하지 않습니다:

  • 관련 없는 Android 취약점 악용
  • 루트 액세스 획득
  • 앱 서명 확인 우회
  • 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 플래그