
CVE-2026-43499-root-KernelSU — Actualizado!
Adaptación de escalada de privilegios local basada en la vulnerabilidad del kernel CVE-2026-43499, integra KernelSU embebido. Modo jailbreak CVE-2026-43499+KernelSU
CVE-2026-43499-root-KernelSU
Adaptación de escalada de privilegios local basada en la vulnerabilidad del kernel CVE-2026-43499, con KernelSU integrado. Compila y genera preload.so; tras una explotación exitosa, KernelSU se iniciará en modo late-load (modo jailbreak). Admite la generación de target.h a partir de (xbl_config.img / vendor_boot.img) + boot.img.
Adaptación de escalada de privilegios local basada en una vulnerabilidad de kernel, que integra KernelSU embebido. Compila y genera preload.so; tras una explotación exitosa, KernelSU se iniciará en modo late-load (modo jailbreak). Admite la generación de target.h a partir de (xbl_config.img / vendor_boot.img) + boot.img, u otras vías.
Proyectos de referencia:
- Linuxoid-cn/CVE-2026-43499-Poc-Analysis
- x-spy/CVE-2026-43499-popsicle
- Colorful-glassblock/duchamp-root
[!IMPORTANT] La explotación no autorizada de vulnerabilidades para dañar, comprometer u obtener acceso a sistemas informáticos está prohibida por la ley. Este proyecto se proporciona estrictamente con fines de investigación, educativos y de aprendizaje, y solo puede utilizarse en sistemas y entornos para los que se haya concedido autorización previa. Cualquier uso de este proyecto se realiza bajo el propio riesgo del usuario. Los autores y colaboradores no asumen ninguna responsabilidad por el mal uso de este proyecto ni por los daños, pérdidas o consecuencias legales derivados de su uso.
Aviso legal: el uso no autorizado de vulnerabilidades para dañar, invadir o acceder sin autorización a sistemas informáticos puede infringir las leyes y regulaciones aplicables. Este proyecto se limita a sistemas y entornos con autorización legal para fines de investigación, aprendizaje y pruebas de seguridad. Cualquier pérdida directa o indirecta, responsabilidad legal u otras consecuencias derivadas del uso, abuso o modificación de este proyecto serán asumidas por el propio usuario; los autores y colaboradores no asumen ninguna responsabilidad.
Alcance del impacto
Cuando su versión de kernel sea {Linux Kernel}, se encuentra dentro del alcance de esta vulnerabilidad
-
Linux Kernel < commit 3bfdc63936dd4773109b7b8c280c0f3b5ae7d349
-
2.6.39 <= {Linux Kernel} < 6.1.175
-
6.2 <= {Linux Kernel} < 6.6.140
-
6.7 <= {Linux Kernel} < 6.12.86
-
6.13 <= {Linux Kernel} < 6.18.27
-
6.19 <= {Linux Kernel} < 7.0.4
Estado actual
| Target | Estado |
|---|---|
rodin (por defecto) | Verificado |
Otros src/targets/* | Referencia |
Estructura de directorios
.
├── Makefile
├── build/
│ └── embed/
│ └── ksud # binario de userspace de KernelSU incrustado en preload.so
├── tools/
│ ├── generate_target.py # entrada unificada de generación de target.h de este repositorio
│ └── vendor/ # scripts auxiliares de generación originales sincronizados desde el directorio padre
└── src/
├── main.c # flujo principal del exploit
├── preload.c # constructor LD_PRELOAD + escritura/inicio de ksud
├── root.c # parche de cred/seccomp/SELinux/root
├── slide.c # fuga de KASLR slide de pselect
├── fops.c # ruta pselect/FOPS
├── pipe.c # primitiva de R/W física de pipe-buffer
├── ksud_blob.S # .incbin build/embed/ksud
├── kernelsnitch/ # helpers de KernelSnitch
└── targets/
├── rodin/
├── beryl/
└── ...
Compilación
Dependencias
- Host Linux
- Android NDK
- Ruta por defecto:
~/android-ndk-r29 - O configurar:
ANDROID_NDK_HOME/ANDROID_NDK_ROOT/NDK_ROOT
- Ruta por defecto:
makegit
Compilación
make PROJECT=<target> -j$(nproc)
Salida:
build/<target>/bin/preload.so
Ver targets disponibles
make list-projects
Generar target.h
Este repositorio ya incluye un script unificado de generación de targets:
tools/generate_target.py
tools/vendor/generate_target.py
tools/vendor/generate_target_2.py
tools/vendor/detect_offset.py
tools/generate_target.py es el script de entrada. Hace referencia y encapsula todos los flujos de generación de targets del directorio padre, y finalmente produce un src/targets/<project>/target.h completo adaptado al código fuente de este repositorio.
El script no valida de forma obligatoria CONFIG_DEBUG_INFO_BTF=y en IKCONFIG. Si los desplazamientos de campos de estructura o el diseño percpu de entry_task no se pueden verificar, imprimirá una advertencia y continuará con la generación.
Si la imagen no tiene ningún BTF utilizable, por ejemplo cuando aparece:
有效 vmlinux BTF 候选不唯一: []
El generador entrará en el modo fallback sin BTF:
- Sigue recuperando los desplazamientos de símbolos de funciones/objetos globales de kallsyms en el
boot.imgactual; - Las macros de campos de estructura/layout que no se pueden recuperar de BTF heredarán el target de plantilla, siendo
rodinla plantilla predeterminada; - Se escribirá una advertencia en la parte superior del header generado, indicando
without BTFy la plantilla utilizada; - Este header garantiza que, en la medida de lo posible, sea compilable, pero su fiabilidad en tiempo de ejecución debe verificarse en un dispositivo real.
Se puede especificar una plantilla de fallback:
tools/generate_target.py --project <project> --boot boot.img --profile profile.json --template-target rodin
# o
TARGET_TEMPLATE=rodin tools/generate_target.py --project <project> --boot boot.img --profile profile.json
1. Generación con boot.img + profile JSON
make generate-target PROJECT=<project> BOOT=/path/to/boot.img PROFILE=/path/to/profile.json
Se escribe por defecto en:
src/targets/<project>/target.h
También se puede invocar el script directamente:
tools/generate_target.py --project <project> --boot /path/to/boot.img --profile /path/to/profile.json
profile.json debe contener información de direcciones físicas, por ejemplo:
{
"p0_phys_offset": "0x40000000",
"p0_kernel_phys_load": "0x40000000"
}
2. Detectar el profile desde un dispositivo ADB con root
Generar solo el profile:
make detect-profile PROFILE_OUT=profile.json
Detectar el profile y generar el target inmediatamente:
tools/generate_target.py --project <project> --boot /path/to/boot.img \
--detect-adb-and-generate --profile-out profile.json
3. Generación con (xbl_config.img / vendor_boot.img) + boot.img
El script también expone las otras entradas admitidas por el generador del directorio padre:
tools/generate_target.py --project <project> --boot boot.img --xbl-config xbl_config.img
tools/generate_target.py --project <project> --boot boot.img --mtk-vendor-boot vendor_boot.img
tools/generate_target.py --project <project> --boot boot.img --mtk-partitions /path/to/partitions
Ejemplos
make generate-target PROJECT=rodin BOOT=../rodin/boot_a PROFILE=../profile.json
make generate-target PROJECT=beryl BOOT=../beryl/boot.img PROFILE=../profile.json
La salida exitosa tiene la siguiente forma:
生成成功: .../src/targets/<project>/target.h
kernel SHA-256: <sha256>
target macros: 168
rodin conserva por defecto el valor verificado en hardware real:
#define MM_STRUCT_SZ 0x500
Si es necesario sobrescribirlo:
tools/generate_target.py --project rodin --boot boot.img --profile profile.json --mm-struct-sz 0x...
Añadir un nuevo target
Se recomienda generarlo a partir de la boot image y el profile coincidentes: