Skip to content
KitploitKITPLOIT
OutilsBlog
Log in
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-12960 — CVE-2026-12960 - Exportation inappropriée de composants d'application Android dans l'application ASUS Router (com.asus.aihome). PoC, APK d'exploitation, vidéo et rapport du fournisseur. Corrigé dans 1.0.0.9.74. | Kitploit
Outils/GitHubGitHub/l0lsec/cve-2026-12960
Sécurité AndroidAnalyse des VulnérabilitésExploitationPentesting d'Applications MobilesTests d'IntrusionSécurité Mobile
GitHubl0lsec/cve-2026-12960

CVE-2026-12960

CVE-2026-12960 - Exportation inappropriée de composants d'application Android dans l'application ASUS Router (com.asus.aihome). PoC, APK d'exploitation, vidéo et rapport du fournisseur. Corrigé dans 1.0.0.9.74.

Voir le dépôt
19il y a 2 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Site web

CVE-2026-12960

Exportation inappropriée des composants d'application Android dans l'application ASUS Router

Un composant inclus dans l'application Android ASUS Router (com.asus.aihome) a été déclaré android:exported="true" sans android:permission. Toute autre application sur le même appareil, ne possédant aucune permission, pouvait lui envoyer un Intent malveillant et forcer l'application ASUS Router à ouvrir une URI contrôlée par un attaquant au nom de l'utilisateur.

Signalé à ASUS le 2026-03-17. Corrigé par ASUS et publié sous le numéro CVE-2026-12960 le 2026-07-03.

Découvert et signalé par Sedric Louissaint de Show Up Show Out Security.


Résumé

CVECVE-2026-12960
ProduitApplication ASUS Router pour Android (com.asus.aihome)
Versions affectées≤ 1.0.0.9.71
Corrigé dans1.0.0.9.74
FaiblesseCWE-926 : Exportation inappropriée des composants d'application Android
CVSS 4.06.0 Moyen 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
Avis du fournisseurhttps://www.asus.com/security-advisory/
Testé surcom.asus.aihome 1.0.0.9.71 (Google Play), émulateur Android 11

Détail technique

L'application intègre le SDK Baidu Push, qui déclare :

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

Aucun attribut android:permission n'est présent, donc le contrôle d'accès au niveau des composants d'Android ne s'exécute jamais. Toute application installée peut appeler startService() contre lui.

CommandService.onStartCommand() lit un PublicMsg Parcelable depuis l'extra public_msg de l'Intent entrant et le transmet à handlePrivateNotification(), qui effectue une ramification selon le champ mOpenType fourni par l'attaquant :

mOpenTypeComportement
1startActivity(ACTION_VIEW, Uri.parse(mUrl)) avec le mUrl de l'attaquant
2Intent.parseUri(mPkgContent, 0) puis startActivity() / sendBroadcast()

Ni l'expéditeur ni la charge utile ne sont validés. Comme l'activité résultante est lancée depuis le propre UID et processus de l'application ASUS, tout ce qui apparaît à l'écran semble provenir de l'application de gestion du routeur de confiance que l'utilisateur vient d'ouvrir.

Rien de tout cela n'est spécifique à Baidu en pratique. Le SDK fournit le composant exporté, l'application hôte l'hérite, et c'est l'identité de l'application hôte qui est empruntée.

Chaîne d'attaque

  1. L'application malveillante construit un PublicMsg Parcelable correspondant à la disposition des champs de la cible.
  2. Elle définit mOpenType = 1 et mUrl sur une URI contrôlée par l'attaquant.
  3. Elle envoie l'Intent à CommandService. Aucune permission requise, aucune SecurityException.
  4. onStartCommand() → handlePrivateNotification().
  5. startActivity(ACTION_VIEW, Uri.parse(mUrl)) est déclenché depuis le processus de l'application ASUS.

L'ordre des champs PublicMsg, extrait de writeToParcel dans le smali décompilé et réimplémenté dans 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

Si l'ordre est erroné, le Parcel est désérialisé en déchets. S'il est correct, le service accepte le message comme si la propre infrastructure push de Baidu l'avait envoyé.

Charges utiles démontrées

Six schémas d'URI, un service exporté, zéro permission :

#SchémaRésultat
1https:Le navigateur ouvre une page de phishing contrôlée par l'attaquant
2sms:Composer SMS pré-rempli avec un message d'ingénierie sociale
3tel:Numéroteur pré-rempli avec un numéro contrôlé par l'attaquant
4mailto:Composer email pré-rempli pour exfiltrer des identifiants
5market:Redirection vers le Play Store pour une installation de malware
6geo:Redirection Maps vers un faux centre de service

Preuve de concept

media/poc_commandservice.mp4 est l'enregistrement complet de 31 secondes : construction, installation, déclenchement, et l'émulateur réagissant à chaque charge utile à son tour.

Attaque 1 : page de phishingAttaque 2 : composer SMSAttaque 3 : numéroteurPermissions de l'application PoC
Navigateur ouvert vers une URL d'attaquantComposer SMS pré-rempli avec une fausse alerte de sécurité ASUSNuméroteur pré-rempli avec un numéro d'attaquantÉcran d'informations de l'application Android indiquant "Aucune permission demandée"

Cette dernière capture d'écran résume tout. Aucune permission demandée. L'application qui vient d'exécuter six actions via l'application ASUS Router n'a rien demandé à l'utilisateur.

Reproduction

Nécessite ADB, un JDK, et les outils de construction du SDK Android (aapt2, d8/dx, zipalign, apksigner) ainsi que platforms;android-30.

./poc/poc_commandservice_exploit.sh <device_serial>

Le script exécute trois phases :

  1. Vérification d'accès. Envoie les trois actions CommandService depuis com.android.shell et rapporte si l'une d'elles est rejetée. Un service protégé par permission lèverait SecurityException ici. Celui-ci les a toutes acceptées.
  2. Construction. Compile la PoC, empaquète et signe exploit_commandservice.apk, et l'installe. Une copie préconstruite est disponible dans poc/ si vous préférez sauter cette étape.
  3. Exécution. Amène l'application ASUS au premier plan, lance la PoC depuis un contexte d'application non privilégiée, et capture les preuves dans le logcat.

Sortie de la phase 1 sur un appareil vulnérable :

[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

Et le ServiceRecord de dumpsys activity services, qui enregistre l'appelant :

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

Phase 3, depuis une véritable application non privilégiée plutôt que le shell :

W PoCExploit: [OK] attack1_url_open → com.asus.aihome/com.baidu.android.pushservice.CommandService
W PoCExploit: [OK] attack2_sms_compose → ...
(all 6 succeed)
Télécharger l’outil