Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2026-12960 — CVE-2026-12960 - Esportazione impropria dei componenti dell'applicazione Android nell'app ASUS Router (com.asus.aihome). PoC, APK dell'exploit, video e report del fornitore. Corretto nella versione 1.0.0.9.74. | Kitploit
Strumenti/GitHubGitHub/l0lsec/cve-2026-12960
Sicurezza AndroidAnalisi delle VulnerabilitàExploitPentesting di App MobiliPenetration TestingSicurezza Mobile
GitHubl0lsec/cve-2026-12960

CVE-2026-12960

CVE-2026-12960 - Esportazione impropria dei componenti dell'applicazione Android nell'app ASUS Router (com.asus.aihome). PoC, APK dell'exploit, video e report del fornitore. Corretto nella versione 1.0.0.9.74.

Vedi Repository
202 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Sito web

CVE-2026-12960

Esportazione impropria dei componenti dell'app Android ASUS Router

Un componente incluso nell'app Android ASUS Router (com.asus.aihome) era dichiarato android:exported="true" senza android:permission. Qualsiasi altra app sullo stesso dispositivo, senza alcuna autorizzazione, poteva inviargli un Intent appositamente predisposto e far aprire all'app ASUS Router un URI controllato dall'attaccante per conto dell'utente.

Segnalato ad ASUS il 2026-03-17. Corretto da ASUS e pubblicato come CVE-2026-12960 il 2026-07-03.

Scoperto e segnalato da Sedric Louissaint di Show Up Show Out Security.


Riepilogo

CVECVE-2026-12960
ProdottoApp ASUS Router per Android (com.asus.aihome)
Versioni vulnerabili≤ 1.0.0.9.71
Corretto nella versione1.0.0.9.74
DebolezzaCWE-926: Esportazione impropria dei componenti dell'applicazione Android
CVSS 4.06.0 Medio 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
Avviso del fornitorehttps://www.asus.com/security-advisory/
Testato sucom.asus.aihome 1.0.0.9.71 (Google Play), emulatore Android 11

Dettaglio tecnico

L'app include l'SDK Baidu Push, che dichiara:

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

Nessun attributo android:permission: il controllo degli accessi a livello di componente di Android non viene quindi mai eseguito. Qualsiasi app installata può chiamare startService() su di esso.

CommandService.onStartCommand() legge un PublicMsg Parcelable dall'extra public_msg dell'Intent in arrivo e lo passa a handlePrivateNotification(), che dirama sul campo mOpenType fornito dall'attaccante:

mOpenTypeComportamento
1startActivity(ACTION_VIEW, Uri.parse(mUrl)) con l'mUrl dell'attaccante
2Intent.parseUri(mPkgContent, 0) poi startActivity() / sendBroadcast()

Né il mittente né il payload vengono validati. Poiché l'activity risultante viene avviata dall'UID e dal processo dell'app ASUS stessa, qualsiasi cosa appaia sullo schermo sembra provenire dalla fidata app di gestione del router che l'utente ha appena aperto.

In pratica, nulla di tutto ciò è specifico di Baidu: l'SDK fornisce il componente esportato, l'app ospitante lo eredita e l'identità dell'app ospitante è ciò che viene presa in prestito.

Catena di attacco

  1. Un'app dannosa costruisce un PublicMsg Parcelable che corrisponde alla disposizione dei campi del target.
  2. Imposta mOpenType = 1 e mUrl su un URI controllato dall'attaccante.
  3. Invia l'Intent a CommandService. Nessuna autorizzazione richiesta, nessuna SecurityException.
  4. onStartCommand() → handlePrivateNotification().
  5. startActivity(ACTION_VIEW, Uri.parse(mUrl)) viene attivata dal processo dell'app ASUS.

L'ordine dei campi di PublicMsg, ricostruito da writeToParcel nello smali decompilato e reimplementato in poc/PublicMsg.java:

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

Sbaglia l'ordine e la Parcel viene de-marshallata in dati spazzatura. Azzeccalo e il servizio accetta il messaggio come se fosse stato inviato dalla stessa infrastruttura push di Baidu.

Payload dimostrati

Sei schemi URI, un servizio esportato, zero autorizzazioni:

#SchemeRisultato
1https:Il browser apre una pagina di phishing controllata dall'attaccante
2sms:Compositore SMS precompilato con un messaggio di ingegneria sociale
3tel:Dialer precompilato con un numero controllato dall'attaccante
4mailto:Compositore email precompilato per esfiltrare credenziali
5market:Reindirizzamento al Play Store per l'installazione di malware
6geo:Reindirizzamento in Maps a un falso centro assistenza

Prova di concetto

media/poc_commandservice.mp4 è la registrazione completa di 31 secondi: build, installazione, attivazione e l'emulatore che reagisce a ciascun payload a turno.

Attacco 1: pagina di phishingAttacco 2: compositore SMSAttacco 3: dialerAutorizzazioni dell'app PoC
Browser aperto su un URL dell'attaccanteCompositore SMS precompilato con un falso avviso di sicurezza ASUSDialer precompilato con un numero dell'attaccanteSchermata Informazioni app di Android che mostra "Nessuna autorizzazione richiesta"

Quell'ultimo screenshot è l'intera argomentazione. Nessuna autorizzazione richiesta. L'app che ha appena eseguito sei azioni tramite l'app ASUS Router non ha chiesto nulla all'utente.

Riproduzione

Richiede ADB, un JDK e gli strumenti di build dell'Android SDK (aapt2, d8/dx, zipalign, apksigner) oltre a platforms;android-30.

./poc/poc_commandservice_exploit.sh <device_serial>

Lo script esegue tre fasi:

  1. Verifica degli accessi. Invia le tre azioni CommandService da com.android.shell e segnala se qualcuna viene rifiutata. Un servizio protetto da autorizzazione genera una SecurityException in questo punto. Questo ha accettato tutte e tre.
  2. Build. Compila il PoC, crea il pacchetto, firma exploit_commandservice.apk e lo installa. Una copia precompilata è in poc/ se preferisci saltare questo passaggio.
  3. Esecuzione. Porta l'app ASUS in primo piano, avvia il PoC da un contesto di app non privilegiata e cattura le prove in logcat.

Output della fase 1 su un dispositivo vulnerabile:

[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 il ServiceRecord da dumpsys activity services, che registra il chiamante:

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, da una vera app non privilegiata anziché dalla shell:

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

startService() ha restituito il ComponentName del target invece di null e non è stata lanciata alcuna SecurityException. Android ha risolto l'Intent e lo ha consegnato.

Contenuto del repository

Scarica lo strumento