CVE-2017-12629: Solr core Remote Code Execution Vulnerability

CRITICAL
Advisory Identifier: GHSA-mh7g-99w9-xpjm
CVSS 9.8
CWE-611
Published
Advisory Summary

CVE-2017-12629 is a CRITICAL (CVSS 9.8) remote code execution vulnerability (CWE-611: Improper Restriction of XML External Entity Reference) affecting Solr core libraries in the Maven ecosystem. The issue involves remote code execution occurs in apache solr. Remediation is available by upgrading affected packages to version 7.1.0, 6.6.2, 5.5.5.

CVE-2017-12629 at a Glance

CVE Identifier CVE-2017-12629
GHSA Identifier GHSA-mh7g-99w9-xpjm
Severity CRITICAL
CVSS v3.1 Base Score 9.8
CWE Classification CWE-611: Improper Restriction of XML External Entity Reference
Affected Product Solr core
Package Ecosystem Maven
Published Date
Last Updated

Security Impact

CVSS: 9.8

The security impact metrics below are parsed directly from the CVSS v3.1 vector string (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H).

Attack Vector Network (AV:N)
Attack Complexity Low (AC:L)
Privileges Required None (PR:N)
User Interaction None (UI:N)
Scope Unchanged (S:U)
Confidentiality High (C:H)
Integrity High (I:H)
Availability High (A:H)

How to Fix CVE-2017-12629

To remediate this vulnerability, upgrade all affected Solr core dependencies to a patched release. Both direct and transitive dependencies should be checked, as frameworks or security libraries may pull in vulnerable versions transitively.

org.apache.solr:solr-core fixed: 7.1.0
<dependency>
    <groupId>org.apache.solr</groupId>
    <artifactId>solr-core</artifactId>
    <version>7.1.0</version>
</dependency>
org.apache.solr:solr-core fixed: 6.6.2
<dependency>
    <groupId>org.apache.solr</groupId>
    <artifactId>solr-core</artifactId>
    <version>6.6.2</version>
</dependency>
org.apache.solr:solr-core fixed: 5.5.5
<dependency>
    <groupId>org.apache.solr</groupId>
    <artifactId>solr-core</artifactId>
    <version>5.5.5</version>
</dependency>
Verify Direct and Transitive Dependencies

Run the following command in your project directory to verify that all resolved dependencies use the patched release:

mvn dependency:tree -Dincludes=org.apache.solr

How to Check if You Are Affected

To determine whether your Java application is affected by CVE-2017-12629, inspect your build dependencies using the Maven Dependency Plugin:

mvn dependency:tree -Dincludes=org.apache.solr

Analyze the terminal output to locate any version of Solr core in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than 7.1.0), your application is affected.

Note: The mvn dependency:tree -Dincludes=org.apache.solr command inspects the resolved dependency graph declared in your project's POM files; it does not perform automated security scanning or inspect runtime dynamic classpaths. Always verify runtime container classpaths and shaded JARs.

Technical Details

Vulnerability Mechanism & Technical Analysis

This vulnerability is classified under CWE-611: Improper Restriction of XML External Entity Reference, where the product processes an xml document that can contain xml entities with uris that resolve to documents outside of the intended sphere of control, causing the product to embed incorrect documents into its output. In Solr core, software state validation or input boundaries are circumvented during processing. Review the official source advisory statement below for specific affected components, classes, and reproduction details.

Source Advisory Statement

Remote code execution occurs in Apache Solr before versions 5.5.5, 6.6.2 and 7.1.0 by exploiting XXE in conjunction with use of a Config API add-listener command to reach the RunExecutableListener class. Elasticsearch, although it uses Lucene, is NOT vulnerable to this. Note that the XML external entity expansion vulnerability occurs in the XML Query Parser which is available, by default, for any query request with parameters deftype=xmlparser and can be exploited to upload malicious data to the /upload request handler or as Blind XXE using ftp wrapper in order to read arbitrary local files from the Solr server. Note also that the second vulnerability relates to remote code execution using the RunExecutableListener available on all affected versions of Solr

CVE-2017-12629 Affected Solr core Versions

3 component(s)
Fixed Versions:
7.1.06.6.25.5.5
Product / Package Ecosystem Affected Versions Fixed Version
org.apache.solr:solr-core
Maven
≥ 7.0.0
< 7.1.0
7.1.0
org.apache.solr:solr-core
Maven
≥ 6.0.0
< 6.6.2
6.6.2
org.apache.solr:solr-core
Maven
≥ 5.5.0
< 5.5.5
5.5.5

References

NVD — CVE-2017-12629 NVD
https://nvd.nist.gov/vuln/detail/CVE-2017-12629
Security Fix Commit FIX COMMIT
https://github.com/apache/lucene-solr/commit/3bba91131b5257e64b9d0a2193e1e32a145b2a2
Security Fix Commit FIX COMMIT
https://github.com/apache/lucene-solr/commit/d8000beebfb13ba0b6e754f84c760e11592d8d1
Security Fix Commit FIX COMMIT
https://github.com/apache/lucene-solr/commit/f9fd6e9e26224f26f1542224ce187e04c27b268
www.exploit-db.com/exploits/43009 WEB
https://www.exploit-db.com/exploits/43009
Solr core Security Information SECURITY
https://www.debian.org/security/2018/dsa-4124
usn.ubuntu.com/4259-1 WEB
https://usn.ubuntu.com/4259-1
twitter.com/searchtools_avi/sta... WEB
https://twitter.com/searchtools_avi/status/918904813613543424
twitter.com/joshbressers/status... WEB
https://twitter.com/joshbressers/status/919258716297420802
twitter.com/apachesolr/status/9... WEB
https://twitter.com/ApacheSolr/status/918731485611401216
s.apache.org/fjdl WEB
https://s.apache.org/FJDl
lists.debian.org/debian-lts-announce... WEB
https://lists.debian.org/debian-lts-announce/2018/01/msg00028.html
lists.apache.org/thread.html/r95df34... WEB
https://lists.apache.org/thread.html/r95df34bb158375948da82b4dfe9a1b5d528572d586584162f8f5aeef@%3Cusers.solr.apache.org%3E
lists.apache.org/thread.html/r3da749... WEB
https://lists.apache.org/thread.html/r3da74965aba2b5f5744b7289ad447306eeb2940c872801819faa9314@%3Cusers.solr.apache.org%3E
lists.apache.org/thread.html/r26c996... WEB
https://lists.apache.org/thread.html/r26c996b068ef6c5e89aa59acb769025cfd343a08e63fbe9e7f3f720f@%3Coak-issues.jackrabbit.apache.org%3E
lists.apache.org/thread.html/r140128... WEB
https://lists.apache.org/thread.html/r140128dc6bb4f4e0b6a39e962c7ca25a8cbc8e48ed766176c931fccc@%3Cusers.solr.apache.org%3E
issues.apache.org/jira/browse/solr-11... WEB
https://issues.apache.org/jira/browse/SOLR-11477
Solr core Source Repository REPOSITORY
https://github.com/apache/lucene
GitHub Advisory / Wiki ADVISORY
https://github.com/advisories/GHSA-mh7g-99w9-xpjm
access.redhat.com/errata/rhsa-2018:00... WEB
https://access.redhat.com/errata/RHSA-2018:0005
access.redhat.com/errata/rhsa-2018:00... WEB
https://access.redhat.com/errata/RHSA-2018:0004
access.redhat.com/errata/rhsa-2018:00... WEB
https://access.redhat.com/errata/RHSA-2018:0003
access.redhat.com/errata/rhsa-2018:00... WEB
https://access.redhat.com/errata/RHSA-2018:0002
access.redhat.com/errata/rhsa-2017:34... WEB
https://access.redhat.com/errata/RHSA-2017:3452
access.redhat.com/errata/rhsa-2017:34... WEB
https://access.redhat.com/errata/RHSA-2017:3451
access.redhat.com/errata/rhsa-2017:32... WEB
https://access.redhat.com/errata/RHSA-2017:3244
access.redhat.com/errata/rhsa-2017:31... WEB
https://access.redhat.com/errata/RHSA-2017:3124
access.redhat.com/errata/rhsa-2017:31... WEB
https://access.redhat.com/errata/RHSA-2017:3123
mail-archives.us.apache.org/mod_mbox/www-announ... WEB
http://mail-archives.us.apache.org/mod_mbox/www-announce/201710.mbox/%3CCAOOKt51UO_6Vy%3Dj8W%3Dx1pMbLW9VJfZyFWz7pAnXJC_OAdSZubA%40mail.gmail.com%3E
Solr core Security Information SECURITY
http://openwall.com/lists/oss-security/2017/10/13/1
Solr core Security Information SECURITY
http://www.securityfocus.com/bid/101261

Frequently Asked Questions

What is CVE-2017-12629?
CVE-2017-12629 is a security vulnerability in Solr core involving Remote code execution occurs in Apache Solr under CWE-611: Improper Restriction of XML External Entity Reference.
Which Solr core versions are affected?
Affected versions include releases prior to 7.1.0, 6.6.2, 5.5.5 across affected packages: org.apache.solr:solr-core.
What version fixes CVE-2017-12629?
Upgrading to 7.1.0, 6.6.2, 5.5.5 (or the latest patched release for your respective branch) resolves the vulnerability.
Is solr-core affected?
Yes, org.apache.solr:solr-core is affected in releases prior to 7.1.0, 6.6.2, 5.5.5. Upgrade your dependency to 7.1.0, 6.6.2, 5.5.5 or later.
What is the CVSS score of CVE-2017-12629?
CVE-2017-12629 has a CVSS v3.1 base score of 9.8 (CRITICAL) with vector string CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H.
What CWE is associated with CVE-2017-12629?
CVE-2017-12629 is classified under CWE-611: Improper Restriction of XML External Entity Reference (The product processes an XML document that can contain XML entities with URIs that resolve to documents outside of the intended sphere of control, causing the product to embed incorrect documents into its output.).
How can I check Maven dependencies for CVE-2017-12629?
Run the dependency tree command: 'mvn dependency:tree -Dincludes=org.apache.solr'. This command lists direct and transitive dependencies in your build configuration so you can verify if a vulnerable version is resolved.
Machine-readable OSV JSON OSV v1.5 Schema
Normalized schema output
{
  "schema_version" : "1.4.0",
  "id" : "GHSA-mh7g-99w9-xpjm",
  "modified" : "2024-04-12T21:09:29Z",
  "published" : "2018-10-17T19:56:17Z",
  "aliases" : [ "CVE-2017-12629" ],
  "summary" : "Remote code execution occurs in Apache Solr",
  "details" : "Remote code execution occurs in Apache Solr before versions 5.5.5, 6.6.2 and 7.1.0 by exploiting XXE in conjunction with use of a Config API add-listener command to reach the RunExecutableListener class. Elasticsearch, although it uses Lucene, is NOT vulnerable to this. Note that the XML external entity expansion vulnerability occurs in the XML Query Parser which is available, by default, for any query request with parameters deftype=xmlparser and can be exploited to upload malicious data to the /upload request handler or as Blind XXE using ftp wrapper in order to read arbitrary local files from the Solr server. Note also that the second vulnerability relates to remote code execution using the RunExecutableListener available on all affected versions of Solr",
  "severity" : [ {
    "type" : "CVSS_V3",
    "score" : "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"
  } ],
  "affected" : [ {
    "package" : {
      "ecosystem" : "Maven",
      "name" : "org.apache.solr:solr-core"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "7.0.0"
      }, {
        "fixed" : "7.1.0"
      } ]
    } ]
  }, {
    "package" : {
      "ecosystem" : "Maven",
      "name" : "org.apache.solr:solr-core"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "6.0.0"
      }, {
        "fixed" : "6.6.2"
      } ]
    } ]
  }, {
    "package" : {
      "ecosystem" : "Maven",
      "name" : "org.apache.solr:solr-core"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "5.5.0"
      }, {
        "fixed" : "5.5.5"
      } ]
    } ]
  } ],
  "references" : [ {
    "type" : "ADVISORY",
    "url" : "https://nvd.nist.gov/vuln/detail/CVE-2017-12629"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/apache/lucene-solr/commit/3bba91131b5257e64b9d0a2193e1e32a145b2a2"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/apache/lucene-solr/commit/d8000beebfb13ba0b6e754f84c760e11592d8d1"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/apache/lucene-solr/commit/f9fd6e9e26224f26f1542224ce187e04c27b268"
  }, {
    "type" : "WEB",
    "url" : "https://www.exploit-db.com/exploits/43009"
  }, {
    "type" : "WEB",
    "url" : "https://www.debian.org/security/2018/dsa-4124"
  }, {
    "type" : "WEB",
    "url" : "https://usn.ubuntu.com/4259-1"
  }, {
    "type" : "WEB",
    "url" : "https://twitter.com/searchtools_avi/status/918904813613543424"
  }, {
    "type" : "WEB",
    "url" : "https://twitter.com/joshbressers/status/919258716297420802"
  }, {
    "type" : "WEB",
    "url" : "https://twitter.com/ApacheSolr/status/918731485611401216"
  }, {
    "type" : "WEB",
    "url" : "https://s.apache.org/FJDl"
  }, {
    "type" : "WEB",
    "url" : "https://lists.debian.org/debian-lts-announce/2018/01/msg00028.html"
  }, {
    "type" : "WEB",
    "url" : "https://lists.apache.org/thread.html/r95df34bb158375948da82b4dfe9a1b5d528572d586584162f8f5aeef@%3Cusers.solr.apache.org%3E"
  }, {
    "type" : "WEB",
    "url" : "https://lists.apache.org/thread.html/r3da74965aba2b5f5744b7289ad447306eeb2940c872801819faa9314@%3Cusers.solr.apache.org%3E"
  }, {
    "type" : "WEB",
    "url" : "https://lists.apache.org/thread.html/r26c996b068ef6c5e89aa59acb769025cfd343a08e63fbe9e7f3f720f@%3Coak-issues.jackrabbit.apache.org%3E"
  }, {
    "type" : "WEB",
    "url" : "https://lists.apache.org/thread.html/r140128dc6bb4f4e0b6a39e962c7ca25a8cbc8e48ed766176c931fccc@%3Cusers.solr.apache.org%3E"
  }, {
    "type" : "WEB",
    "url" : "https://issues.apache.org/jira/browse/SOLR-11477"
  }, {
    "type" : "PACKAGE",
    "url" : "https://github.com/apache/lucene"
  }, {
    "type" : "ADVISORY",
    "url" : "https://github.com/advisories/GHSA-mh7g-99w9-xpjm"
  }, {
    "type" : "WEB",
    "url" : "https://access.redhat.com/errata/RHSA-2018:0005"
  }, {
    "type" : "WEB",
    "url" : "https://access.redhat.com/errata/RHSA-2018:0004"
  }, {
    "type" : "WEB",
    "url" : "https://access.redhat.com/errata/RHSA-2018:0003"
  }, {
    "type" : "WEB",
    "url" : "https://access.redhat.com/errata/RHSA-2018:0002"
  }, {
    "type" : "WEB",
    "url" : "https://access.redhat.com/errata/RHSA-2017:3452"
  }, {
    "type" : "WEB",
    "url" : "https://access.redhat.com/errata/RHSA-2017:3451"
  }, {
    "type" : "WEB",
    "url" : "https://access.redhat.com/errata/RHSA-2017:3244"
  }, {
    "type" : "WEB",
    "url" : "https://access.redhat.com/errata/RHSA-2017:3124"
  }, {
    "type" : "WEB",
    "url" : "https://access.redhat.com/errata/RHSA-2017:3123"
  }, {
    "type" : "WEB",
    "url" : "http://mail-archives.us.apache.org/mod_mbox/www-announce/201710.mbox/%3CCAOOKt51UO_6Vy%3Dj8W%3Dx1pMbLW9VJfZyFWz7pAnXJC_OAdSZubA%40mail.gmail.com%3E"
  }, {
    "type" : "WEB",
    "url" : "http://openwall.com/lists/oss-security/2017/10/13/1"
  }, {
    "type" : "WEB",
    "url" : "http://www.securityfocus.com/bid/101261"
  } ],
  "database_specific" : {
    "cwe_ids" : [ "CWE-611" ],
    "severity" : "CRITICAL",
    "github_reviewed" : true,
    "github_reviewed_at" : "2020-06-16T21:46:19Z",
    "nvd_published_at" : "2017-10-14T23:29:00Z"
  }
}