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-65349 — Prueba de concepto para una escritura fuera de límites en vfs_attr_pack_internal (getattrlist) de XNU en iOS 26.6, que demuestra la corrupción del montículo del kernel y notas de explotación para la falsificación de punteros PAC. | Kitploit
Herramientas/GitHubGitHub/bytev0rtex/cve-2026-65349
Seguridad iOSAnálisis de VulnerabilidadesExplotaciónIngeniería InversaExplotación de Binarios
GitHubbytev0rtex/cve-2026-65349

CVE-2026-65349

Prueba de concepto para una escritura fuera de límites en vfs_attr_pack_internal (getattrlist) de XNU en iOS 26.6, que demuestra la corrupción del montículo del kernel y notas de explotación para la falsificación de punteros PAC.

Ver Repositorio
1hace 9h 40mAú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-65349 — Escritura fuera de límites en getattrlist en vfs_attr_pack_internal

Componente: XNU VFS — vfs_attr_pack_internal (syscall getattrlist)
Afecta: iOS / iPadOS 26.6 (23G71) y anteriores
Corregido en: iOS / iPadOS 26.6.1 (23G83)
Tipo: Escritura fuera de límites en el búfer del llamador
Impacto: Corrupción del heap del kernel; desde el contexto del kernel (después de lectura/escritura del kernel), permite escribir un puntero firmado con PAC en un búfer controlado por el atacante


Créditos

Descubierto por un investigador anónimo
(según Apple Security Advisory — iOS 26.6.1)


Causa raíz

vfs_attr_pack_internal itera sobre el mapa de bits de atributos solicitado y escribe cada atributo secuencialmente en el búfer del llamador. comprueba si el desplazamiento de salida actual ha superado antes de escribir el atributo en la ranura 51 ().

No
bufsize
SETXATTR_SLOT

Para un archivo con un nombre de 16 caracteres, la salida completa de atributos válidos es de 0x1a4 (420) bytes. La ranura 51 comienza en el desplazamiento 0x198 (408 bytes). Cuando el llamador proporciona un búfer más pequeño que 0x198 + 8, el kernel escribe 8 bytes más allá del final del búfer:

root@kitploit:~
; vfs_attr_pack_internal (ruta afectada, 26.6 / 23G71)
; escritura en la ranura 51 — sin comprobación de límites antes del almacenamiento
str  x_attr_data, [buf + 0x198]   ; OOB si bufsize < 0x198 + 8

Mapa de bits de atributos

Las máscaras de atributos válidas verificadas mediante sonda en el dispositivo (getattrlist en un nombre de archivo de 16 caracteres, iOS 26.6):

CampoMáscara
commonattr0xffe7ffff (los bits 19, 20 no son válidos en este kernel)
fileattr0x0000363f
forkattr0xffffe003

Con estas máscaras en un nombre de archivo de 16 caracteres, la salida total = 0x1a4 bytes. La escritura fuera de límites ocurre en la ranura 51 (buf+0x198) siempre que bufsize < 0x1a0.


Notas de explotación en iOS 26

En iOS 26, el aislamiento de KHEAP_TEMP impide que la escritura fuera de límites corrompa directamente asignaciones adyacentes del heap de manera útil desde el espacio de usuario. El error se clasifica como solo heap del kernel en esta investigación:

  • Desde el espacio de usuario: la escritura fuera de límites alcanza la propia pila/heap del usuario del llamador — observable pero no explotable para escalada de privilegios sin un primitivo adicional.
  • Desde el contexto del kernel (después de un primitivo de escritura del kernel de CVE-2026-64788): escribir un puntero firmado con PAC en un búfer del kernel mediante el desplazamiento fuera de límites, y luego activar vfs_attr_pack_internal desde un punto de llamada controlado.

En la cadena de jailbreak de iOS 26.6, este error se utiliza en la etapa final para escribir un puntero forjado con PACIA en una asignación del kernel adyacente al búfer del llamador.


Comportamiento del PoC

poc_getattrlist_oob.c demuestra el límite fuera de límites con tres llamadas:

LlamadaTamaño del búferResultado esperado
164 bytesEl kernel escribe 0x1a4 bytes → fuera de límites en buf+0x198 (344 B más allá del final)
20x198 bytesLa escritura fuera de límites comienza exactamente al final del búfer
30x1a4 bytesTamaño válido exacto → éxito limpio

El PoC crea un nombre de archivo de 16 caracteres (/var/root/aaaaaaaaaaaaaaaa) como objetivo de prueba, ejecuta las tres llamadas getattrlist() e imprime los códigos de retorno. Un registro de pánico del kernel (si se activa) mostrará una falla en buf+0x198.


Requisitos

  • iOS 26.6 (23G71) o anterior
  • Acceso de escritura a /var/root/ (para crear el archivo de prueba de 16 caracteres; la ruta se puede ajustar a cualquier ubicación escribible)
  • No se requieren entitlements

Compilación

root@kitploit:~
# Binario C independiente — no se necesitan frameworks
clang -arch arm64 -o poc poc/poc_getattrlist_oob.c

# Para el dispositivo:
clang -arch arm64 -isysroot $(xcrun --sdk iphoneos --show-sdk-path) \
      -o poc poc/poc_getattrlist_oob.c
codesign -s "Apple Development" poc

Cronología

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

Referencias

  • Apple Security Advisory — iOS 26.6.1
Descargar herramienta