cbcvebase.
CVE-2019-0195
published 2019-09-16

CVE-2019-0195: Manipulating classpath asset file URLs, an attacker could guess the path to a known file in the classpath and have it downloaded. If the attacker found the…

PriorityP268critical9.8CVSS 3.1
AVNACLPRNUINSUCHIHAH
EXPLOIT
EPSS
14.87%
96.3th percentile
Manipulating classpath asset file URLs, an attacker could guess the path to a known file in the classpath and have it downloaded. If the attacker found the file with the value of the tapestry.hmac-passphrase configuration symbol, most probably the webapp's AppModule class, the value of this symbol could be used to craft a Java deserialization attack, thus running malicious injected Java code. The vector would be the t:formdata parameter from the Form component.

Affected

7 ranges
VendorProductVersion rangeFixed in
apachetapestry>= 5.4.0 < 5.6.25.6.2
apachetapestry5.4.0 – 5.4.3
apachetapestry>= 5.7.0 < 5.7.15.7.1
apache_software_foundationapache_tapestry
apache_software_foundationapache_tapestry
apache_software_foundationapache_tapestry>= Apache Tapestry 5.4.5 < Apache Tapestry 5.4.0*Apache Tapestry 5.4.0*
apache_software_foundationapache_tapestry>= Apache Tapestry 5.6.2 < Apache Tapestry 5.6.0*Apache Tapestry 5.6.0*

Detection & IOCsextracted from sources · hover to see the quote

urlhttp://localhost:8080/assets/something/services/AppModule.class/
path/assets/app/something/services/AppModule.class/
path/assets/app/{{id}}/services/AppModule.class/
filenameAppModule.class
  • Detect HTTP GET requests to asset paths ending with `.class/` (trailing slash bypass of blacklist filter). The response Content-Type header will contain `application/java` and the body will contain strings such as `configuration` and `webtools`.
  • The bypass works by appending a trailing `/` to a `.class`, `.properties`, or `.xml` asset URL. The slash is stripped after the blacklist check, causing the file to be served. Monitor for asset URL requests ending with these extensions followed by a `/`.
  • Successful exploitation leaks the HMAC secret key from AppModule.class, which can then be used to sign a malicious Java gadget chain (e.g., CommonsBeanUtils1 from ysoserial) for RCE. Correlate class file download events with subsequent deserialization payloads.
  • Use the regex `\/assets\/app\/([a-z0-9]+)\/services\/AppMod` against HTTP response headers to extract the dynamic application context ID used in the exploit path.
  • ·The vulnerability (CVE-2021-27850) is a bypass of the CVE-2019-0195 fix. The original fix used a blacklist checking for URLs ending in `.class`, `.properties`, or `.xml`, but this is trivially bypassed with a trailing `/`. Both CVEs share the same root attack surface.
  • ·Affected Apache Tapestry versions are 5.4.5, 5.5.0, 5.6.2, and 5.7.0. The nuclei template targets two requests — one with a static path and one with a dynamically extracted application context ID from the response header.

CVSS provenance

nvdv3.19.8CRITICALCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
nvdv2.07.5HIGHAV:N/AC:L/Au:N/C:P/I:P/A:P
ghsa9.8CRITICAL
osv9.8CRITICAL
vulncheck9.8CRITICAL
CVEs like this are exactly what “Exploited This Week” covers.

Every Monday: what got weaponized or added to CISA KEV in the last seven days — each CVE cross-linked to its PoC, Nuclei template, and detection rule. Free, one email a week, unsubscribe in one click.