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
iOS26.6-CVE-2026-65343 — # PoC CVE-2026-65343 — Lectura fuera de límites en AppleKeyStore → Derrota de KASLR (iOS 26.6 / 23G71) | Kitploit
Herramientas/GitHubGitHub/amorcool/ios26.6-cve-2026-65343
Frameworks de ExploitsSeguridad iOSAnálisis de VulnerabilidadesExplotaciónIngeniería InversaSeguridad MóvilExplotación de Binarios
GitHubamorcool/ios26.6-cve-2026-65343

iOS26.6-CVE-2026-65343

# PoC CVE-2026-65343 — Lectura fuera de límites en AppleKeyStore → Derrota de KASLR (iOS 26.6 / 23G71)

Ver Repositorio
hace 1 díaAú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

CVE-2026-65343 — Lectura Fuera de Límites en AppleKeyStore (Derrota de KASLR)

Componente: Extensión de kernel AppleKeyStore — _LibSer_SEPControl_Deserialize
Afecta: 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 SEP
Impacto: Fuga de punteros del kernel → derrota de KASLR desde un proceso en sandbox sin entitlements (mediante captura del handle ACM con DYLD_INTERPOSE)


Créditos

Descubierto por: Drinor Selmanaj (Sentry), Surya Narayan Kushwaha
(según Apple Security Advisory — iOS 26.6.1)


Causa raíz

_LibSer_SEPControl_Deserialize en la extensión de kernel AppleKeyStore publica un par desde un buffer de mensajes ACM (Credential Manager) al espacio de usuario mediante , .

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

Al proporcionar declared_length = 0x800, el driver copia aproximadamente 0x7E8 bytes más allá del final del buffer de mensajes ACM del kernel — leyendo asignaciones adyacentes del heap del kernel. Esas regiones adyacentes contienen punteros del kernel (0xfffffff0xxxxxxxx) que pueden usarse para calcular el slide de KASLR.

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

Captura del Handle ACM (DYLD_INTERPOSE)

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

El PoC utiliza un hook __DATA,__interpose (que se ejecuta en el momento 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. Activa el flag de captura del interpose
  2. SecKeyCreateRandomKey(kSecAttrTokenIDSecureEnclave) → SecKeyCreateSignature() → se dispara IOConnectCallMethod en el mismo proceso con un handle ACM real
  3. Captura (conn, handle[16])
  4. Reproduce con declared_length = 0x800 en los 163 selectores AKS
  5. Escanea la salida en busca de punteros del kernel 0xfffffff0xxxxxxxx → calcula el slide de KASLR

Comportamiento del PoC

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

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

Si la firma de la clave SE se enruta a través de XPC de secd en lugar de en el mismo proceso, la sonda de respaldo usa un handle cero (confirma la accesibilidad 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 el GOT) se mapea como solo lectura antes de que se ejecute cualquier código en el proceso. Las escrituras al GOT en tiempo de ejecución (como las usadas por 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 de sandbox: la firma de claves SE mediante Security.framework puede invocar la llamada AKS IOKit en el mismo proceso (depende del dispositivo y la compilación de iOS). En algunas configuraciones la llamada se enruta a través de XPC de secd — en ese caso, el respaldo de handle cero confirma la accesibilidad de la ruta OOB pero no la derrota completa de KASLR.

Compilación

root@kitploit:~
# Proyecto Xcode — enlaza 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 advisory de seguridad

Referencias

  • Apple Security Advisory — iOS 26.6.1
Descargar herramienta