Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2026-21018 — Минимальный PoC для CVE-2026-21018, демонстрирующий, как он работает | Kitploit
Инструменты/GitHubGitHub/filipemendonca1978/cve-2026-21018
Безопасность AndroidАнализ уязвимостейЭксплуатацияТестирование на ПроникновениеМобильная безопасностьОбучение и ОбразованиеЭксплуатация Бинарных Файлов
GitHubfilipemendonca1978/cve-2026-21018

CVE-2026-21018

Минимальный PoC для CVE-2026-21018, демонстрирующий, как он работает

Репозиторий
11 месяц назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Переполнение буфера в SveService

Português English


Samsung SMR May 2026

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

Затронутые версии: Android 14, 15, 16

Статус раскрытия: Раскрыто в частном порядке

Выход за границы буфера в SveService до SMR May-2026 Release 1 позволяет локальным привилегированным злоумышленникам выполнять произвольный код.

Патч добавляет корректную проверку входных данных.


Внимание: это Proof-of-Concept (PoC) только в образовательных целях; я не несу ответственности за всё, что вы делаете, кроме учёбы. Вы предупреждены.

Протестировано на Galaxy A17 LTE (SM-A175F)


Английский

Краткое описание

Уязвимость переполнения буфера в системной службе SveService (com.sec.sve) на устройствах Samsung под управлением Android 16. Служба работает как system (UID 1000) и доступна без каких-либо специальных разрешений через Binder.

Компоненты

КомпонентРольВерсия
sveservice.apkСлужба AndroidAPI 36
libsvejni.soНативная библиотека ARM64Build 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 не требуется: ServiceManager.getService() через app_process работает с UID оболочки (shell).
  • Обход разрешения: разрешение signatureOrSystem НЕ применяется — служба регистрируется напрямую через ServiceManager.addService(), что обходит механизм разрешений Android.
  • Крах неизбежен: memset с 0xFFFFFFFF всегда вызывает крах. Для RCE потребовались бы утечка адреса + ROP (на SM-A175F PAC отсутствует).

Португальский

Краткое описание

Уязвимость переполнения буфера в системной службе SveService (com.sec.sve) на устройствах Samsung под управлением Android 16. Служба работает как system (UID 1000) и доступна без каких-либо специальных разрешений через Binder.

Компоненты

КомпонентРольВерсия
sveservice.apkСлужба AndroidAPI 36
libsvejni.soНативная библиотека ARM64Build 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: ServiceManager.getService() через app_process работает с UID оболочки (shell).
  • Разрешение: разрешение signatureOrSystem НЕ применяется — служба регистрируется напрямую через ServiceManager.addService(), что обходит проверку разрешений.
  • Крах неизбежен: memset с 0xFFFFFFFF всегда вызывает крах. Для RCE потребовались бы утечка адреса + ROP (на SM-A175F PAC отсутствует).
Скачать инструмент
ОперацияЗначениеЭффект
(i18 + 15) & ~150Выделяет 0 байт
memset(buf, 0, i18)0x00000000FFFFFFFFПытается обнулить 4 ГБ → SIGSEGV
sxtw(i18) для memcpy0xFFFFFFFFFFFFFFFFЗнаковое расширение -1 → ~18 эксабайт
ОперацияЗначениеЭффект
(i18 + 15) & ~150Выделяет 0 байт
memset(buf, 0, i18)0x00000000FFFFFFFFПытается обнулить 4 ГБ → SIGSEGV
sxtw(i18) для memcpy0xFFFFFFFFFFFFFFFFЗнаковое расширение -1 → ~18 эксабайт