
Una prueba de concepto para CVE-2021-27850 que afecta a Apache Tapestry y conduce a ejecución remota de código no autenticada.
CVE-2021-27850 es una vulnerabilidad crítica de ejecución remota de código no autenticada que se encontró en todas las versiones recientes de Apache Tapestry. Al descargar el archivo AppModule.class podemos filtrar la clave secreta HMAC utilizada para firmar todos los objetos serializados en Apache Tapestry.
Encontramos esta CVE en una evaluación real y, hasta donde sabemos, no hay exploits públicos disponibles sobre cómo Tapestry firma los objetos serializados, así que decidimos publicar el siguiente POC que hemos utilizado después de indagar en el código fuente de Apache Tapestry durante mucho tiempo x).
1- Clona este repositorio
2- Ejecuta el siguiente comando
javac -classpath commons-codec-1.15/commons-codec-1.15.jar:. Exploit.java
3- Finalmente ejecuta lo siguiente:
java -cp commons-codec-1.15/commons-codec-1.15.jar:. Exploit [Clave de Tapestry] [Payload de Ysoserial] [Comando a ejecutar]
Donde [Clave de Tapestry] es la clave Hmac filtrada del AppModule.class, [Payload de Ysoserial] es el payload que deseas usar de ysoserial y [Comando a ejecutar] el comando que deseas ejecutar.

Nota: A diferencia de los exploits habituales de deserialización Java donde los comandos que ejecutas son limitados (sin tuberías ni caracteres especiales...), aquí puedes usar cualquier comando complejo que desees, ya que estamos añadiendo lo siguiente antes de ejecutar el comando sh -c $@|sh . echo .
Referencias: