CVE-2021-27850
highpriority · act · 82EPSS 0.936 · 100 %ileexploit · functionalEUUSEPSS · scored 2026-10-26
A critical unauthenticated remote code execution vulnerability was found all recent versions of Apache Tapestry. The affected versions include 5.4.5, 5.5.0, 5.6.2 and 5.7.0. The vulnerability I have found is a bypass of the fix for CVE-2019-0195. Recap: Before the fix of CVE-2019-0195 it was possible to download arbitrary class files from the classpath by providing a crafted asset file URL. An attacker was able to download the file `AppModule.class` by requesting the URL `http://localhost:8080/assets/something/services/AppModule.class` which contains a HMAC secret key. The fix for that bug was a blacklist filter that checks if the URL ends with `.class`, `.properties` or `.xml`. Bypass: Unfortunately, the blacklist solution can simply be bypassed by appending a `/` at the end of the URL: `http://localhost:8080/assets/something/services/AppModule.class/` The slash is stripped after the blacklist check and the file `AppModule.class` is loaded into the response. This class usually contains the HMAC secret key which is used to sign serialized Java objects. With the knowledge of that key an attacker can sign a Java gadget chain that leads to RCE (e.g. CommonsBeanUtils1 from ysoserial). Solution for this vulnerability: * For Apache Tapestry 5.4.0 to 5.6.1, upgrade to 5.6.2 or later. * For Apache Tapestry 5.7.0, upgrade to 5.7.1 or later.
cvss
Technical severity, 0–10. One row per scoring source.
base score 0–10 · higher = more severe · hover a vector to decode⚠ sources disagree · high–critical · 9.8–10
weaknesses
The CWE weakness classes this flaw belongs to.
exploits (5)
Public proof-of-concept and weaponised exploit code.
- auxiliary/gather/cve_2021_27850_apache_tapestry_hmac_keyApache Tapestry HMAC secret key leakfunctional · metasploit
- Ovi3/CVE_2021_27850_POCApache Tapestry CVE-2021-27850 PoCPoC · poc_in_github
- novysodope/CVE-2021-27850CVE-2021-27850 ysoserialPoC · poc_in_github
affected products (8)
Products and version ranges known to be affected.
- Apache Software Foundation Apache TapestryApache Tapestry 5.4.5 → Apache Tapestry 5.4.0*enisa_euvdEU
- Apache Software Foundation Apache TapestryApache Tapestry 5.6.2 → Apache Tapestry 5.6.0*enisa_euvdEU
- Maven org.apache.tapestry:tapestry-core5.4.0 → 5.6.3osvUSpkg:maven/org.apache.tapestry/tapestry-core
- Maven org.apache.tapestry:tapestry-core5.7.0 → 5.7.1osvUSpkg:maven/org.apache.tapestry/tapestry-core
advisories (1)
Vendor and ecosystem advisories describing this.
- GHSA-mj8x-cpr8-x39hRemote code execution in Apache Tapestry2021-06-16ghsa · osvUS
A critical unauthenticated remote code execution vulnerability was found all recent versions of Apache Tapestry. The affected versions include 5.4.5, 5.5.0, 5.6.2 and 5.7.0. The vulnerability I have found is a bypass of the fix for CVE-2019-0195. Recap: Before the fix of CVE-2019-0195 it was possible to download arbitrary class files from the classpath by providing a crafted asset file URL. An attacker was able to download the file `AppModule.class` by requesting the URL `http://localhost:8080/assets/something/services/AppModule.class` which contains a HMAC secret key. The fix for that bug was a blacklist filter that checks if the URL ends with `.class`, `.properties` or `.xml`. Bypass: Unfortunately, the blacklist solution can simply be bypassed by appending a `/` at the end of the URL: `http://localhost:8080/assets/something/services/AppModule.class/` The slash is stripped after the blacklist check and the file `AppModule.class` is loaded into the response. This class usually contains the HMAC secret key which is used to sign serialized Java objects. With the knowledge of that key an attacker can sign a Java gadget chain that leads to RCE (e.g. CommonsBeanUtils1 from ysoserial). Solution for this vulnerability: * For Apache Tapestry 5.4.0 to 5.6.2, upgrade to 5.6.3 or later. * For Apache Tapestry 5.7.0, upgrade to 5.7.1 or later.
also known as (3)
Other names and identifiers for this entity.
sources
Which sources assert this record, and when.
references (10)
External citations — patches, advisories, analysis.
- http://www.openwall.com/lists/oss-security/2021/04/15/1cnnvd
- https://lists.apache.org/thread.html/r237ff7f286bda31682c254550c1ebf92b0ec61329b32fbeb2d1c8751%40%3Cusers.tapestry.apache.org%3Ecnnvd
- https://nvd.nist.gov/vuln/detail/CVE-2021-27850cnnvd
- https://security.netapp.com/advisory/ntap-20210528-0002/cnnvd
- http://www.openwall.com/lists/oss-security/2021/04/15/1enisa_euvd
- https://lists.apache.org/thread.html/r237ff7f286bda31682c254550c1ebf92b0ec61329b32fbeb2d1c8751%40%3Cusers.tapestry.apache.org%3Eenisa_euvd
- https://security.netapp.com/advisory/ntap-20210528-0002/enisa_euvd
- http://www.openwall.com/lists/oss-security/2021/04/15/1ExploitMailing ListThird Party Advisorynvd
Attackers weaponise vulnerabilities like this against internet-exposed services. See what is exposed on your perimeter with a free passive scan.
Free scan