Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-12960 — CVE-2026-12960 - Improper Export of Android Application Components in the ASUS Router app (com.asus.aihome). PoC, exploit APK, video, and vendor report. Fixed in 1.0.0.9.74. | Kitploit
Ferramentas/GitHubGitHub/l0lsec/cve-2026-12960
Android SecurityVulnerability AnalysisExploitationMobile App PentestingPenetration TestingMobile Security
GitHubl0lsec/cve-2026-12960

CVE-2026-12960

CVE-2026-12960 - Improper Export of Android Application Components in the ASUS Router app (com.asus.aihome). PoC, exploit APK, video, and vendor report. Fixed in 1.0.0.9.74.

Ver Repositório
há 26 diasAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
Site

CVE-2026-12960

Exportação Incorreta de Componentes de Aplicativo Android no Aplicativo ASUS Router

Um componente incluído no aplicativo ASUS Router para Android (com.asus.aihome) foi declarado android:exported="true" sem android:permission. Qualquer outro aplicativo no mesmo dispositivo, sem nenhuma permissão, poderia enviar uma Intent manipulada e fazer com que o aplicativo ASUS Router abrisse uma URI controlada pelo atacante em nome do usuário.

Relatado à ASUS em 2026-03-17. Corrigido pela ASUS e publicado como CVE-2026-12960 em 2026-07-03.

Descoberto e relatado por Sedric Louissaint da Show Up Show Out Security.


Resumo

CVECVE-2026-12960
ProdutoAplicativo ASUS Router para Android (com.asus.aihome)
Afetado≤ 1.0.0.9.71
Corrigido em1.0.0.9.74
VulnerabilidadeCWE-926: Exportação Incorreta de Componentes de Aplicativo Android
CVSS 4.06.0 Médio CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:H/SI:N/SA:N
CNAASUS
Aviso do fornecedorhttps://www.asus.com/security-advisory/
Testado emcom.asus.aihome 1.0.0.9.71 (Google Play), emulador Android 11

Detalhe técnico

O aplicativo inclui o SDK Baidu Push, que declara:

root@kitploit:~
<service
    android:name="com.baidu.android.pushservice.CommandService"
    android:exported="true" />

Nenhum atributo android:permission, portanto o controle de acesso em nível de componente do Android nunca é acionado. Qualquer aplicativo instalado pode chamar startService() contra ele.

CommandService.onStartCommand() lê um PublicMsg Parcelable do extra public_msg da Intent recebida e o passa para handlePrivateNotification(), que ramifica com base no campo mOpenType fornecido pelo atacante:

mOpenTypeComportamento
1startActivity(ACTION_VIEW, Uri.parse(mUrl)) com o mUrl do atacante

Nem o remetente nem a carga são validados. Como a atividade resultante é iniciada a partir do próprio UID e processo do aplicativo ASUS, o que quer que apareça na tela parece ter vindo do aplicativo confiável de gerenciamento de roteador que o usuário acabou de abrir.

Nada disso é específico da Baidu em efeito. O SDK fornece o componente exportado, o aplicativo hospedeiro o herda, e a identidade do aplicativo hospedeiro é o que é emprestado.

Cadeia de ataque

  1. O aplicativo malicioso constrói um PublicMsg Parcelable compatível com o layout de campos do alvo.
  2. Define mOpenType = 1 e mUrl para uma URI controlada pelo atacante.
  3. Envia a Intent para CommandService. Nenhuma permissão necessária, nenhum SecurityException.
  4. onStartCommand() → handlePrivateNotification().
  5. startActivity(ACTION_VIEW, Uri.parse(mUrl)) é disparada a partir do processo do aplicativo ASUS.

A ordem dos campos PublicMsg, recuperada de writeToParcel no smali descompilado e reimplementada em poc/PublicMsg.java:

root@kitploit:~
String mMsgId, mAppId, mTitle, mDescription, mUrl, mPkgName
int    mPkgVercode, mNotificationBuilder, mNotificationBasicStyle
int    mOpenType, mUserConfirm
String mCustomContent, mPkgContent
int    mAdvertiseStyle
String mAdvertiseSmallIconUrl, mAdvertiseLargeIconUrl, mAdvertiseClickUrl,
       mAdvertiseBigPictureUrl, mAdvertiseBigPictureClickUrl, mAdvertiseDownloadClickUrl

Se a ordem estiver errada, o Parcel é desserializado em lixo. Se estiver correta, o serviço aceita a mensagem como se a própria infraestrutura de push da Baidu a tivesse enviado.

Cargas úteis demonstradas

Seis esquemas de URI, um serviço exportado, zero permissões:

Prova de conceito

media/poc_commandservice.mp4 é a execução completa de 31 segundos: compilar, instalar, disparar e o emulador reagindo a cada carga útil em sequência.

Ataque 1: página de phishingAtaque 2: compositor de SMSAtaque 3: discadorPermissões do aplicativo PoC
Browser opened to an attacker URL

Essa última captura de tela é todo o argumento. Nenhuma permissão solicitada. O aplicativo que acabou de conduzir seis ações através do aplicativo ASUS Router não pediu nada ao usuário.

Reproduzindo

Requer ADB, um JDK e as ferramentas de build do Android SDK (aapt2, d8/dx, zipalign, apksigner) além de platforms;android-30.

root@kitploit:~
./poc/poc_commandservice_exploit.sh <device_serial>

O script executa três fases:

  1. Verificação de acesso. Envia as três ações de CommandService de com.android.shell e relata se alguma é rejeitada. Um serviço protegido por permissão lança SecurityException aqui. Este aceitou todas as três.
  2. Compilação. Compila o PoC, empacota e assina exploit_commandservice.apk, e o instala. Uma cópia pré-compilada está em poc/ se preferir pular esta etapa.
  3. Execução. Traz o aplicativo ASUS para primeiro plano, inicia o PoC a partir de um contexto de aplicativo não privilegiado e captura a evidência no logcat.

Saída da Fase 1 em um dispositivo vulnerável:

root@kitploit:~
[ACCESS]  passthrough.notification.CLICK → service accepted intent
[ACCESS]  privatenotification.CLICK      → service accepted intent
[ACCESS]  privatenotification.DELETE     → service accepted intent

  Phase 1 result: 3/3 actions accepted without permission check

E o ServiceRecord de dumpsys activity services, que registra o chamador:

root@kitploit:~
intent={act=com.baidu.android.pushservice.action.privatenotification.CLICK
        cmp=com.asus.aihome/com.baidu.android.pushservice.CommandService}
recentCallingPackage=com.android.shell
startRequested=true callStart=true

Fase 3, a partir de um aplicativo real não privilegiado em vez do shell:

root@kitploit:~
W PoCExploit: [OK] attack1_url_open → com.asus.aihome/com.baidu.android.pushservice.CommandService
W PoCExploit: [OK] attack2_sms_compose → ...
(all 6 succeed)

startService() retornou o ComponentName alvo em vez de null, e nenhum SecurityException foi lançado. O Android resolveu a Intent e a entregou.

Conteúdo do repositório

root@kitploit:~
poc/
  poc_commandservice_exploit.sh   Script automatizado de reprodução em três fases
  ExploitCommandService.java      Código-fonte da atividade PoC + receptor de broadcast
  PublicMsg.java                  Parcelable compatível com o layout de campos do alvo
  AndroidManifest_PoC.xml         Manifesto PoC (nota: sem <uses-permission>)
  exploit_commandservice.apk      PoC pré-compilado, assinado para debug, zero permissões
media/
  poc_commandservice.mp4          Gravação completa do PoC
  attack1-browser.jpg             Fotos extraídas da gravação
  attack2-sms.jpg
  attack3-dialer.jpg
  poc-app-no-permissions.jpg
vendor/
  asus-security-advisory-submission.pdf   O relatório conforme submetido à ASUS

A URL de saída do PoC é um subdomínio do Burp Collaborator que foi usado para confirmar que a navegação realmente ocorreu. Está morto há muito tempo. Substitua pelo seu próprio se estiver reproduzindo.

Remediação

Para o fornecedor, a correção é um atributo:

root@kitploit:~
<service
    android:name="com.baidu.android.pushservice.CommandService"
    android:exported="false" />

Ou, se o componente realmente precisar ser acessível externamente, proteja-o com uma permissão de nível de proteção signature e valide o PublicMsg desserializado antes de agir sobre ele. A ASUS enviou a correção na versão 1.0.0.9.74.

Para usuários: atualize o aplicativo ASUS Router para 1.0.0.9.74 ou posterior.

Para todos os outros que distribuem aplicativos Android: audite o que seus SDKs de terceiros exportam. Execute aapt dump xmltree base.apk AndroidManifest.xml em sua própria versão de lançamento e leia cada exported="true" nela. O manifesto que você distribui é a soma de todos os manifestos que você mesclou, e você é responsável por todos eles.

Linha do tempo

DataEvento
2026-03-17Relatado à ASUS com APK PoC, script automatizado e vídeo
2026-06-23CVE-2026-12960 reservado pela ASUS como CNA
2026-07-03CVE publicado; correção disponível na versão 1.0.0.9.74
2026-07-25Artigo público e PoC divulgados

Artigos

  • Conta pessoal: https://sedriclouissaint.com/blog/asus-router-app-exported-commandservice-cve-2026-12960
  • Show Up Show Out Security: https://susos.co/blog/improper-export-of-android-components-in-the-asus-router-app-cve-2026-12960

Aviso legal

Publicado após divulgação coordenada e correção do fornecedor, para uso defensivo e educacional. O PoC tem como alvo uma versão corrigida e não faz nada além de lançar URIs. Não execute-o em dispositivos que você não possui ou para os quais não tenha autorização por escrito para testar.

Baixar ferramenta
2Intent.parseUri(mPkgContent, 0) e em seguida startActivity() / sendBroadcast()
#EsquemaResultado
1https:Navegador abre uma página de phishing controlada pelo atacante
2sms:Compositor de SMS pré-preenchido com uma mensagem de engenharia social
3tel:Discador pré-preenchido com um número controlado pelo atacante
4mailto:Compositor de e-mail pré-preenchido para exfiltrar credenciais
5market:Redirecionamento para a Play Store para instalação de malware
6geo:Redirecionamento para o Maps para um centro de serviço falso
SMS composer pre-filled with a fake ASUS security alert
Dialer pre-filled with an attacker number
Android App info screen showing "No permissions requested"