
CVE-2026-0013 Android EoP PoC - Artefatos compilados para pesquisa de segurança (Derivado de inforcqb/cve-2026-0013-exploit)
Vulnerabilidade do tipo agente confuso (Confused Deputy) no Android DocumentsUI - Projeto de validação de pesquisa de segurança
Este repositório é um repositório derivado de compilação, afiliado ao repositório principal original.
| Papel | Repositório | Descrição |
|---|---|---|
| Repositório principal | inforcqb/cve-2026-0013-exploit | Pesquisa original da vulnerabilidade |
| Este repositório | XiaoBaiLovesStirring/cve-2026-0013-poc | Distribuição dos artefatos de compilação em nuvem |
Antes de acessar este repositório, leia e compreenda o SECURITY_PROTOCOL.md.
Pontos principais:
GitHub Pages: https://XiaoBaiLovesStirring.github.io/cve-2026-0013-poc/
Acionar compilação: https://github.com/XiaoBaiLovesStirring/cve-2026-0013-poc/actions
Obter artefatos: git clone --branch artifacts https://github.com/XiaoBaiLovesStirring/cve-2026-0013-poc.git
Alteração: o targetIntent encaminhado pelo DocumentsUI passou a apontar para o novo componente próprio IdTestActivity. Esse componente é responsável por executar id e gravar a identidade de execução e o resultado no logcat e na barra de notificações, para verificar dois fatos-chave:
Intent.EXTRA_INTENT e inicia o componente alvo em seu nomeExplicação do mecanismo (importante): de acordo com o modelo de isolamento do Android, qualquer componente de um aplicativo de terceiros, independentemente de quem o inicie, será executado apenas dentro do processo/UID declarado por ele mesmo. Somente com a delegação de inicialização do DocumentsUI, o IdTestActivity continuará sendo executado com o UID do próprio com.example.cve20260013exploit (por exemplo, u0_a702/10702), não se tornando automaticamente o uid=10054 do DocumentsUI. Para que todo o APK obtenha 10054, seria necessário sharedUserId="android.uid.documentsui" (exige assinatura do sistema, indisponível para terceiros) ou ambiente root. O valor do v1.0.4 está em verificar se o EXTRA_INTENT é consumido e qual é a identidade real do componente iniciado em nome de outro.
Problema: no OPPO/ColorOS, a PickActivity do DocumentsUI não consome mais o Intent.EXTRA_INTENT passado pelo chamador. Nos testes reais, o mCallingUid ainda era o do chamador, u0_a702, e a PickActivity apenas renderizava sua própria tela de seleção e parava, sem qualquer ação iniciada em nome do DocumentsUI (uid=10054); a cadeia original de agente confuso estava, na prática, quebrada.
Correção (redesenho da cadeia de acionamento):
ACTION_OPEN_DOCUMENT / ACTION_GET_CONTENT + CATEGORY_OPENABLE + */*)picker.PickActivity e para a entrada nativa PickActivity, evitando falhas caso a entrada não seja encontradacontent:// retornada pelo DocumentsUI, verificar inversamente a identidade do host da autorização (probeUriGrant), validando pelo lado do autorizador se o agente confuso se confirmaExplicação do mecanismo: o aplicativo em si não consegue fazer o processo do DocumentsUI executar comandos arbitrários em seu lugar; a "elevação de privilégio" do agente confuso se manifesta em fazer com que ele mantenha/encaminhe em seu nome recursos de autorização que só ele pode obter com seu próprio uid. Portanto, o v1.0.3 passou a verificar "quem obteve a permissão de URI concedida pelo DocumentsUI", em vez de executar id dentro do próprio processo do aplicativo.
Registro da correção de compilação: a primeira compilação falhou, pois o retorno de getPackageManager().resolveActivity() era do tipo ResolveInfo em vez de ComponentName, com o erro error: incompatible types: ResolveInfo cannot be converted to ComponentName. A correção foi extrair packageName/name de ResolveInfo.activityInfo para construir o ComponentName, e então a compilação passou.
Alteração: a ação da prova de conceito passou de "iniciar o Termux" para "após acionar a cadeia de agente confuso, executar o comando id e exibir o resultado na barra de notificações do sistema".
id (tentando vários caminhos: sh -c id, id, /system/bin/id, /system/xbin/id)uid/gid/groupspicker.PickActivity → nativa .PickActivity)POST_NOTIFICATIONS do Android 13+ para enviar notificaçõesProblema: vários fabricantes (como a OPPO) modificaram o caminho das classes do DocumentsUI; a entrada nativa com.android.documentsui.PickActivity foi movida para com.android.documentsui.picker.PickActivity, fazendo com que os artefatos de compilação antigos não conseguissem localizar a entrada de exploração no dispositivo de destino.
Correção:
com.android.documentsui.picker.PickActivity.PickActivityGuia para solução de problemas de falha de compilação (importante):
dumpsys package com.android.documentsui ou a Activity Resolver Table para confirmar por conta própria o nome real da classe de entrada após a modificação do fabricante e, em seguida, altere o parâmetro setClassName em ExploitActivity.java e envie para acionar uma nova compilaçãoCVE-2026-0013 | HIGH (CVSS 8.4) | CWE-441 | Android 14-16 | DocumentsUI PickActivity
Comunicado de correção: Android Security Bulletin 2026-03-01