This is an automated email from the ASF dual-hosted git repository.

github-actions[bot] pushed a commit to branch asf-staging
in repository https://gitbox.apache.org/repos/asf/solr-site.git


The following commit(s) were added to refs/heads/asf-staging by this push:
     new f29482d12 Commit build products
f29482d12 is described below

commit f29482d125f4c6e458b9fb94ed2905c05245bad2
Author: Build Pelican (action) <[email protected]>
AuthorDate: Sun Jun 21 18:52:49 2026 +0000

    Commit build products
---
 output/feeds/all.atom.xml      | 182 ++++++++++++++++++++++--------------
 output/feeds/solr/vex.atom.xml | 114 ++++++++++++++++++++++-
 output/solr.vex.json           | 206 ++++++++++++++++++++++++++---------------
 output/vex.html                | 161 ++++++++++++++++++++++++++++++++
 4 files changed, 521 insertions(+), 142 deletions(-)

diff --git a/output/feeds/all.atom.xml b/output/feeds/all.atom.xml
index d9c1aadd6..85d68a7a1 100644
--- a/output/feeds/all.atom.xml
+++ b/output/feeds/all.atom.xml
@@ -42,7 +42,119 @@ Explicitly setting &lt;code&gt;blockUnknown&lt;/code&gt; to 
&lt;code&gt;true&lt;
 &lt;p&gt;&lt;strong&gt;References&lt;/strong&gt;&lt;/p&gt;
 &lt;ul&gt;
 &lt;li&gt;&lt;a 
href="https://solr.apache.org/guide/solr/latest/deployment-guide/jwt-authentication-plugin.html"&gt;JWT
 Authentication Plugin documentation&lt;/a&gt;&lt;/li&gt;
-&lt;/ul&gt;</content><category 
term="solr/security"/></entry><entry><title>Apache Log4j Core: TLS hostname 
verification silently ignored in Socket, SMTP and Syslog appenders</title><link 
href="/cve-2026-34477.html" 
rel="alternate"/><published>2026-04-10T00:00:00+00:00</published><updated>2026-04-10T00:00:00+00:00</updated><author><name>Solr
 
Developers</name></author><id>tag:None,2026-04-10:/cve-2026-34477.html</id><summary
 type="html">&lt;p&gt;CVE-2026-34477 is &lt;strong&gt;not&lt;/stro [...]
+&lt;/ul&gt;</content><category 
term="solr/security"/></entry><entry><title>Apache OpenNLP: XXE in dictionary 
parsing</title><link href="/cve-2026-40682.html" 
rel="alternate"/><published>2026-05-04T00:00:00+00:00</published><updated>2026-05-04T00:00:00+00:00</updated><author><name>Solr
 
Developers</name></author><id>tag:None,2026-05-04:/cve-2026-40682.html</id><summary
 type="html">&lt;p&gt;CVE-2026-40682 (CVSS 9.1) is an XML External Entity (XXE) 
vulnerability in Apache OpenNLP's
+dictionary parsing. The &lt;code&gt;DictionaryEntryPersistor&lt;/code&gt; 
class and the public &lt;code&gt;Dictionary(InputStream)&lt;/code&gt;
+constructor create a SAX parser without enabling 
&lt;code&gt;FEATURE_SECURE_PROCESSING&lt;/code&gt; or disabling DTD
+processing, so external entity resolution and DOCTYPE declarations remain 
fully enabled. An attacker
+who can …&lt;/p&gt;</summary><content type="html">&lt;p&gt;CVE-2026-40682 
(CVSS 9.1) is an XML External Entity (XXE) vulnerability in Apache OpenNLP's
+dictionary parsing. The &lt;code&gt;DictionaryEntryPersistor&lt;/code&gt; 
class and the public &lt;code&gt;Dictionary(InputStream)&lt;/code&gt;
+constructor create a SAX parser without enabling 
&lt;code&gt;FEATURE_SECURE_PROCESSING&lt;/code&gt; or disabling DTD
+processing, so external entity resolution and DOCTYPE declarations remain 
fully enabled. An attacker
+who can supply a crafted dictionary file — either directly or embedded in a 
model archive that
+OpenNLP deserializes — can therefore read local files from the server or 
trigger outbound requests
+(server-side request forgery). Other OpenNLP XML parsing paths route through 
the hardened
+&lt;code&gt;XmlUtil.createSaxParser()&lt;/code&gt; helper, but this code path 
does not.&lt;/p&gt;
+&lt;p&gt;The vulnerable code is present in the 
&lt;code&gt;opennlp-tools-1.9.4.jar&lt;/code&gt; that Solr pulls in 
transitively via
+&lt;code&gt;lucene-analysis-opennlp&lt;/code&gt; (Lucene 9.12.3). There is a 
&lt;code&gt;opennlp-tools-1.9.5&lt;/code&gt; release happening, but it hasn't 
finished or been integrated into Solr 9; the issue is fixed in OpenNLP 2.5.9 
(and 3.0.0-M3), which parse dictionaries with secure
+XML processing that rejects DOCTYPE declarations and external 
entities.&lt;/p&gt;
+&lt;h4 id="when-solr-is-exposed"&gt;When Solr is exposed&lt;a 
class="headerlink" href="#when-solr-is-exposed" title="Permanent 
link"&gt;&amp;para;&lt;/a&gt;&lt;/h4&gt;
+&lt;p&gt;OpenNLP is not part of a default Solr installation, but it is 
exploitable once the OpenNLP-backed
+modules are enabled. The vulnerable dictionary-parsing code path becomes 
reachable when:&lt;/p&gt;
+&lt;ul&gt;
+&lt;li&gt;The &lt;code&gt;analysis-extras&lt;/code&gt; and/or 
&lt;code&gt;langid&lt;/code&gt; modules are enabled — they are not loaded by 
default.&lt;/li&gt;
+&lt;li&gt;OpenNLP analysis components or update processors are configured to 
load OpenNLP model or
+  dictionary files (the schema-configured OpenNLP analyzers — tokenizer, POS, 
chunker, lemmatizer,
+  name-finder — or the &lt;code&gt;langid&lt;/code&gt; / 
&lt;code&gt;analysis-extras&lt;/code&gt; update processors).&lt;/li&gt;
+&lt;/ul&gt;
+&lt;p&gt;Any deployment that enables these modules and parses an OpenNLP model 
or dictionary an attacker can
+influence is exploitable. A deployment that does not enable them never parses 
an OpenNLP dictionary
+and is not exposed.&lt;/p&gt;
+&lt;h4 id="mitigation"&gt;Mitigation&lt;a class="headerlink" 
href="#mitigation" title="Permanent link"&gt;&amp;para;&lt;/a&gt;&lt;/h4&gt;
+&lt;p&gt;The most reliable mitigation is to &lt;strong&gt;not enable the 
OpenNLP-backed &lt;code&gt;analysis-extras&lt;/code&gt; or 
&lt;code&gt;langid&lt;/code&gt;
+modules&lt;/strong&gt; unless they are required. If you do use OpenNLP, load 
model and dictionary files only from
+locations you fully control, since the bundled OpenNLP 1.9.4 does not disable 
external entities when
+parsing dictionaries.&lt;/p&gt;
+&lt;p&gt;Every OpenNLP model and dictionary is loaded as a resource through 
Solr's resource loaders, so the
+archive passes through a single chokepoint before OpenNLP is allowed to 
deserialize it. This applies
+to both standalone (filesystem configset) and SolrCloud (ZooKeeper) 
deployments, and whether the
+dictionary is loaded by the &lt;code&gt;langid&lt;/code&gt; / 
&lt;code&gt;analysis-extras&lt;/code&gt; update processors or by the
+schema-configured OpenNLP analyzers.&lt;/p&gt;
+&lt;p&gt;Fully resolved in Solr 10.1 by upgrading the bundled OpenNLP (via 
&lt;code&gt;lucene-analysis-opennlp&lt;/code&gt;) to 
2.5.9.&lt;/p&gt;</content><category 
term="solr/vex"/></entry><entry><title>Apache OpenNLP: Arbitrary class 
instantiation via model manifest</title><link href="/cve-2026-42027.html" 
rel="alternate"/><published>2026-05-04T00:00:00+00:00</published><updated>2026-05-04T00:00:00+00:00</updated><author><name>Solr
 Developers</name></author><id>tag:None,2026-05-04:/cve- [...]
+&lt;code&gt;ExtensionLoader&lt;/code&gt;. The 
&lt;code&gt;instantiateExtension(Class, String)&lt;/code&gt; method loads a 
class named in a
+model archive's &lt;code&gt;manifest.properties&lt;/code&gt; via 
&lt;code&gt;Class.forName()&lt;/code&gt; and only performs its
+&lt;code&gt;isAssignableFrom&lt;/code&gt; type check 
&lt;em&gt;after&lt;/em&gt; the class has been loaded. Because 
&lt;code&gt;Class.forName()&lt;/code&gt;
+runs the …&lt;/p&gt;</summary><content type="html">&lt;p&gt;CVE-2026-42027 
(CVSS 9.8) is an arbitrary class instantiation issue in Apache OpenNLP's
+&lt;code&gt;ExtensionLoader&lt;/code&gt;. The 
&lt;code&gt;instantiateExtension(Class, String)&lt;/code&gt; method loads a 
class named in a
+model archive's &lt;code&gt;manifest.properties&lt;/code&gt; via 
&lt;code&gt;Class.forName()&lt;/code&gt; and only performs its
+&lt;code&gt;isAssignableFrom&lt;/code&gt; type check 
&lt;em&gt;after&lt;/em&gt; the class has been loaded. Because 
&lt;code&gt;Class.forName()&lt;/code&gt;
+runs the target class's static initializer at load time, an attacker who can 
supply a crafted
+model archive can trigger the static initializer of any class on the classpath 
(e.g. one that
+performs a JNDI lookup, outbound network I/O, or filesystem access), 
regardless of the
+type check that follows.&lt;/p&gt;
+&lt;p&gt;The vulnerable code is present in the 
&lt;code&gt;opennlp-tools-1.9.4.jar&lt;/code&gt; that Solr pulls in transitively
+via &lt;code&gt;lucene-analysis-opennlp&lt;/code&gt; (Lucene 9.12.3). There is 
a &lt;code&gt;opennlp-tools-1.9.5&lt;/code&gt; release happening, but it hasn't 
finished or been integrated into Solr 9; the issue is fixed in OpenNLP 2.5.9 
(and 3.0.0-M3), which consults a
+package-prefix allowlist &lt;em&gt;before&lt;/em&gt; calling 
&lt;code&gt;Class.forName()&lt;/code&gt;.&lt;/p&gt;
+&lt;h4 id="when-solr-is-exposed"&gt;When Solr is exposed&lt;a 
class="headerlink" href="#when-solr-is-exposed" title="Permanent 
link"&gt;&amp;para;&lt;/a&gt;&lt;/h4&gt;
+&lt;p&gt;OpenNLP is not part of a default Solr installation, but it is 
exploitable once the OpenNLP-backed
+modules are enabled. The vulnerable code path becomes reachable when:&lt;/p&gt;
+&lt;ul&gt;
+&lt;li&gt;The &lt;code&gt;analysis-extras&lt;/code&gt; and/or 
&lt;code&gt;langid&lt;/code&gt; modules are enabled — they are not loaded by 
default.&lt;/li&gt;
+&lt;li&gt;OpenNLP analysis components or update processors are configured to 
load model files.&lt;/li&gt;
+&lt;/ul&gt;
+&lt;p&gt;Any deployment that enables these modules and loads an OpenNLP model 
an attacker can influence is
+exploitable. A deployment that does not enable them never invokes 
&lt;code&gt;ExtensionLoader&lt;/code&gt; and is not
+exposed.&lt;/p&gt;
+&lt;h4 id="mitigation"&gt;Mitigation&lt;a class="headerlink" 
href="#mitigation" title="Permanent link"&gt;&amp;para;&lt;/a&gt;&lt;/h4&gt;
+&lt;p&gt;The most reliable mitigation is to &lt;strong&gt;not enable the 
OpenNLP-backed &lt;code&gt;analysis-extras&lt;/code&gt; or 
&lt;code&gt;langid&lt;/code&gt;
+modules&lt;/strong&gt; unless they are required. If you do use OpenNLP, load 
model files only from locations you
+fully control and never from untrusted or user-supplied sources.&lt;/p&gt;
+&lt;p&gt;In Solr 9.11.0 the upstream allowlist defense is backfilled at the 
application layer, since the
+vulnerable jar cannot yet be upgraded (Solr must track the OpenNLP version 
used by
+&lt;code&gt;lucene-analysis-opennlp&lt;/code&gt;). Every OpenNLP model is 
loaded as a resource through Solr's resource
+loaders, so the archive is validated at that single chokepoint before OpenNLP 
is allowed to
+deserialize it:&lt;/p&gt;
+&lt;ul&gt;
+&lt;li&gt;The archive is opened as a ZIP and every class name it declares — 
the &lt;code&gt;manifest.properties&lt;/code&gt;
+  &lt;code&gt;factory&lt;/code&gt; entry and any class referenced from 
embedded feature-generator XML descriptors — must
+  resolve under the &lt;code&gt;opennlp.&lt;/code&gt; package 
prefix.&lt;/li&gt;
+&lt;li&gt;A model that names a class outside that prefix is rejected and never 
reaches &lt;code&gt;ExtensionLoader&lt;/code&gt;,
+  so no attacker-controlled static initializer can run.&lt;/li&gt;
+&lt;li&gt;Validation covers both standalone (filesystem configset) and 
SolrCloud (ZooKeeper) deployments,
+  and applies whether the model is loaded by the 
&lt;code&gt;langid&lt;/code&gt; / &lt;code&gt;analysis-extras&lt;/code&gt; 
update processors or
+  by the schema-configured OpenNLP analyzers (tokenizer, POS, chunker, 
lemmatizer, name-finder).&lt;/li&gt;
+&lt;/ul&gt;
+&lt;p&gt;Solr's own usage only ever references built-in 
&lt;code&gt;opennlp.*&lt;/code&gt; factories, so legitimate models load
+unchanged; only crafted models that try to instantiate arbitrary classes are 
blocked.&lt;/p&gt;
+&lt;p&gt;Fully resolved in Solr 10.1 by upgrading the bundled OpenNLP (via 
&lt;code&gt;lucene-analysis-opennlp&lt;/code&gt;) to 
2.5.9.&lt;/p&gt;</content><category 
term="solr/vex"/></entry><entry><title>Apache OpenNLP: Out-of-memory denial of 
service via crafted model file</title><link href="/cve-2026-42440.html" 
rel="alternate"/><published>2026-05-04T00:00:00+00:00</published><updated>2026-05-04T00:00:00+00:00</updated><author><name>Solr
 Developers</name></author><id>tag:None,2026-05-04 [...]
+model reader. The &lt;code&gt;AbstractModelReader&lt;/code&gt; methods 
&lt;code&gt;getOutcomes()&lt;/code&gt;, 
&lt;code&gt;getOutcomePatterns()&lt;/code&gt; and
+&lt;code&gt;getPredicates()&lt;/code&gt; read a 32-bit signed integer count 
field from a binary model stream and pass it
+directly to an array allocation without validating it. An attacker who can 
supply …&lt;/p&gt;</summary><content type="html">&lt;p&gt;CVE-2026-42440 (CVSS 
7.5) is an out-of-memory denial-of-service issue in Apache OpenNLP's binary
+model reader. The &lt;code&gt;AbstractModelReader&lt;/code&gt; methods 
&lt;code&gt;getOutcomes()&lt;/code&gt;, 
&lt;code&gt;getOutcomePatterns()&lt;/code&gt; and
+&lt;code&gt;getPredicates()&lt;/code&gt; read a 32-bit signed integer count 
field from a binary model stream and pass it
+directly to an array allocation without validating it. An attacker who can 
supply a crafted &lt;code&gt;.bin&lt;/code&gt;
+model file with a count set to &lt;code&gt;Integer.MAX_VALUE&lt;/code&gt; 
triggers an immediate &lt;code&gt;OutOfMemoryError&lt;/code&gt; during
+model deserialization, before any substantial data is consumed.&lt;/p&gt;
+&lt;p&gt;The vulnerable code is present in the 
&lt;code&gt;opennlp-tools-1.9.4.jar&lt;/code&gt; that Solr pulls in 
transitively via
+&lt;code&gt;lucene-analysis-opennlp&lt;/code&gt; (Lucene 9.12.3). There is a 
&lt;code&gt;opennlp-tools-1.9.5&lt;/code&gt; release happening, but it hasn't 
finished or been integrated into Solr 9; the issue is fixed in OpenNLP 2.5.9 
(and 3.0.0-M3), which validate the count against an
+upper bound (default 10,000,000, configurable via the 
&lt;code&gt;OPENNLP_MAX_ENTRIES&lt;/code&gt; system property) before
+allocating.&lt;/p&gt;
+&lt;h4 id="when-solr-is-exposed"&gt;When Solr is exposed&lt;a 
class="headerlink" href="#when-solr-is-exposed" title="Permanent 
link"&gt;&amp;para;&lt;/a&gt;&lt;/h4&gt;
+&lt;p&gt;OpenNLP is not part of a default Solr installation, but it is 
exploitable once the OpenNLP-backed
+modules are enabled. The vulnerable model-loading code path becomes reachable 
when:&lt;/p&gt;
+&lt;ul&gt;
+&lt;li&gt;The &lt;code&gt;analysis-extras&lt;/code&gt; and/or 
&lt;code&gt;langid&lt;/code&gt; modules are enabled — they are not loaded by 
default.&lt;/li&gt;
+&lt;li&gt;OpenNLP analysis components or update processors are configured to 
load OpenNLP model files (the
+  schema-configured OpenNLP analyzers — tokenizer, POS, chunker, lemmatizer, 
name-finder — or the
+  &lt;code&gt;langid&lt;/code&gt; / &lt;code&gt;analysis-extras&lt;/code&gt; 
update processors).&lt;/li&gt;
+&lt;/ul&gt;
+&lt;p&gt;Any deployment that enables these modules and loads an OpenNLP model 
an attacker can influence is
+exploitable. A deployment that does not enable them never deserializes an 
OpenNLP model and is not
+exposed.&lt;/p&gt;
+&lt;h4 id="mitigation"&gt;Mitigation&lt;a class="headerlink" 
href="#mitigation" title="Permanent link"&gt;&amp;para;&lt;/a&gt;&lt;/h4&gt;
+&lt;p&gt;The most reliable mitigation is to &lt;strong&gt;not enable the 
OpenNLP-backed &lt;code&gt;analysis-extras&lt;/code&gt; or 
&lt;code&gt;langid&lt;/code&gt;
+modules&lt;/strong&gt; unless they are required. If you do use OpenNLP, load 
model files only from locations you
+fully control and never from untrusted or user-supplied sources.&lt;/p&gt;
+&lt;p&gt;Fully resolved in Solr 10.1 by upgrading the bundled OpenNLP (via 
&lt;code&gt;lucene-analysis-opennlp&lt;/code&gt;) to 
2.5.9.&lt;/p&gt;</content><category 
term="solr/vex"/></entry><entry><title>Apache Log4j Core: TLS hostname 
verification silently ignored in Socket, SMTP and Syslog appenders</title><link 
href="/cve-2026-34477.html" 
rel="alternate"/><published>2026-04-10T00:00:00+00:00</published><updated>2026-04-10T00:00:00+00:00</updated><author><name>Solr
 Developers</name></au [...]
 Successful exploitation requires a specific, non-default logging configuration 
together with a privileged network position.
 The following conditions &lt;strong&gt;must all be 
met&lt;/strong&gt;:&lt;/p&gt;
 &lt;ul&gt;
@@ -1517,70 +1629,4 @@ See &lt;a 
href="https://lists.apache.org/thread/kgh63sncrsm2bls884pg87mnt8vqztmz
 &lt;p&gt;&lt;a 
href="https://apache.github.io/solr-operator/docs/upgrade-notes.html"&gt;https://apache.github.io/solr-operator/docs/upgrade-notes.html&lt;/a&gt;&lt;/p&gt;
 &lt;p&gt;For the most exhaustive list, see the change log on ArtifactHub or 
view the git history in the solr-operator repo.&lt;/p&gt;
 &lt;p&gt;&lt;a 
href="https://artifacthub.io/packages/helm/apache-solr/solr-operator?modal=changelog"&gt;https://artifacthub.io/packages/helm/apache-solr/solr-operator?modal=changelog&lt;/a&gt;&lt;/p&gt;
-&lt;p&gt;&lt;a 
href="https://github.com/apache/solr-operator/releases/tag/v0.4.0"&gt;https://github.com/apache/solr-operator/releases/tag/v0.4.0&lt;/a&gt;&lt;/p&gt;</content><category
 term="solr/operator/news"/></entry><entry><title>Apache Solr™ 8.9.0 
available</title><link href="/apache-solrtm-890-available.html" 
rel="alternate"/><published>2021-06-16T00:00:00+00:00</published><updated>2021-06-16T00:00:00+00:00</updated><author><name>Solr
 Developers</name></author><id>tag:None,2021-06-1 [...]
-&lt;p&gt;Solr is the popular, blazing fast, open source NoSQL search platform 
from the Apache Lucene project. Its major features include powerful full-text 
search, hit highlighting, faceted search, dynamic clustering, database 
integration, rich document handling, and …&lt;/p&gt;</summary><content 
type="html">&lt;p&gt;The Solr PMC is pleased to announce the release of Apache 
Solr 8.9.0.&lt;/p&gt;
-&lt;p&gt;Solr is the popular, blazing fast, open source NoSQL search platform 
from the Apache Lucene project. Its major features include powerful full-text 
search, hit highlighting, faceted search, dynamic clustering, database 
integration, rich document handling, and geospatial search. Solr is highly 
scalable, providing fault tolerant distributed search and indexing, and powers 
the search and navigation features of many of the world's largest internet 
sites.&lt;/p&gt;
-&lt;p&gt;Solr 8.9.0 is available for immediate download at:&lt;/p&gt;
-&lt;p&gt;&lt;a 
href="https://solr.apache.org/downloads.html"&gt;https://solr.apache.org/downloads.html&lt;/a&gt;&lt;/p&gt;
-&lt;h3 id="solr-890-release-highlights"&gt;Solr 8.9.0 Release Highlights:&lt;a 
class="headerlink" href="#solr-890-release-highlights" title="Permanent 
link"&gt;&amp;para;&lt;/a&gt;&lt;/h3&gt;
-&lt;ul&gt;
-&lt;li&gt;
-&lt;p&gt;Backup/Restore: Support for incremental backups, support for storing 
backups in Google Cloud Storage (GCS), ability to restore on top of an existing 
collection. Improved v2 API. Please see CHANGES.txt for details. (SOLR-15087, 
SOLR-15090, SOLR-13608, SOLR-15101)&lt;/p&gt;
-&lt;/li&gt;
-&lt;li&gt;
-&lt;p&gt;Monitoring: New "Solr Cluster" row in Grafana dashboard, improved 
Zookeeper monitoring, new shard health info in CLUSTERSTATUS and more. Please 
see CHANGES.txt for details. (SOLR-15365, SOLR-15397, SOLR-15300, SOLR-15081, 
SOLR-15383)&lt;/p&gt;
-&lt;/li&gt;
-&lt;li&gt;
-&lt;p&gt;Deprecations: The Metrics history feature has been deprecated and 
will be removed in 9.0 (SOLR-15416)&lt;/p&gt;
-&lt;/li&gt;
-&lt;li&gt;
-&lt;p&gt;Admin UI: Query page now stores state in URL and can easily be shared 
(SOLR-6152)&lt;/p&gt;
-&lt;/li&gt;
-&lt;li&gt;
-&lt;p&gt;Security: Jetty server upgraded to 9.4.41 which fixes some known 
vulnerabilities (SOLR-15316)&lt;/p&gt;
-&lt;/li&gt;
-&lt;/ul&gt;
-&lt;p&gt;A summary of important changes is published in the Solr Reference 
Guide at &lt;a 
href="https://solr.apache.org/guide/8_9/solr-upgrade-notes.html"&gt;https://solr.apache.org/guide/8_9/solr-upgrade-notes.html&lt;/a&gt;.&lt;/p&gt;
-&lt;p&gt;For the most exhaustive list, see the full release notes at &lt;a 
href="https://solr.apache.org/8_9_0/changes/Changes.html"&gt;https://solr.apache.org/8_9_0/changes/Changes.html&lt;/a&gt;
 or by viewing the CHANGES.txt file accompanying the distribution.&lt;/p&gt;
-&lt;p&gt;Solr's release notes usually don't include Lucene layer changes.  
Lucene's release notes are at &lt;a 
href="https://lucene.apache.org/core/8_9_0/changes/Changes.html"&gt;https://lucene.apache.org/core/8_9_0/changes/Changes.html&lt;/a&gt;&lt;/p&gt;</content><category
 term="solr/news"/></entry><entry><title>Apache Solr Operator™ v0.3.0 
available</title><link href="/apache-solr-operatortm-v030-available.html" 
rel="alternate"/><published>2021-04-29T00:00:00+00:00</published><updated [...]
-&lt;p&gt;The Apache Solr Operator is a safe and easy way of managing a Solr 
ecosystem in Kubernetes.&lt;/p&gt;
-&lt;p&gt;This release contains numerous bug fixes, optimizations, and 
improvements, some of which are highlighted below. The 
…&lt;/p&gt;</summary><content type="html">&lt;p&gt;The Solr PMC is pleased to 
announce the release of the Apache Solr Operator v0.3.0.&lt;/p&gt;
-&lt;p&gt;The Apache Solr Operator is a safe and easy way of managing a Solr 
ecosystem in Kubernetes.&lt;/p&gt;
-&lt;p&gt;This release contains numerous bug fixes, optimizations, and 
improvements, some of which are highlighted below. The release is available for 
immediate download at:&lt;/p&gt;
-&lt;p&gt;&lt;a 
href="https://solr.apache.org/operator/artifacts.html"&gt;https://solr.apache.org/operator/artifacts.html&lt;/a&gt;&lt;/p&gt;
-&lt;h3 id="solr-operator-v030-release-highlights"&gt;Solr Operator v0.3.0 
Release Highlights:&lt;a class="headerlink" 
href="#solr-operator-v030-release-highlights" title="Permanent 
link"&gt;&amp;para;&lt;/a&gt;&lt;/h3&gt;
-&lt;ul&gt;
-&lt;li&gt;The Solr Operator is now an Apache project managed by the Apache 
Solr PMC.&lt;/li&gt;
-&lt;li&gt;The CRDs are now under the solr.apache.org group instead of 
solr.bloomberg.com.&lt;/li&gt;
-&lt;li&gt;The Solr Operator now fully supports running Solr in a secure and 
locked down way:&lt;/li&gt;
-&lt;li&gt;Basic Auth support is now built in when requested in the SolrCloud 
CRD&lt;/li&gt;
-&lt;li&gt;Solr can be run with TLS (optional mTLS, if provided to the 
operator)&lt;/li&gt;
-&lt;li&gt;More helm chart options are provided to customize running the Solr 
Operator&lt;/li&gt;
-&lt;li&gt;The Zookeeper Operator is now up-to-date with the most recent 
release, v0.2.9.&lt;/li&gt;
-&lt;li&gt;It can now be installed as a helm-chart dependency with the Solr 
Operator.&lt;/li&gt;
-&lt;li&gt;Users can now provide custom Solr log4j.xml and Prometheus Exporter 
config xml configMaps&lt;/li&gt;
-&lt;li&gt;Fixed a bug in custom probes for Solr pods&lt;/li&gt;
-&lt;li&gt;Solr pod shutdown is more graceful, has better coordination between 
Kubernetes and Solr.&lt;/li&gt;
-&lt;li&gt;SolrCloud can now be used with the Kubernetes HPA to autoscale Solr 
Cloud pods.&lt;/li&gt;
-&lt;/ul&gt;
-&lt;p&gt;A summary of important changes is published in the documentation 
at:&lt;/p&gt;
-&lt;p&gt;&lt;a 
href="https://apache.github.io/solr-operator/docs/upgrade-notes.html"&gt;https://apache.github.io/solr-operator/docs/upgrade-notes.html&lt;/a&gt;&lt;/p&gt;
-&lt;p&gt;For the most exhaustive list, see the full release notes in the 
Github Releases or by viewing the git history in the solr-operator 
repo.&lt;/p&gt;
-&lt;p&gt;&lt;a 
href="https://github.com/apache/solr-operator/releases/tag/v0.3.0"&gt;https://github.com/apache/solr-operator/releases/tag/v0.3.0&lt;/a&gt;&lt;/p&gt;</content><category
 term="solr/operator/news"/></entry><entry><title>Apache Solr™ 8.8.2 
available</title><link href="/apache-solrtm-882-available.html" 
rel="alternate"/><published>2021-04-12T00:00:00+00:00</published><updated>2021-04-12T00:00:00+00:00</updated><author><name>Solr
 Developers</name></author><id>tag:None,2021-04-1 [...]
-&lt;p&gt;Solr is the popular, blazing fast, open source NoSQL search platform 
from the Apache Lucene project. Its major features include powerful full-text 
search, hit highlighting, faceted search, dynamic clustering, database 
integration, rich document handling, and …&lt;/p&gt;</summary><content 
type="html">&lt;p&gt;The Solr PMC is pleased to announce the release of Apache 
Solr 8.8.2.&lt;/p&gt;
-&lt;p&gt;Solr is the popular, blazing fast, open source NoSQL search platform 
from the Apache Lucene project. Its major features include powerful full-text 
search, hit highlighting, faceted search, dynamic clustering, database 
integration, rich document handling, and geospatial search. Solr is highly 
scalable, providing fault tolerant distributed search and indexing, and powers 
the search and navigation features of many of the world's largest internet 
sites.&lt;/p&gt;
-&lt;p&gt;Solr 8.8.2 is available for immediate download at:&lt;/p&gt;
-&lt;p&gt;&lt;a 
href="https://solr.apache.org/downloads.html"&gt;https://solr.apache.org/downloads.html&lt;/a&gt;&lt;/p&gt;
-&lt;h3 id="solr-882-release-highlights"&gt;Solr 8.8.2 Release Highlights:&lt;a 
class="headerlink" href="#solr-882-release-highlights" title="Permanent 
link"&gt;&amp;para;&lt;/a&gt;&lt;/h3&gt;
-&lt;ul&gt;
-&lt;li&gt;SOLR-15249: Properly set ZK ACLs on /security.json&lt;/li&gt;
-&lt;li&gt;SOLR-15233: Set doAs param in 
ConfigurableInternodeAuthHadoopPlugin&lt;/li&gt;
-&lt;li&gt;SOLR-15217: Use shardsWhitelist in ReplicationHandler&lt;/li&gt;
-&lt;li&gt;SOLR-15288: Hardening NODEDOWN event in collections using 
PerReplicaStates&lt;/li&gt;
-&lt;/ul&gt;
-&lt;p&gt;Please refer to the Upgrade Notes in the Solr Ref Guide for 
information on upgrading from previous Solr versions:&lt;/p&gt;
-&lt;p&gt;&lt;a 
href="https://solr.apache.org/guide/8_8/solr-upgrade-notes.html"&gt;https://solr.apache.org/guide/8_8/solr-upgrade-notes.html&lt;/a&gt;&lt;/p&gt;
-&lt;p&gt;Please read CHANGES.txt for a full list of bugfixes:&lt;/p&gt;
-&lt;p&gt;&lt;a 
href="https://solr.apache.org/8_8_2/changes/Changes.html"&gt;https://solr.apache.org/8_8_2/changes/Changes.html&lt;/a&gt;&lt;/p&gt;
-&lt;p&gt;Solr 8.8.2 also includes bugfixes in the corresponding Apache Lucene 
release:&lt;/p&gt;
-&lt;p&gt;&lt;a 
href="https://lucene.apache.org/core/8_8_2/changes/Changes.html"&gt;https://lucene.apache.org/core/8_8_2/changes/Changes.html&lt;/a&gt;&lt;/p&gt;</content><category
 term="solr/news"/></entry></feed>
\ No newline at end of file
+&lt;p&gt;&lt;a 
href="https://github.com/apache/solr-operator/releases/tag/v0.4.0"&gt;https://github.com/apache/solr-operator/releases/tag/v0.4.0&lt;/a&gt;&lt;/p&gt;</content><category
 term="solr/operator/news"/></entry></feed>
\ No newline at end of file
diff --git a/output/feeds/solr/vex.atom.xml b/output/feeds/solr/vex.atom.xml
index 15ca522e1..cd8910192 100644
--- a/output/feeds/solr/vex.atom.xml
+++ b/output/feeds/solr/vex.atom.xml
@@ -1,5 +1,117 @@
 <?xml version="1.0" encoding="utf-8"?>
-<feed xmlns="http://www.w3.org/2005/Atom";><title>Apache Solr - 
solr/vex</title><link href="/" rel="alternate"/><link 
href="/feeds/solr/vex.atom.xml" 
rel="self"/><id>/</id><updated>2026-04-10T00:00:00+00:00</updated><entry><title>Apache
 Log4j Core: TLS hostname verification silently ignored in Socket, SMTP and 
Syslog appenders</title><link href="/cve-2026-34477.html" 
rel="alternate"/><published>2026-04-10T00:00:00+00:00</published><updated>2026-04-10T00:00:00+00:00</updated><author><name>
 [...]
+<feed xmlns="http://www.w3.org/2005/Atom";><title>Apache Solr - 
solr/vex</title><link href="/" rel="alternate"/><link 
href="/feeds/solr/vex.atom.xml" 
rel="self"/><id>/</id><updated>2026-05-04T00:00:00+00:00</updated><entry><title>Apache
 OpenNLP: XXE in dictionary parsing</title><link href="/cve-2026-40682.html" 
rel="alternate"/><published>2026-05-04T00:00:00+00:00</published><updated>2026-05-04T00:00:00+00:00</updated><author><name>Solr
 Developers</name></author><id>tag:None,2026-05-04:/c [...]
+dictionary parsing. The &lt;code&gt;DictionaryEntryPersistor&lt;/code&gt; 
class and the public &lt;code&gt;Dictionary(InputStream)&lt;/code&gt;
+constructor create a SAX parser without enabling 
&lt;code&gt;FEATURE_SECURE_PROCESSING&lt;/code&gt; or disabling DTD
+processing, so external entity resolution and DOCTYPE declarations remain 
fully enabled. An attacker
+who can …&lt;/p&gt;</summary><content type="html">&lt;p&gt;CVE-2026-40682 
(CVSS 9.1) is an XML External Entity (XXE) vulnerability in Apache OpenNLP's
+dictionary parsing. The &lt;code&gt;DictionaryEntryPersistor&lt;/code&gt; 
class and the public &lt;code&gt;Dictionary(InputStream)&lt;/code&gt;
+constructor create a SAX parser without enabling 
&lt;code&gt;FEATURE_SECURE_PROCESSING&lt;/code&gt; or disabling DTD
+processing, so external entity resolution and DOCTYPE declarations remain 
fully enabled. An attacker
+who can supply a crafted dictionary file — either directly or embedded in a 
model archive that
+OpenNLP deserializes — can therefore read local files from the server or 
trigger outbound requests
+(server-side request forgery). Other OpenNLP XML parsing paths route through 
the hardened
+&lt;code&gt;XmlUtil.createSaxParser()&lt;/code&gt; helper, but this code path 
does not.&lt;/p&gt;
+&lt;p&gt;The vulnerable code is present in the 
&lt;code&gt;opennlp-tools-1.9.4.jar&lt;/code&gt; that Solr pulls in 
transitively via
+&lt;code&gt;lucene-analysis-opennlp&lt;/code&gt; (Lucene 9.12.3). There is a 
&lt;code&gt;opennlp-tools-1.9.5&lt;/code&gt; release happening, but it hasn't 
finished or been integrated into Solr 9; the issue is fixed in OpenNLP 2.5.9 
(and 3.0.0-M3), which parse dictionaries with secure
+XML processing that rejects DOCTYPE declarations and external 
entities.&lt;/p&gt;
+&lt;h4 id="when-solr-is-exposed"&gt;When Solr is exposed&lt;a 
class="headerlink" href="#when-solr-is-exposed" title="Permanent 
link"&gt;&amp;para;&lt;/a&gt;&lt;/h4&gt;
+&lt;p&gt;OpenNLP is not part of a default Solr installation, but it is 
exploitable once the OpenNLP-backed
+modules are enabled. The vulnerable dictionary-parsing code path becomes 
reachable when:&lt;/p&gt;
+&lt;ul&gt;
+&lt;li&gt;The &lt;code&gt;analysis-extras&lt;/code&gt; and/or 
&lt;code&gt;langid&lt;/code&gt; modules are enabled — they are not loaded by 
default.&lt;/li&gt;
+&lt;li&gt;OpenNLP analysis components or update processors are configured to 
load OpenNLP model or
+  dictionary files (the schema-configured OpenNLP analyzers — tokenizer, POS, 
chunker, lemmatizer,
+  name-finder — or the &lt;code&gt;langid&lt;/code&gt; / 
&lt;code&gt;analysis-extras&lt;/code&gt; update processors).&lt;/li&gt;
+&lt;/ul&gt;
+&lt;p&gt;Any deployment that enables these modules and parses an OpenNLP model 
or dictionary an attacker can
+influence is exploitable. A deployment that does not enable them never parses 
an OpenNLP dictionary
+and is not exposed.&lt;/p&gt;
+&lt;h4 id="mitigation"&gt;Mitigation&lt;a class="headerlink" 
href="#mitigation" title="Permanent link"&gt;&amp;para;&lt;/a&gt;&lt;/h4&gt;
+&lt;p&gt;The most reliable mitigation is to &lt;strong&gt;not enable the 
OpenNLP-backed &lt;code&gt;analysis-extras&lt;/code&gt; or 
&lt;code&gt;langid&lt;/code&gt;
+modules&lt;/strong&gt; unless they are required. If you do use OpenNLP, load 
model and dictionary files only from
+locations you fully control, since the bundled OpenNLP 1.9.4 does not disable 
external entities when
+parsing dictionaries.&lt;/p&gt;
+&lt;p&gt;Every OpenNLP model and dictionary is loaded as a resource through 
Solr's resource loaders, so the
+archive passes through a single chokepoint before OpenNLP is allowed to 
deserialize it. This applies
+to both standalone (filesystem configset) and SolrCloud (ZooKeeper) 
deployments, and whether the
+dictionary is loaded by the &lt;code&gt;langid&lt;/code&gt; / 
&lt;code&gt;analysis-extras&lt;/code&gt; update processors or by the
+schema-configured OpenNLP analyzers.&lt;/p&gt;
+&lt;p&gt;Fully resolved in Solr 10.1 by upgrading the bundled OpenNLP (via 
&lt;code&gt;lucene-analysis-opennlp&lt;/code&gt;) to 
2.5.9.&lt;/p&gt;</content><category 
term="solr/vex"/></entry><entry><title>Apache OpenNLP: Arbitrary class 
instantiation via model manifest</title><link href="/cve-2026-42027.html" 
rel="alternate"/><published>2026-05-04T00:00:00+00:00</published><updated>2026-05-04T00:00:00+00:00</updated><author><name>Solr
 Developers</name></author><id>tag:None,2026-05-04:/cve- [...]
+&lt;code&gt;ExtensionLoader&lt;/code&gt;. The 
&lt;code&gt;instantiateExtension(Class, String)&lt;/code&gt; method loads a 
class named in a
+model archive's &lt;code&gt;manifest.properties&lt;/code&gt; via 
&lt;code&gt;Class.forName()&lt;/code&gt; and only performs its
+&lt;code&gt;isAssignableFrom&lt;/code&gt; type check 
&lt;em&gt;after&lt;/em&gt; the class has been loaded. Because 
&lt;code&gt;Class.forName()&lt;/code&gt;
+runs the …&lt;/p&gt;</summary><content type="html">&lt;p&gt;CVE-2026-42027 
(CVSS 9.8) is an arbitrary class instantiation issue in Apache OpenNLP's
+&lt;code&gt;ExtensionLoader&lt;/code&gt;. The 
&lt;code&gt;instantiateExtension(Class, String)&lt;/code&gt; method loads a 
class named in a
+model archive's &lt;code&gt;manifest.properties&lt;/code&gt; via 
&lt;code&gt;Class.forName()&lt;/code&gt; and only performs its
+&lt;code&gt;isAssignableFrom&lt;/code&gt; type check 
&lt;em&gt;after&lt;/em&gt; the class has been loaded. Because 
&lt;code&gt;Class.forName()&lt;/code&gt;
+runs the target class's static initializer at load time, an attacker who can 
supply a crafted
+model archive can trigger the static initializer of any class on the classpath 
(e.g. one that
+performs a JNDI lookup, outbound network I/O, or filesystem access), 
regardless of the
+type check that follows.&lt;/p&gt;
+&lt;p&gt;The vulnerable code is present in the 
&lt;code&gt;opennlp-tools-1.9.4.jar&lt;/code&gt; that Solr pulls in transitively
+via &lt;code&gt;lucene-analysis-opennlp&lt;/code&gt; (Lucene 9.12.3). There is 
a &lt;code&gt;opennlp-tools-1.9.5&lt;/code&gt; release happening, but it hasn't 
finished or been integrated into Solr 9; the issue is fixed in OpenNLP 2.5.9 
(and 3.0.0-M3), which consults a
+package-prefix allowlist &lt;em&gt;before&lt;/em&gt; calling 
&lt;code&gt;Class.forName()&lt;/code&gt;.&lt;/p&gt;
+&lt;h4 id="when-solr-is-exposed"&gt;When Solr is exposed&lt;a 
class="headerlink" href="#when-solr-is-exposed" title="Permanent 
link"&gt;&amp;para;&lt;/a&gt;&lt;/h4&gt;
+&lt;p&gt;OpenNLP is not part of a default Solr installation, but it is 
exploitable once the OpenNLP-backed
+modules are enabled. The vulnerable code path becomes reachable when:&lt;/p&gt;
+&lt;ul&gt;
+&lt;li&gt;The &lt;code&gt;analysis-extras&lt;/code&gt; and/or 
&lt;code&gt;langid&lt;/code&gt; modules are enabled — they are not loaded by 
default.&lt;/li&gt;
+&lt;li&gt;OpenNLP analysis components or update processors are configured to 
load model files.&lt;/li&gt;
+&lt;/ul&gt;
+&lt;p&gt;Any deployment that enables these modules and loads an OpenNLP model 
an attacker can influence is
+exploitable. A deployment that does not enable them never invokes 
&lt;code&gt;ExtensionLoader&lt;/code&gt; and is not
+exposed.&lt;/p&gt;
+&lt;h4 id="mitigation"&gt;Mitigation&lt;a class="headerlink" 
href="#mitigation" title="Permanent link"&gt;&amp;para;&lt;/a&gt;&lt;/h4&gt;
+&lt;p&gt;The most reliable mitigation is to &lt;strong&gt;not enable the 
OpenNLP-backed &lt;code&gt;analysis-extras&lt;/code&gt; or 
&lt;code&gt;langid&lt;/code&gt;
+modules&lt;/strong&gt; unless they are required. If you do use OpenNLP, load 
model files only from locations you
+fully control and never from untrusted or user-supplied sources.&lt;/p&gt;
+&lt;p&gt;In Solr 9.11.0 the upstream allowlist defense is backfilled at the 
application layer, since the
+vulnerable jar cannot yet be upgraded (Solr must track the OpenNLP version 
used by
+&lt;code&gt;lucene-analysis-opennlp&lt;/code&gt;). Every OpenNLP model is 
loaded as a resource through Solr's resource
+loaders, so the archive is validated at that single chokepoint before OpenNLP 
is allowed to
+deserialize it:&lt;/p&gt;
+&lt;ul&gt;
+&lt;li&gt;The archive is opened as a ZIP and every class name it declares — 
the &lt;code&gt;manifest.properties&lt;/code&gt;
+  &lt;code&gt;factory&lt;/code&gt; entry and any class referenced from 
embedded feature-generator XML descriptors — must
+  resolve under the &lt;code&gt;opennlp.&lt;/code&gt; package 
prefix.&lt;/li&gt;
+&lt;li&gt;A model that names a class outside that prefix is rejected and never 
reaches &lt;code&gt;ExtensionLoader&lt;/code&gt;,
+  so no attacker-controlled static initializer can run.&lt;/li&gt;
+&lt;li&gt;Validation covers both standalone (filesystem configset) and 
SolrCloud (ZooKeeper) deployments,
+  and applies whether the model is loaded by the 
&lt;code&gt;langid&lt;/code&gt; / &lt;code&gt;analysis-extras&lt;/code&gt; 
update processors or
+  by the schema-configured OpenNLP analyzers (tokenizer, POS, chunker, 
lemmatizer, name-finder).&lt;/li&gt;
+&lt;/ul&gt;
+&lt;p&gt;Solr's own usage only ever references built-in 
&lt;code&gt;opennlp.*&lt;/code&gt; factories, so legitimate models load
+unchanged; only crafted models that try to instantiate arbitrary classes are 
blocked.&lt;/p&gt;
+&lt;p&gt;Fully resolved in Solr 10.1 by upgrading the bundled OpenNLP (via 
&lt;code&gt;lucene-analysis-opennlp&lt;/code&gt;) to 
2.5.9.&lt;/p&gt;</content><category 
term="solr/vex"/></entry><entry><title>Apache OpenNLP: Out-of-memory denial of 
service via crafted model file</title><link href="/cve-2026-42440.html" 
rel="alternate"/><published>2026-05-04T00:00:00+00:00</published><updated>2026-05-04T00:00:00+00:00</updated><author><name>Solr
 Developers</name></author><id>tag:None,2026-05-04 [...]
+model reader. The &lt;code&gt;AbstractModelReader&lt;/code&gt; methods 
&lt;code&gt;getOutcomes()&lt;/code&gt;, 
&lt;code&gt;getOutcomePatterns()&lt;/code&gt; and
+&lt;code&gt;getPredicates()&lt;/code&gt; read a 32-bit signed integer count 
field from a binary model stream and pass it
+directly to an array allocation without validating it. An attacker who can 
supply …&lt;/p&gt;</summary><content type="html">&lt;p&gt;CVE-2026-42440 (CVSS 
7.5) is an out-of-memory denial-of-service issue in Apache OpenNLP's binary
+model reader. The &lt;code&gt;AbstractModelReader&lt;/code&gt; methods 
&lt;code&gt;getOutcomes()&lt;/code&gt;, 
&lt;code&gt;getOutcomePatterns()&lt;/code&gt; and
+&lt;code&gt;getPredicates()&lt;/code&gt; read a 32-bit signed integer count 
field from a binary model stream and pass it
+directly to an array allocation without validating it. An attacker who can 
supply a crafted &lt;code&gt;.bin&lt;/code&gt;
+model file with a count set to &lt;code&gt;Integer.MAX_VALUE&lt;/code&gt; 
triggers an immediate &lt;code&gt;OutOfMemoryError&lt;/code&gt; during
+model deserialization, before any substantial data is consumed.&lt;/p&gt;
+&lt;p&gt;The vulnerable code is present in the 
&lt;code&gt;opennlp-tools-1.9.4.jar&lt;/code&gt; that Solr pulls in 
transitively via
+&lt;code&gt;lucene-analysis-opennlp&lt;/code&gt; (Lucene 9.12.3). There is a 
&lt;code&gt;opennlp-tools-1.9.5&lt;/code&gt; release happening, but it hasn't 
finished or been integrated into Solr 9; the issue is fixed in OpenNLP 2.5.9 
(and 3.0.0-M3), which validate the count against an
+upper bound (default 10,000,000, configurable via the 
&lt;code&gt;OPENNLP_MAX_ENTRIES&lt;/code&gt; system property) before
+allocating.&lt;/p&gt;
+&lt;h4 id="when-solr-is-exposed"&gt;When Solr is exposed&lt;a 
class="headerlink" href="#when-solr-is-exposed" title="Permanent 
link"&gt;&amp;para;&lt;/a&gt;&lt;/h4&gt;
+&lt;p&gt;OpenNLP is not part of a default Solr installation, but it is 
exploitable once the OpenNLP-backed
+modules are enabled. The vulnerable model-loading code path becomes reachable 
when:&lt;/p&gt;
+&lt;ul&gt;
+&lt;li&gt;The &lt;code&gt;analysis-extras&lt;/code&gt; and/or 
&lt;code&gt;langid&lt;/code&gt; modules are enabled — they are not loaded by 
default.&lt;/li&gt;
+&lt;li&gt;OpenNLP analysis components or update processors are configured to 
load OpenNLP model files (the
+  schema-configured OpenNLP analyzers — tokenizer, POS, chunker, lemmatizer, 
name-finder — or the
+  &lt;code&gt;langid&lt;/code&gt; / &lt;code&gt;analysis-extras&lt;/code&gt; 
update processors).&lt;/li&gt;
+&lt;/ul&gt;
+&lt;p&gt;Any deployment that enables these modules and loads an OpenNLP model 
an attacker can influence is
+exploitable. A deployment that does not enable them never deserializes an 
OpenNLP model and is not
+exposed.&lt;/p&gt;
+&lt;h4 id="mitigation"&gt;Mitigation&lt;a class="headerlink" 
href="#mitigation" title="Permanent link"&gt;&amp;para;&lt;/a&gt;&lt;/h4&gt;
+&lt;p&gt;The most reliable mitigation is to &lt;strong&gt;not enable the 
OpenNLP-backed &lt;code&gt;analysis-extras&lt;/code&gt; or 
&lt;code&gt;langid&lt;/code&gt;
+modules&lt;/strong&gt; unless they are required. If you do use OpenNLP, load 
model files only from locations you
+fully control and never from untrusted or user-supplied sources.&lt;/p&gt;
+&lt;p&gt;Fully resolved in Solr 10.1 by upgrading the bundled OpenNLP (via 
&lt;code&gt;lucene-analysis-opennlp&lt;/code&gt;) to 
2.5.9.&lt;/p&gt;</content><category 
term="solr/vex"/></entry><entry><title>Apache Log4j Core: TLS hostname 
verification silently ignored in Socket, SMTP and Syslog appenders</title><link 
href="/cve-2026-34477.html" 
rel="alternate"/><published>2026-04-10T00:00:00+00:00</published><updated>2026-04-10T00:00:00+00:00</updated><author><name>Solr
 Developers</name></au [...]
 Successful exploitation requires a specific, non-default logging configuration 
together with a privileged network position.
 The following conditions &lt;strong&gt;must all be 
met&lt;/strong&gt;:&lt;/p&gt;
 &lt;ul&gt;
diff --git a/output/solr.vex.json b/output/solr.vex.json
index fc3be49c6..bd2c632e8 100644
--- a/output/solr.vex.json
+++ b/output/solr.vex.json
@@ -7,7 +7,7 @@
       "name": "solr",
       "version": "SNAPSHOT",
       "type": "application",
-      "bom-ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+      "bom-ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
     }
   },
   "vulnerabilities": [
@@ -23,7 +23,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -39,7 +39,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -55,7 +55,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -71,7 +71,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -87,7 +87,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -103,7 +103,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -119,7 +119,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -135,7 +135,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -151,7 +151,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -167,7 +167,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -183,7 +183,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -199,7 +199,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -215,7 +215,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -231,7 +231,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -247,7 +247,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -263,7 +263,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -279,7 +279,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -295,7 +295,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -311,7 +311,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -327,7 +327,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -343,7 +343,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -359,7 +359,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -375,7 +375,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -391,7 +391,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -407,7 +407,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -423,7 +423,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -439,7 +439,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -455,7 +455,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -471,7 +471,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -487,7 +487,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -503,7 +503,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -519,7 +519,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -535,7 +535,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -551,7 +551,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -567,7 +567,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -583,7 +583,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -599,7 +599,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -615,7 +615,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -631,7 +631,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -647,7 +647,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -663,7 +663,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -679,7 +679,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -695,7 +695,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -711,7 +711,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -727,7 +727,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -743,7 +743,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -759,7 +759,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -775,7 +775,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -791,7 +791,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -807,7 +807,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -823,7 +823,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -839,7 +839,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -855,7 +855,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -871,7 +871,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -887,7 +887,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -903,7 +903,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -919,7 +919,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -935,7 +935,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -951,7 +951,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -970,7 +970,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -986,7 +986,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -1002,7 +1002,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -1018,7 +1018,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -1037,7 +1037,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -1053,7 +1053,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -1070,7 +1070,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -1086,7 +1086,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -1103,7 +1103,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -1120,7 +1120,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -1137,7 +1137,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -1154,7 +1154,7 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     },
@@ -1171,7 +1171,67 @@
       },
       "affects": [
         {
-          "ref": "5236b97f-6aa9-5b4c-91b4-400c65345c60"
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
+        }
+      ]
+    },
+    {
+      "id": "CVE-2026-40682",
+      "source": {
+        "name": "NVD",
+        "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-40682";
+      },
+      "analysis": {
+        "state": "exploitable",
+        "response": [
+          "workaround_available",
+          "update"
+        ],
+        "detail": "CVE-2026-40682 (CVSS 9.1) is an XML External Entity (XXE) 
vulnerability in Apache OpenNLP's\ndictionary parsing. The 
`DictionaryEntryPersistor` class and the public 
`Dictionary(InputStream)`\nconstructor create a SAX parser without enabling 
`FEATURE_SECURE_PROCESSING` or disabling DTD\nprocessing, so external entity 
resolution and DOCTYPE declarations remain fully enabled. An attacker\nwho can 
supply a crafted dictionary file \u2014 either directly or embedded in a mod 
[...]
+      },
+      "affects": [
+        {
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
+        }
+      ]
+    },
+    {
+      "id": "CVE-2026-42027",
+      "source": {
+        "name": "NVD",
+        "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-42027";
+      },
+      "analysis": {
+        "state": "exploitable",
+        "response": [
+          "workaround_available",
+          "update"
+        ],
+        "detail": "CVE-2026-42027 (CVSS 9.8) is an arbitrary class 
instantiation issue in Apache OpenNLP's\n`ExtensionLoader`. The 
`instantiateExtension(Class, String)` method loads a class named in a\nmodel 
archive's `manifest.properties` via `Class.forName()` and only performs 
its\n`isAssignableFrom` type check *after* the class has been loaded. Because 
`Class.forName()`\nruns the target class's static initializer at load time, an 
attacker who can supply a crafted\nmodel archive can tr [...]
+      },
+      "affects": [
+        {
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
+        }
+      ]
+    },
+    {
+      "id": "CVE-2026-42440",
+      "source": {
+        "name": "NVD",
+        "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-42440";
+      },
+      "analysis": {
+        "state": "exploitable",
+        "response": [
+          "workaround_available",
+          "update"
+        ],
+        "detail": "CVE-2026-42440 (CVSS 7.5) is an out-of-memory 
denial-of-service issue in Apache OpenNLP's binary\nmodel reader. The 
`AbstractModelReader` methods `getOutcomes()`, `getOutcomePatterns()` 
and\n`getPredicates()` read a 32-bit signed integer count field from a binary 
model stream and pass it\ndirectly to an array allocation without validating 
it. An attacker who can supply a crafted `.bin`\nmodel file with a count set to 
`Integer.MAX_VALUE` triggers an immediate `OutOfMemo [...]
+      },
+      "affects": [
+        {
+          "ref": "0edd6956-499a-5872-92f9-1e68ba9c16b9"
         }
       ]
     }
diff --git a/output/vex.html b/output/vex.html
index a350724fd..0a37107b4 100644
--- a/output/vex.html
+++ b/output/vex.html
@@ -139,6 +139,167 @@
         <h1>Apache Solr VEX</h1>
         <p><a href="/security-dependency-cves.html">← Back to the dependency 
CVE table</a></p>
 
+            <article id="cve-2026-42440" class="post panel radius">
+                <header class="post-header">
+                    <h3 class="title"><a 
href="https://nvd.nist.gov/vuln/detail/CVE-2026-42440";>CVE-2026-42440</a>, 
Apache OpenNLP: Out-of-memory denial of service via crafted model file</h3>
+                    <div class="panel callout">
+                        <p class="subheader">
+                            <strong>Status:</strong>
+                            <span class="cdx-exploitable">exploitable</span>
+                        </p>
+                            <p class="subheader"><strong>Affected Solr 
versions:</strong> < 10.1.0</p>
+                    </div>
+                </header>
+
+                <h4>Description</h4>
+                <p>CVE-2026-42440 (CVSS 7.5) is an out-of-memory 
denial-of-service issue in Apache OpenNLP's binary
+model reader. The <code>AbstractModelReader</code> methods 
<code>getOutcomes()</code>, <code>getOutcomePatterns()</code> and
+<code>getPredicates()</code> read a 32-bit signed integer count field from a 
binary model stream and pass it
+directly to an array allocation without validating it. An attacker who can 
supply a crafted <code>.bin</code>
+model file with a count set to <code>Integer.MAX_VALUE</code> triggers an 
immediate <code>OutOfMemoryError</code> during
+model deserialization, before any substantial data is consumed.</p>
+<p>The vulnerable code is present in the <code>opennlp-tools-1.9.4.jar</code> 
that Solr pulls in transitively via
+<code>lucene-analysis-opennlp</code> (Lucene 9.12.3). There is a 
<code>opennlp-tools-1.9.5</code> release happening, but it hasn't finished or 
been integrated into Solr 9; the issue is fixed in OpenNLP 2.5.9 (and 
3.0.0-M3), which validate the count against an
+upper bound (default 10,000,000, configurable via the 
<code>OPENNLP_MAX_ENTRIES</code> system property) before
+allocating.</p>
+<h4 id="when-solr-is-exposed">When Solr is exposed<a class="headerlink" 
href="#when-solr-is-exposed" title="Permanent link">&para;</a></h4>
+<p>OpenNLP is not part of a default Solr installation, but it is exploitable 
once the OpenNLP-backed
+modules are enabled. The vulnerable model-loading code path becomes reachable 
when:</p>
+<ul>
+<li>The <code>analysis-extras</code> and/or <code>langid</code> modules are 
enabled — they are not loaded by default.</li>
+<li>OpenNLP analysis components or update processors are configured to load 
OpenNLP model files (the
+  schema-configured OpenNLP analyzers — tokenizer, POS, chunker, lemmatizer, 
name-finder — or the
+  <code>langid</code> / <code>analysis-extras</code> update processors).</li>
+</ul>
+<p>Any deployment that enables these modules and loads an OpenNLP model an 
attacker can influence is
+exploitable. A deployment that does not enable them never deserializes an 
OpenNLP model and is not
+exposed.</p>
+<h4 id="mitigation">Mitigation<a class="headerlink" href="#mitigation" 
title="Permanent link">&para;</a></h4>
+<p>The most reliable mitigation is to <strong>not enable the OpenNLP-backed 
<code>analysis-extras</code> or <code>langid</code>
+modules</strong> unless they are required. If you do use OpenNLP, load model 
files only from locations you
+fully control and never from untrusted or user-supplied sources.</p>
+<p>Fully resolved in Solr 10.1 by upgrading the bundled OpenNLP (via 
<code>lucene-analysis-opennlp</code>) to 2.5.9.</p>
+
+                <h4>References</h4>
+                <ul>
+                        <li>CVE: <a 
href="https://nvd.nist.gov/vuln/detail/CVE-2026-42440";>CVE-2026-42440</a></li>
+                </ul>
+            </article>
+            <article id="cve-2026-42027" class="post panel radius">
+                <header class="post-header">
+                    <h3 class="title"><a 
href="https://nvd.nist.gov/vuln/detail/CVE-2026-42027";>CVE-2026-42027</a>, 
Apache OpenNLP: Arbitrary class instantiation via model manifest</h3>
+                    <div class="panel callout">
+                        <p class="subheader">
+                            <strong>Status:</strong>
+                            <span class="cdx-exploitable">exploitable</span>
+                        </p>
+                            <p class="subheader"><strong>Affected Solr 
versions:</strong> < 10.1.0</p>
+                    </div>
+                </header>
+
+                <h4>Description</h4>
+                <p>CVE-2026-42027 (CVSS 9.8) is an arbitrary class 
instantiation issue in Apache OpenNLP's
+<code>ExtensionLoader</code>. The <code>instantiateExtension(Class, 
String)</code> method loads a class named in a
+model archive's <code>manifest.properties</code> via 
<code>Class.forName()</code> and only performs its
+<code>isAssignableFrom</code> type check <em>after</em> the class has been 
loaded. Because <code>Class.forName()</code>
+runs the target class's static initializer at load time, an attacker who can 
supply a crafted
+model archive can trigger the static initializer of any class on the classpath 
(e.g. one that
+performs a JNDI lookup, outbound network I/O, or filesystem access), 
regardless of the
+type check that follows.</p>
+<p>The vulnerable code is present in the <code>opennlp-tools-1.9.4.jar</code> 
that Solr pulls in transitively
+via <code>lucene-analysis-opennlp</code> (Lucene 9.12.3). There is a 
<code>opennlp-tools-1.9.5</code> release happening, but it hasn't finished or 
been integrated into Solr 9; the issue is fixed in OpenNLP 2.5.9 (and 
3.0.0-M3), which consults a
+package-prefix allowlist <em>before</em> calling 
<code>Class.forName()</code>.</p>
+<h4 id="when-solr-is-exposed">When Solr is exposed<a class="headerlink" 
href="#when-solr-is-exposed" title="Permanent link">&para;</a></h4>
+<p>OpenNLP is not part of a default Solr installation, but it is exploitable 
once the OpenNLP-backed
+modules are enabled. The vulnerable code path becomes reachable when:</p>
+<ul>
+<li>The <code>analysis-extras</code> and/or <code>langid</code> modules are 
enabled — they are not loaded by default.</li>
+<li>OpenNLP analysis components or update processors are configured to load 
model files.</li>
+</ul>
+<p>Any deployment that enables these modules and loads an OpenNLP model an 
attacker can influence is
+exploitable. A deployment that does not enable them never invokes 
<code>ExtensionLoader</code> and is not
+exposed.</p>
+<h4 id="mitigation">Mitigation<a class="headerlink" href="#mitigation" 
title="Permanent link">&para;</a></h4>
+<p>The most reliable mitigation is to <strong>not enable the OpenNLP-backed 
<code>analysis-extras</code> or <code>langid</code>
+modules</strong> unless they are required. If you do use OpenNLP, load model 
files only from locations you
+fully control and never from untrusted or user-supplied sources.</p>
+<p>In Solr 9.11.0 the upstream allowlist defense is backfilled at the 
application layer, since the
+vulnerable jar cannot yet be upgraded (Solr must track the OpenNLP version 
used by
+<code>lucene-analysis-opennlp</code>). Every OpenNLP model is loaded as a 
resource through Solr's resource
+loaders, so the archive is validated at that single chokepoint before OpenNLP 
is allowed to
+deserialize it:</p>
+<ul>
+<li>The archive is opened as a ZIP and every class name it declares — the 
<code>manifest.properties</code>
+  <code>factory</code> entry and any class referenced from embedded 
feature-generator XML descriptors — must
+  resolve under the <code>opennlp.</code> package prefix.</li>
+<li>A model that names a class outside that prefix is rejected and never 
reaches <code>ExtensionLoader</code>,
+  so no attacker-controlled static initializer can run.</li>
+<li>Validation covers both standalone (filesystem configset) and SolrCloud 
(ZooKeeper) deployments,
+  and applies whether the model is loaded by the <code>langid</code> / 
<code>analysis-extras</code> update processors or
+  by the schema-configured OpenNLP analyzers (tokenizer, POS, chunker, 
lemmatizer, name-finder).</li>
+</ul>
+<p>Solr's own usage only ever references built-in <code>opennlp.*</code> 
factories, so legitimate models load
+unchanged; only crafted models that try to instantiate arbitrary classes are 
blocked.</p>
+<p>Fully resolved in Solr 10.1 by upgrading the bundled OpenNLP (via 
<code>lucene-analysis-opennlp</code>) to 2.5.9.</p>
+
+                <h4>References</h4>
+                <ul>
+                        <li>CVE: <a 
href="https://nvd.nist.gov/vuln/detail/CVE-2026-42027";>CVE-2026-42027</a></li>
+                </ul>
+            </article>
+            <article id="cve-2026-40682" class="post panel radius">
+                <header class="post-header">
+                    <h3 class="title"><a 
href="https://nvd.nist.gov/vuln/detail/CVE-2026-40682";>CVE-2026-40682</a>, 
Apache OpenNLP: XXE in dictionary parsing</h3>
+                    <div class="panel callout">
+                        <p class="subheader">
+                            <strong>Status:</strong>
+                            <span class="cdx-exploitable">exploitable</span>
+                        </p>
+                            <p class="subheader"><strong>Affected Solr 
versions:</strong> < 10.1.0</p>
+                    </div>
+                </header>
+
+                <h4>Description</h4>
+                <p>CVE-2026-40682 (CVSS 9.1) is an XML External Entity (XXE) 
vulnerability in Apache OpenNLP's
+dictionary parsing. The <code>DictionaryEntryPersistor</code> class and the 
public <code>Dictionary(InputStream)</code>
+constructor create a SAX parser without enabling 
<code>FEATURE_SECURE_PROCESSING</code> or disabling DTD
+processing, so external entity resolution and DOCTYPE declarations remain 
fully enabled. An attacker
+who can supply a crafted dictionary file — either directly or embedded in a 
model archive that
+OpenNLP deserializes — can therefore read local files from the server or 
trigger outbound requests
+(server-side request forgery). Other OpenNLP XML parsing paths route through 
the hardened
+<code>XmlUtil.createSaxParser()</code> helper, but this code path does not.</p>
+<p>The vulnerable code is present in the <code>opennlp-tools-1.9.4.jar</code> 
that Solr pulls in transitively via
+<code>lucene-analysis-opennlp</code> (Lucene 9.12.3). There is a 
<code>opennlp-tools-1.9.5</code> release happening, but it hasn't finished or 
been integrated into Solr 9; the issue is fixed in OpenNLP 2.5.9 (and 
3.0.0-M3), which parse dictionaries with secure
+XML processing that rejects DOCTYPE declarations and external entities.</p>
+<h4 id="when-solr-is-exposed">When Solr is exposed<a class="headerlink" 
href="#when-solr-is-exposed" title="Permanent link">&para;</a></h4>
+<p>OpenNLP is not part of a default Solr installation, but it is exploitable 
once the OpenNLP-backed
+modules are enabled. The vulnerable dictionary-parsing code path becomes 
reachable when:</p>
+<ul>
+<li>The <code>analysis-extras</code> and/or <code>langid</code> modules are 
enabled — they are not loaded by default.</li>
+<li>OpenNLP analysis components or update processors are configured to load 
OpenNLP model or
+  dictionary files (the schema-configured OpenNLP analyzers — tokenizer, POS, 
chunker, lemmatizer,
+  name-finder — or the <code>langid</code> / <code>analysis-extras</code> 
update processors).</li>
+</ul>
+<p>Any deployment that enables these modules and parses an OpenNLP model or 
dictionary an attacker can
+influence is exploitable. A deployment that does not enable them never parses 
an OpenNLP dictionary
+and is not exposed.</p>
+<h4 id="mitigation">Mitigation<a class="headerlink" href="#mitigation" 
title="Permanent link">&para;</a></h4>
+<p>The most reliable mitigation is to <strong>not enable the OpenNLP-backed 
<code>analysis-extras</code> or <code>langid</code>
+modules</strong> unless they are required. If you do use OpenNLP, load model 
and dictionary files only from
+locations you fully control, since the bundled OpenNLP 1.9.4 does not disable 
external entities when
+parsing dictionaries.</p>
+<p>Every OpenNLP model and dictionary is loaded as a resource through Solr's 
resource loaders, so the
+archive passes through a single chokepoint before OpenNLP is allowed to 
deserialize it. This applies
+to both standalone (filesystem configset) and SolrCloud (ZooKeeper) 
deployments, and whether the
+dictionary is loaded by the <code>langid</code> / <code>analysis-extras</code> 
update processors or by the
+schema-configured OpenNLP analyzers.</p>
+<p>Fully resolved in Solr 10.1 by upgrading the bundled OpenNLP (via 
<code>lucene-analysis-opennlp</code>) to 2.5.9.</p>
+
+                <h4>References</h4>
+                <ul>
+                        <li>CVE: <a 
href="https://nvd.nist.gov/vuln/detail/CVE-2026-40682";>CVE-2026-40682</a></li>
+                </ul>
+            </article>
             <article id="cve-2026-34481" class="post panel radius">
                 <header class="post-header">
                     <h3 class="title"><a 
href="https://nvd.nist.gov/vuln/detail/CVE-2026-34481";>CVE-2026-34481</a>, 
Apache Log4j JSON Template Layout: Invalid JSON for non-finite floating-point 
values</h3>

Reply via email to