Skip to content

Document Netty CVE's impact on Solr#206

Merged
epugh merged 3 commits into
apache:mainfrom
epugh:add_netty_cves
Jul 22, 2026
Merged

Document Netty CVE's impact on Solr#206
epugh merged 3 commits into
apache:mainfrom
epugh:add_netty_cves

Conversation

@epugh

@epugh epugh commented Jul 18, 2026

Copy link
Copy Markdown
Contributor

Solr is being flagged as having many Netty CVE's, but it turns out they are not applicable to Solr based on how we use Netty.

This PR documents the reason why.

image

@dsmiley dsmiley left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See my comments for some concerns.


Rant:

I've never seen a project with so many vulnerabilities as Netty. I've seen this over years. I want us to stop shipping Netty altogether.

It's not necessary to include netty on the OTEL side. If someone wants to risk vulnerabilities then they are welcome to drop in the JARS to accomplish that goal.

The ZK side is annoying and I've invested time in pursuing ZK severing its trivial Netty dependency that it shouldn't have ever had. https://issues.apache.org/jira/browse/ZOOKEEPER-4835 witch my PR.

`setUri()` can inject CRLF sequences and smuggle a second request. It affects Netty versions before
4.1.133.Final and 4.2.0.Alpha1–4.2.12.Final; it is fixed in 4.1.133.Final and 4.2.13.Final.

Solr first started shipping Netty as a transitive dependency in **9.2.0** (SOLR-16532), when the

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The narrative here speaks of Netty in an unqualified way, thus I'm thinking of any and all of Netty. Solr has shipped Netty (in whole or part) for much longer prior to 9.2.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fair enough... I'm still trying to get a sense of how much "explanation" to provide, and I will try and prune it back to more specifics.


Solr first started shipping Netty as a transitive dependency in **9.2.0** (SOLR-16532), when the
optional `opentelemetry` module was added; Solr versions before 9.2.0 don't include that module and
never carry Netty at all. Every release since 9.2.0 has pinned a vulnerable Netty: 4.1.114.Final

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ever carry Netty at all

Jeesh that is so false.

Comment on lines +25 to +27
only pulls in `netty-transport-native-unix-common`, never the Epoll transport. It's a transitive dependency of **Apache ZooKeeper**'s client library
(`org.apache.zookeeper:zookeeper`), which optionally supports a Netty-based connection socket for
both its client and server roles. Solr is **not affected**:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

correct...

Note: if someone chooses to use a SSL/TLS based ZooKeeper connections and follows ZooKeeper instructions to do so, then Netty will be used.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So, is this statement "solr not affected" correct, except that if someone choooses " to use a SSL/TLS based ZooKeeper connections and follows ZooKeeper instructions to do so, then Netty will be used."? I am looking more into the code to see if that is the case... i.e, i fyou configure zk that way, does it all work in solr.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

okay, digging in more, you can use ssl zk with solr, but it's a not default setup... updating statements. i've never done it, so didn't think oabut it...


Solr has shipped a vulnerable `netty-handler-proxy` since Netty first became a transitive
dependency in 9.2.0 (4.1.x through the 9.2.0–9.9.0 line, 4.2.x — `netty-handler-proxy-4.2.6.Final.jar`
— from 9.10.0/10.0.0 onward); Solr versions before 9.2.0 don't ship Netty at all. This artifact

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

don't ship Netty at all

Again, a totally false statement. I won't repeat this claim but I bet it repeats.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When a dependency comes transitively via OTEL (a major subsystem, popular project), I hope one day we can instead have transitive VEX statements instead of having to explain why the dependencies of our dependencies of our dependencies are not vulnerable.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah... I'm still feeling my way around VEX, and honestly, I think we, Solr, are early guinea pigs of shipping these files.... Also, looking back at soem of the original emails, there definitly is discussion about automated tooling that identifies these things.

@dsmiley

dsmiley commented Jul 18, 2026

Copy link
Copy Markdown
Contributor

@epugh
epugh merged commit 9180c4c into apache:main Jul 22, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants