CVE-2020-13959
Medium · 6.1CVSS
6.1
EPSS
5.7%
Published
Mar 10, 2021
CISA due date
—
Cloudanix analysis
A web component could be tricked into running harmful scripts in visitors' browsers simply by sending them a specially crafted web address, potentially letting attackers steal login information.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- Low
- Impact
- Data Exposure
- Component
- Library
- Class
- XSS
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The default error page for VelocityView reflects the vm file parameter from the URL back to the user, enabling reflected XSS by embedding arbitrary JavaScript in the vm filename.
Why it matters to the business
Attackers may steal session cookies, impersonate users, or deliver phishing content, resulting in account takeovers, data exposure, and loss of user trust.
How an attack unfolds
An attacker appends a crafted .vm filename containing an XSS payload to a VelocityView endpoint URL; when a victim loads the link the error page executes the script in the victim's browser context.
How to fix it
Upgrade Apache Velocity Tools to version 3.1 or later; ensure all dependent applications are rebuilt against the patched library.
How to confirm the fix worked
Confirm the installed version is 3.1 or newer; test that supplying an arbitrary .vm filename in the URL no longer reflects executable content in the error page.
Typical attack path
- Identify a VelocityView endpoint that triggers the default error page
- Craft a URL embedding an XSS payload inside the vm file parameter
- Deliver the malicious URL via phishing or other channels
- Victim interaction causes script execution in the browser
- Attacker harvests cookies or performs actions on behalf of the victim
How to detect it
Search web server and application logs for requests to VelocityView endpoints that contain unusual .vm filenames with HTML or script tags; inspect proxy or WAF logs for reflected XSS patterns matching the error-page behavior.
What your security team should do
- Prioritize upgrade of all Velocity Tools instances to 3.1+
- Scan codebases and dependency manifests for references to velocity-tools
- Add web application firewall rules to block reflected script patterns in URL parameters
- Review and harden error-page handling across web applications
The record
The default error page for VelocityView in Apache Velocity Tools prior to 3.1 reflects back the vm file that was entered as part of the URL. An attacker can set an XSS payload file as this vm file in the URL which results in this payload being executed. XSS vulnerabilities allow attackers to execute arbitrary JavaScript in the context of the attacked website and the attacked user. This can be abused to steal session cookies, perform requests in the name of the victim or for phishing attacks.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Maven | org.apache.velocity.tools:velocity-tools-parent | 0 | 3.1 |
| Maven | org.apache.velocity:velocity-tools | 0 | No fix |
| Debian:11 | velocity-tools | 0 | 2.0-8 |
| Debian:12 | velocity-tools | 0 | 2.0-8 |
| Debian:13 | velocity-tools | 0 | 2.0-8 |
| Debian:9 | velocity-tools | 0 | 2.0-6+deb9u1 |
| Ubuntu:20.04:LTS | velocity-tools | 0 | 2.0-7ubuntu0.20.04.1 |
| Ubuntu:22.04:LTS | velocity-tools | 0 | 2.0-8 |
| Ubuntu:Pro:16.04:LTS | velocity-tools | 0 | 2.0-4ubuntu0.1~esm1 |
| Ubuntu:Pro:18.04:LTS | velocity-tools | 0 | 2.0-7ubuntu0.18.04.1~esm1 |
Related vulnerabilities
- CVE-2026-96379 Improper Neutralization of Input During Web Page Generation ("Cross-site Scripting")… CWE-79
- CVE-2026-96382 Improper Neutralization of Input During Web Page Generation ("Cross-site Scripting")… CWE-79
- CVE-2026-96368 Improper Neutralization of Input During Web Page Generation ("Cross-site Scripting")… CWE-79
- CVE-2026-96361 Improper Neutralization of Input During Web Page Generation ("Cross-site Scripting")… CWE-79
- CVE-2026-96362 Improper Neutralization of Input During Web Page Generation ("Cross-site Scripting")… CWE-79
- CVE-2026-96360 Improper Neutralization of Input During Web Page Generation ("Cross-site Scripting")… CWE-79
- CVE-2026-96357 Improper Neutralization of Input During Web Page Generation ("Cross-site Scripting")… CWE-79
- CVE-2026-96358 Improper Neutralization of Input During Web Page Generation ("Cross-site Scripting")… CWE-79