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-65343-e7eb2ed — PoC para CVE-2026-65343, una lectura fuera de límites (OOB) en el kernel de AppleKeyStore en iOS 26.6 que filtra punteros del kernel para eludir KASLR desde una app en sandbox mediante la captura de handles ACM con DYLD_INTERPOSE. | Kitploit
Herramientas/GitHubGitHub/hidayat-tanjung/cve-2026-65343-e7eb2ed
Seguridad iOSForensia de MemoriaAnálisis de VulnerabilidadesExplotaciónPentesting de Apps MóvilesIngeniería InversaSeguridad MóvilPapers e InvestigaciónExplotación de Binarios

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 →
GitHubhidayat-tanjung/cve-2026-65343-e7eb2ed

CVE-2026-65343-e7eb2ed

PoC para CVE-2026-65343, una lectura fuera de límites (OOB) en el kernel de AppleKeyStore en iOS 26.6 que filtra punteros del kernel para eludir KASLR desde una app en sandbox mediante la captura de handles ACM con DYLD_INTERPOSE.

Ver Repositorio
hace 16h 59mAún no revisado
Compartir

CVE-2026-65343 — Lectura OOB en AppleKeyStore (Derrota de KASLR)

Componente: Extensión del kernel AppleKeyStore — _LibSer_SEPControl_Deserialize
Afecta a: iOS / iPadOS 26.6 (23G71) y anteriores
Corregido en: iOS / iPadOS 26.6.1 (23G83)
Tipo: Lectura fuera de límites en la deserialización de mensajes de control del SEP
Impacto: Fuga de punteros del kernel → derrota de KASLR desde un proceso en sandbox y sin entitlements (mediante la captura de handle ACM con DYLD_INTERPOSE)


Créditos

Descubierto por: Drinor Selmanaj (Sentry), Surya Narayan Kushwaha
(según el Aviso de Seguridad de Apple — iOS 26.6.1)


Causa Raíz

_LibSer_SEPControl_Deserialize en la extensión del kernel AppleKeyStore publica un par desde un búfer de mensaje ACM (Credential Manager) hacia el espacio de usuario mediante , .

(payload_ptr, declared_length)
copyout()
sin validar que declared_length ≤ remaining

Al proporcionar declared_length = 0x800, el controlador copia aproximadamente 0x7E8 bytes más allá del final del búfer de mensaje ACM del kernel — leyendo en asignaciones adyacentes del heap del kernel. Esas regiones adyacentes contienen punteros del kernel (0xfffffff0xxxxxxxx) que pueden usarse para calcular el desplazamiento de KASLR.

root@kitploit:~
; _LibSer_SEPControl_Deserialize (ruta afectada, 26.6 / 23G71)
ldr  w2, [acm_msg + declared_length_offset]  ; controlado por el usuario 0x800
; SIN comprobación: w2 <= (acm_msg_end - payload_ptr) ← FALTA
bl   copyout                                  ; copia w2 bytes al espacio de usuario

Captura de Handle ACM (DYLD_INTERPOSE)

La llamada directa a IOServiceOpen("AppleKeyStore") está bloqueada por el sandbox en aplicaciones sideloaded. Sin embargo, la ruta de firma de claves del Secure Enclave de Security.framework llama a IOConnectCallMethod en proceso con un handle de sesión ACM real.

El PoC utiliza un hook __DATA,__interpose (que se ejecuta en tiempo de carga de dyld, antes de que __DATA_CONST se vuelva de solo lectura — fishhook está bloqueado en iOS 26 por la protección DATA_CONST):

  1. Activar el flag de captura del interpose
  2. SecKeyCreateRandomKey(kSecAttrTokenIDSecureEnclave) → SecKeyCreateSignature() → se dispara IOConnectCallMethod en proceso con un handle ACM real
  3. Capturar (conn, handle[16])
  4. Repetir con declared_length = 0x800 a través de 163 selectores de AKS
  5. Escanear la salida en busca de punteros del kernel 0xfffffff0xxxxxxxx → calcular el desplazamiento de KASLR

Comportamiento del PoC

poc_aks_oob.m implementa la cadena completa de captura de handle ACM y sonda OOB:

  • Crea una clave P-256 del Secure Enclave (kSecAttrAccessibleAfterFirstUnlock, sin biometría)
  • Firma un mensaje de 32 bytes para disparar la llamada IOKit de AKS en proceso
  • Repite con declared_length = 0x800 a través de los 163 selectores de AKS
  • Imprime cualquier puntero del kernel encontrado en KPTR @+XXXX = 0xfffffff0YYYYYYYY
  • Intenta calcular el desplazamiento de KASLR a partir de un offset de símbolo AKS conocido

Si la firma de la clave SE se enruta a través de XPC de secd en lugar de en proceso, la sonda de respaldo utiliza un handle cero (confirma la alcanzabilidad de la ruta OOB; todos los selectores fallarán la validación ACM, pero la ruta VNOP queda confirmada).


Nota sobre iOS 26: fishhook Bloqueado

En iOS 26, __DATA_CONST (que contiene la GOT) se mapea como solo lectura antes de que se ejecute cualquier código en proceso. Las escrituras en tiempo de ejecución en la GOT (como las que usa fishhook) provocan KERN_PROTECTION_FAILURE → SIGBUS. DYLD_INTERPOSE mediante __DATA,__interpose funciona porque dyld procesa la tabla de interpose en el momento de carga de la imagen, antes de que el kernel aplique la protección de __DATA_CONST.


Requisitos

  • iOS 26.6 (23G71) o anterior
  • Acceso al Secure Enclave (kSecAttrTokenIDSecureEnclave) — disponible para cualquier aplicación sideloaded sin entitlements
  • No se requiere escape del sandbox: la llamada IOKit de AKS es en proceso a través de Security.framework

Compilación

root@kitploit:~
# Proyecto Xcode — enlazar Security.framework y Foundation.framework
clang -arch arm64 \
      -isysroot $(xcrun --sdk iphoneos --show-sdk-path) \
      -framework Security -framework Foundation \
      -o poc poc/poc_aks_oob.m

codesign -s "Apple Development" --entitlements ent.plist poc

Entitlements mínimos (ent.plist):

root@kitploit:~
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
    "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0"><dict>
    <key>keychain-access-groups</key>
    <array><string>$(AppIdentifierPrefix)com.research.poc65343</string></array>
</dict></plist>

Cronología

FechaEvento
2026-08-17iOS 26.6.1 publicado con la corrección
2026-08-17Créditos de Apple publicados en el aviso de seguridad

Referencias

  • Aviso de Seguridad de Apple — iOS 26.6.1

CVE-2026-65343-e7eb2ed

Descargar herramienta