Medium severity · published Feb 27, 2026
CVE-2026-28338
PMD Designer has Stored XSS in VBHTMLRenderer and YAHTMLRenderer via unescaped violation messages
6.1
CVSS
0.3%
EPSS
No
On KEV
Description
PMD is an extensible multilanguage static code analyzer. Prior to version 7.22.0, PMD's `vbhtml` and `yahtml` report formats insert rule violation messages into HTML output without escaping. When PMD analyzes untrusted source code containing crafted string literals, the generated HTML report contains executable JavaScript that runs when opened in a browser. Practical impact is limited because `vbhtml` and `yahtml` are legacy formats rarely used in practice. The default `html` format is properly escaped and not affected. Version 7.22.0 contains a fix for the issue.
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
Attack vector
Network
Complexity
Low
Privileges
None
User interaction
Required
Confidentiality
Low
Integrity
Low
Availability
None
Scope
Changed
Exploitation
Is it being used?
Exploit prediction (EPSS)0.3% · higher than 28% of CVEs
Exploited in the wildNo evidence yet
CISA KEVNot listed
Ransomware campaign useNot known
Affected products
Which versions
PM
pmd · pmd
< 7.22.0 · source: vendor, NVD
References
NVD
https://nvd.nist.gov/vuln/detail/CVE-2026-28338
CVE.org
https://www.cve.org/CVERecord?id=CVE-2026-28338
Patch
https://github.com/pmd/pmd/commit/c140c0e1de5853a08efb84c9f91dfeb015882442
Issue Tracking
https://github.com/pmd/pmd/pull/6475
Exploit
https://github.com/pmd/pmd/security/advisories/GHSA-8rr6-2qw5-pc7r
More from pmd
9.3
CVE-2025-23215
PMD Designer's release key passphrase (GPG) available on Maven Central in cleartext
