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-21018 — A minimal PoC for CVE-2026-21018, demonstrating how it works | Kitploit
Ferramentas/GitHubGitHub/filipemendonca1978/cve-2026-21018
Android SecurityVulnerability AnalysisExploitationPenetration TestingMobile SecurityLearning & EducationBinary Exploitation
GitHubfilipemendonca1978/cve-2026-21018

CVE-2026-21018

A minimal PoC for CVE-2026-21018, demonstrating how it works

Ver Repositório
1há 1 mêsAinda 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

SveService Buffer Overflow

Português English


Samsung SMR Maio 2026

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

Versões afetadas: Android 14, 15, 16

Status de divulgação: Divulgado privadamente

Escrita fora dos limites no SveService anterior ao SMR Maio-2026 Release 1 permite que atacantes privilegiados locais executem código arbitrário.

O patch adiciona validação de entrada adequada.


Aviso: este é um Proof-Of-Concept (PoC) apenas para fins educacionais, não sou responsável por nada que você faça que não seja estudar. Você foi avisado.

Isso foi testado em um Galaxy A17 LTE (SM-A175F)


English

Resumo

Vulnerabilidade de buffer overflow no serviço de sistema SveService (com.sec.sve) em dispositivos Samsung rodando Android 16. O serviço roda como system (UID 1000) e é acessível sem qualquer permissão especial via Binder.

Componentes

ComponentePapelVersão
sveservice.apkServiço AndroidAPI 36
libsvejni.soBiblioteca nativa ARM64Build ID: 0a71afa45f8688b4314ed8e5a0aea8b9

A Vulnerabilidade

Em sveJNISVE_SetCodecInfo (libsvejni.so:0x21710), os parâmetros i18, i19, i20 (recebidos da AIDL como i106/i107/i108, TRANSACTION_sveSetCodecInfo = 38) são passados diretamente para memset, sub sp, sp, xN (alloca), e memcpy sem validação de tamanho.

Funções similares (GetVersion, EnableSRTP, SetSRTPParams, SetGcmSrtpParams) validam com cmp w20, #0x1e; b.gt (rejeitando > 30 bytes). SetCodecInfo não valida absolutamente nada.

Fluxo da Chamada

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 com -1 (0xFFFFFFFF)

Evidência de Crash (Tombstone 07)

root@kitploit:~
Causa: ponteiro de pilha está em um mapa inexistente; provavelmente devido a estouro de pilha.
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 em região inválida
x29 000000717f5f7710   ← ponteiro de quadro original

PoC

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

Saída esperada:

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

Notas

  • Sem root necessário: ServiceManager.getService() via app_process funciona como UID shell.
  • Bypass de permissão: A permissão signatureOrSystem NÃO é aplicada — o serviço é registrado via ServiceManager.addService() diretamente, ignorando o mecanismo de permissão do Android.
  • Crash inevitável: memset com 0xFFFFFFFF sempre crasha. RCE exigiria um vazamento de endereço + ROP (PAC ausente no SM-A175F).

Português

Resumo

Vulnerabilidade de buffer overflow no serviço de sistema SveService (com.sec.sve) em dispositivos Samsung com Android 16. O serviço roda como system (UID 1000) e é acessível sem qualquer permissão especial via Binder.

Componentes

ComponentePapelVersão
sveservice.apkServiço AndroidAPI 36
libsvejni.soBiblioteca nativa ARM64Build ID: 0a71afa45f8688b4314ed8e5a0aea8b9

A Vulnerabilidade

Na função sveJNISVE_SetCodecInfo (libsvejni.so:0x21710), os parâmetros i18, i19, i20 (recebidos da AIDL como i106/i107/i108, TRANSACTION_sveSetCodecInfo = 38) são usados diretamente como argumentos para memset, sub sp, sp, xN (alloca) e memcpy sem qualquer validação de tamanho.

Outras funções similares (GetVersion, EnableSRTP, SetSRTPParams, SetGcmSrtpParams) validam com cmp w20, #0x1e; b.gt (rejeitam > 30 bytes). SetCodecInfo não valida nada.

Fluxo da Chamada

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 com -1 (0xFFFFFFFF)

PoC

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

Saída esperada:

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

Observações

  • Sem root: ServiceManager.getService() via app_process funciona com UID shell.
  • Permissão: A permissão signatureOrSystem NÃO é aplicada — o serviço é registrado via ServiceManager.addService() diretamente, bypassando o permission check.
  • Crash inevitável: memset com 0xFFFFFFFF sempre crasha. RCE precisaria de leak de endereço + ROP (PAC ausente no SM-A175F).
Baixar ferramenta
OperaçãoValorEfeito
(i18 + 15) & ~150Aloca 0 bytes
memset(buf, 0, i18)0x00000000FFFFFFFFTenta zerar 4 GB → SIGSEGV
sxtw(i18) para memcpy0xFFFFFFFFFFFFFFFFExtensão de sinal de -1 → ~18 exabytes
OperaçãoValorEfeito
(i18 + 15) & ~150Alloca 0 bytes
memset(buf, 0, i18)0x00000000FFFFFFFFTenta zerar 4 GB → SIGSEGV
sxtw(i18) para memcpy0xFFFFFFFFFFFFFFFFSign-extend de -1 → ~18 exabytes