
Uma prova de conceito para o CVE-2021-27850 que afeta o Apache Tapestry e leva à execução remota de código não autenticada.
CVE-2021-27850 é uma vulnerabilidade crítica de execução remota de código não autenticada encontrada em todas as versões recentes do Apache Tapestry. Ao baixar o arquivo AppModule.class, podemos vazar a chave secreta HMAC usada para assinar todos os objetos serializados no Apache Tapestry.
Encontramos este CVE em uma avaliação real e, pelo que sei, não há exploits públicos disponíveis sobre como o Tapestry assina os objetos serializados, então decidimos publicar o seguinte POC que usamos após vasculhar o código-fonte do Apache Tapestry por um longo tempo x).
Agradecimentos ao meu senpai Fares
1- Clone este repositório
2- Execute o seguinte comando
javac -classpath commons-codec-1.15/commons-codec-1.15.jar:. Exploit.java
3- Por fim, execute o seguinte:
java -cp commons-codec-1.15/commons-codec-1.15.jar:. Exploit [Tapestry Key] [Ysoserial Payload] [Command To Execute]
Onde [Tapestry Key] é a chave HMAC vazada do AppModule.class, [Ysoserial Payload] é o payload que você deseja usar do ysoserial e [Command To Execute] é o comando que você deseja executar.

Nota: Diferente dos exploits usuais de desserialização Java, onde os comandos que você executa são limitados (sem pipes ou caracteres especiais ...), você pode usar aqui qualquer comando complexo que desejar, pois estamos adicionando o seguinte antes de executar o comando sh -c $@|sh . echo .
Referências: