
Проверяет побочный канал Android ContactsProvider (CVE-2026-0075) с помощью PoC без разрешений, что позволяет проводить анализ первопричины и сравнение пропатченной и уязвимой версий.
Контролируемый лабораторный исследовательский прототип Android для оценки наблюдаемого поведения, связанного с CVE-2026-0075 в ContactsProvider2.
CVE-2026-0075 — это локальная проблема Android, связанная с повышением привилегий в ContactsProvider2. В публичном уведомлении описывается возможный путь доступа к базе данных контактов через SQL-инъекцию без взаимодействия с пользователем. Android классифицирует проблему как High и указывает Android 14, 15, 16 и 16-qpr2 в качестве затронутых версий AOSP. Устройства с уровнем патча безопасности 2026-06-05 или более поздним устраняют проблемы июньского бюллетеня 2026 года.
Включённое приложение — это автономный Java/Android PoC, который намеренно не объявляет ни READ_CONTACTS, ни WRITE_CONTACTS. Оно предназначено для того, чтобы помочь авторизованным исследователям сравнивать поведение границ разрешений и обработку исключений на контролируемых сборках.
Этот репозиторий предназначен только для авторизованных исследований безопасности.
Проект не претендует на универсальный путь эксплуатации. В нём фиксируется контролируемое наблюдение, которое должно быть проверено на целевой сборке, её уровне патча и реализации ContactsProvider.
.
├── no-permission-probe/ Standalone Android application and PowerShell helpers
│ ├── build.ps1 Compiles, packages, aligns, and signs a debug APK
│ ├── run-poc.ps1 Installs the APK and starts the controlled probe
│ ├── AndroidManifest.xml No READ_CONTACTS or WRITE_CONTACTS declaration
│ ├── res/ Android resources
│ └── src/ Application source
├── CONTRIBUTING.md Contribution and research-data requirements
├── SECURITY.md Vulnerability reporting guidance
└── .gitignore Local build and IDE exclusions
Публичное исправление AOSP bb9f36b3ff6d42136afb61d527e1e8f67242fe32 называется Fix side channel attacks in CP2. Оно изменяет ContactsProvider2, чтобы удалять сообщения SQLiteException, связанные с JSON, для вызывающих сторон без READ_CONTACTS, и включает материализацию курсора в путь обработки исключений. Этот PoC предназначен для контролируемого сравнения поведения до и после; он не заменяет проверку патча.
javac, jar и keytool, доступными в PATHandroid-3536.0.0adb)Установите ANDROID_HOME в корневую папку SDK перед сборкой. ANDROID_SDK_ROOT также может использоваться вашими локальными инструментами, но предоставленные скрипты читают ANDROID_HOME.
$env:ANDROID_HOME = 'C:\Android\Sdk'
Из корня репозитория:
Set-Location .\no-permission-probe
.\build.ps1
Подписанный отладочный APK записывается в no-permission-probe\build\probe.apk. Каталог build исключён из системы контроля версий.
Запустите авторизованный эмулятор или тестовое устройство, содержащее только синтетические контакты.
Подтвердите устройство и уровень патча:
adb devices
adb shell getprop ro.build.version.security_patch
Соберите приложение, затем выполните:
Set-Location .\no-permission-probe
.\run-poc.ps1
Просматривайте только интерфейс приложения и целевой тег журнала:
adb logcat -s CVE20260075Probe:I
Вспомогательный скрипт запуска выбирает конкретный URI data/<id> на подключённом тестовом устройстве и запускает активность с разрешением на чтение. Не используйте его там, где такое поведение явно не разрешено.
Для получения обоснованного результата фиксируйте следующее при каждом запуске:
Сравните заведомо уязвимый лабораторный образ с образом, содержащим июньское исправление 2026 года. Ожидаемый сигнал об устранении уязвимости состоит в том, что подходящие ошибки SQLite, связанные с JSON, возвращаемые вызывающим сторонам без READ_CONTACTS, заменяются общим сообщением; само по себе это не доказывает отсутствие любого наблюдаемого оракула.
Эта CVE была публично раскрыта и устранена в июньском бюллетене безопасности Android 2026 года. О текущих уязвимостях продуктов Android сообщайте напрямую через процесс Android Security. См. SECURITY.md для конкретных рекомендаций по репозиторию.
bb9f36b3ff6d42136afb61d527e1e8f67242fe32Распространяется по лицензии Apache License 2.0.