Safeguard
Vulnerability Analysis•

CVE-2023-50386: High Dangerous Upload in Apache Solr

CVE-2023-50386 lets Solr configset uploads and backups put jar files on the classpath. NVD says High (8.8), Apache says moderate. Fix: 8.11.3 or 9.4.1.

Safeguard Security Team
4 min read

CVE-2023-50386 is a dangerous file upload flaw in Apache Solr. Configsets accepted jar and class files, and a backup written to a classpath directory could make them loadable. NVD rates it High (8.8), Apache rates it moderate. Upgrade to 8.11.3 or 9.4.1.

What's affected

Product: Apache Solr. Affected: 6.0.0 through 8.11.2, and 9.0.0 before 9.4.1. Fixed: 8.11.3 and 9.4.1, per the Apache announcement on oss-security and the Solr security page. The record was published on 9 February 2024.

Severity differs. NVD scores it 8.8 High with vector AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H, which assumes a low privilege account. Apache labels it moderate. The Apache text explains why: when Solr runs in the secure way it strongly recommends, with authorization enabled, the issue is limited to extending the Backup permission with the ability to add libraries.

The conditions matter. The configset API accepted Java jar and class files. Backups use the LocalFileSystemRepository by default. If the backup went to a directory that Solr also uses in its class loaders, those files became available to any configset, trusted or not.

How to check if you're exposed

Find the Solr version on each node. Any of these works.

bin/solr version
curl -s "http://localhost:8983/solr/admin/info/system?wt=json" | grep -i spec-version

The Admin UI also shows the version on its dashboard. Check every node in a SolrCloud cluster, including ones used for testing and any embedded in a product you buy, because vendors often bundle Solr and pin an old release.

If you manage Java projects, Solr can also be a library dependency. Search your build files for the org.apache.solr group. A software composition scan of the repository lists the resolved versions, including transitive ones. The free scan at https://gold.safeguard.sh/scan does that in the browser.

Then check two settings. First, where your backups are written, and whether that path is also on a Solr class path or library directory. Second, who holds the permission to call the configset and backup APIs. Anything that lets a user upload to a configset and trigger a backup is part of the path described by Apache.

What to do now

  1. Upgrade to Solr 8.11.3 or 9.4.1 or later.
  2. Turn on authorization if it is off, and give the backup and configset permissions only to administrators.
  3. Make sure the backup location is not a directory that Solr loads classes or libraries from.
  4. Review existing configsets for jar or class files that nobody on your team put there.
  5. Check your backup directories for jar files that do not belong.

Why it matters

The record maps this to CWE-434, unrestricted upload of a file with a dangerous type, and CWE-913, improper control of dynamically managed code resources. Neither piece is alarming alone. Uploading a jar to a configset is allowed in some cases, and saving a backup to disk is normal. The danger is the combination: a backup landing in a path that the Java class loader reads turns stored data into code the server can run.

The fix adds two protections that Apache lists. Users can no longer upload files to a configset that could be executed through a Java class loader, and the Backup API restricts saving backups to directories that are not used by the class loader.

KEV is false, and the announcement does not claim exploitation. The fix is tracked as SOLR-16949. If your Solr runs with authorization on, the practical risk is lower, but upgrading is still straightforward. Use the demo below to see how reachability analysis ranks findings like this.

Try it yourself

Whether code can be reached decides how urgent a Solr finding is. The demo below shows reachability analysis at work.

Click through it at your own pace, or open it full screen.

Quick check

Does this need an account?

The NVD vector says low privileges. Apache says that with authorization enabled the issue is limited to people who already hold the Backup permission.

What exactly do the fixed versions change?

Per Apache: executable files can no longer be uploaded to a configset in a way that a class loader can run, and backups cannot be saved to directories the class loader uses.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

We email you a link to confirm, and only then add you to the list. Unsubscribe in one click. Privacy

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.