
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 este CVE en una evaluación de la vida real y, hasta donde sé, 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).
Agradecimientos a mi senpai Fares
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 [Tapestry Key] [Ysoserial Payload] [Command To Execute]
Donde [Tapestry Key] es la clave HMAC filtrada de AppModule.class, [Ysoserial Payload] es el payload que deseas usar de ysoserial, y [Command To Execute] el comando que deseas ejecutar.

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