
Sonda il canale laterale di Android ContactsProvider associato alla CVE-2026-0075 con una PoC senza permessi, consentendo l'analisi delle cause profonde e il confronto tra versioni patchate e vulnerabili.
Un prototipo di ricerca Android in ambiente controllato per valutare il comportamento osservabile associato a CVE-2026-0075 in ContactsProvider2.
CVE-2026-0075 è un problema Android di elevazione locale dei privilegi in ContactsProvider2. L'avviso pubblico descrive un possibile percorso di accesso al database dei contatti tramite SQL injection, senza interazione da parte dell'utente. Android classifica il problema come High e identifica Android 14, 15, 16 e 16-qpr2 come versioni AOSP interessate. I dispositivi con livello di patch di sicurezza 2026-06-05 o successivo risolvono i problemi del bollettino di giugno 2026.
L'app inclusa è un PoC Java/Android autonomo che dichiara intenzionalmente né READ_CONTACTS né WRITE_CONTACTS. Ha lo scopo di aiutare i ricercatori autorizzati a confrontare il comportamento dei confini dei permessi e la gestione delle eccezioni su build controllate.
Questo repository è solo per ricerca di sicurezza autorizzata.
Il progetto non rivendica un percorso di sfruttamento universale. Registra un'osservazione controllata che deve essere validata rispetto alla build target, al suo livello di patch e all'implementazione di 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
Il fix AOSP pubblico, bb9f36b3ff6d42136afb61d527e1e8f67242fe32, è intitolato Fix side channel attacks in CP2. Modifica ContactsProvider2 per rimuovere i messaggi SQLiteException relativi a JSON per i chiamanti senza READ_CONTACTS e introduce la materializzazione del cursore nel percorso di gestione delle eccezioni. Questo PoC è progettato per un confronto controllato del comportamento prima/dopo; non sostituisce la validazione della patch.
javac, jar e keytool disponibili su PATHandroid-3536.0.0adb)Imposta ANDROID_HOME sulla radice dell'SDK prima della compilazione. ANDROID_SDK_ROOT può essere utilizzato anche dai tuoi strumenti locali, ma gli script forniti leggono ANDROID_HOME.
$env:ANDROID_HOME = 'C:\Android\Sdk'
Dalla radice del repository:
Set-Location .\no-permission-probe
.\build.ps1
L'APK debug firmato viene scritto in no-permission-probe\build\probe.apk. La directory build è esclusa dal controllo versione.
Avvia un emulatore autorizzato o un dispositivo di test contenente solo contatti sintetici.
Conferma il dispositivo e il livello di patch:
adb devices
adb shell getprop ro.build.version.security_patch
Compila l'app, quindi esegui:
Set-Location .\no-permission-probe
.\run-poc.ps1
Esamina solo l'interfaccia utente dell'applicazione e il tag di log con ambito:
adb logcat -s CVE20260075Probe:I
L'helper di esecuzione seleziona un URI data/<id> esatto dal dispositivo di test connesso e avvia l'attività con una concessione di lettura. Non utilizzarlo dove tale comportamento non è esplicitamente autorizzato.
Per un risultato difendibile, cattura quanto segue a ogni esecuzione:
Confronta un'immagine di laboratorio nota vulnerabile con un'immagine che contiene il fix di giugno 2026. Il segnale di remediation atteso è che gli errori SQLite qualificanti relativi a JSON restituiti ai chiamanti privi di READ_CONTACTS vengano sostituiti con un messaggio generico; questo di per sé non stabilisce l'assenza di ogni oracolo osservabile.
Questa CVE è stata divulgata pubblicamente e affrontata nel bollettino sulla sicurezza Android di giugno 2026. Per le vulnerabilità attuali dei prodotti Android, segnala direttamente tramite il processo Android Security. Consulta SECURITY.md per le indicazioni specifiche del repository.
bb9f36b3ff6d42136afb61d527e1e8f67242fe32Concesso in licenza secondo la Apache License 2.0.