Skip to content

Introduce Solr 10.0.0 orbit module#1333

Closed
KD23243 wants to merge 4 commits intowso2:masterfrom
KD23243:solr10
Closed

Introduce Solr 10.0.0 orbit module#1333
KD23243 wants to merge 4 commits intowso2:masterfrom
KD23243:solr10

Conversation

@KD23243
Copy link
Contributor

@KD23243 KD23243 commented Mar 9, 2026

Purpose

The purpose of this PR is to introduce an OSGi-compliant bundle for Apache Solr 10.0.0 into the WSO2 Orbit repository. This allows WSO2 Identity server to leverage Jetty 12 within the Carbon OSGi runtime.

Summary by CodeRabbit

  • New Features

    • Added support for Solr 10.0.0 as a managed module, enabling use of the updated search platform.
    • Provides an OSGi-compatible Solr/Lucene bundle for easier integration in modular runtimes.
  • Chores

    • Added packaging, shading, and distribution configuration to produce a deployable Solr artifact and publish it to releases.

@coderabbitai
Copy link

coderabbitai bot commented Mar 9, 2026

Walkthrough

Added a new Solr module solr/10.0.0.wso2v1 to the parent Maven project and introduced a module POM that defines an OSGi bundle for Solr/Lucene with extensive export/import packages, embedded dependencies, shading, and distribution settings.

Changes

Cohort / File(s) Summary
Parent POM Module Registration
pom.xml
Added solr/10.0.0.wso2v1 to the <modules> list, registering the new Solr module with the parent project.
Solr Module POM
solr/10.0.0.wso2v1/pom.xml
New Maven POM creating a bundle-packaged Solr artifact: extensive Bundle manifest entries (Export-Package, Import-Package, DynamicImport), Embed-Dependency and Include-Resource for in-bundle libs, maven-shade-plugin shading rules, many dependencies (Solr, Lucene, Jetty, Hadoop, ZooKeeper, OpenTelemetry, Prometheus, spatial4j, etc.), version properties, and DistributionManagement to WSO2 releases.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Poem

🐰 I hopped a module into view,

Bundled Solr and Lucene too,
Manifests tidy, shaded jars in tow,
A humble pom that lets things grow,
Hooray — the repo's ready to brew!

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description provides only the Purpose section with minimal content, missing all other required template sections including Goals, Approach, User stories, Release notes, Documentation, Training, Certification, and others. Complete the PR description by filling in the remaining required sections from the template: Goals, Approach, User stories, Release note, Documentation, Training, Certification, Marketing, test coverage, security checks, Samples, Related PRs, Migrations, Test environment, and Learning sections.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and specifically describes the main change: introducing a Solr 10.0.0 orbit module, which matches the primary changeset.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

🧹 Nitpick comments (2)
solr/10.0.0.wso2v1/pom.xml (2)

382-386: Consider using a property for hppc version.

Other dependencies use version properties, but hppc has a hardcoded version. For consistency and maintainability, define a property for it.

♻️ Suggested change

Add property:

<hppc.version>0.10.0</hppc.version>

Update dependency:

         <dependency>
             <groupId>com.carrotsearch</groupId>
             <artifactId>hppc</artifactId>
-            <version>0.10.0</version>
+            <version>${hppc.version}</version>
         </dependency>
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@solr/10.0.0.wso2v1/pom.xml` around lines 382 - 386, Add a Maven property for
the hppc version and use it in the dependency to match the rest of the project;
define a property named hppc.version (value 0.10.0) in the pom properties
section and replace the hardcoded <version>0.10.0</version> for the
com.carrotsearch:hppc dependency with ${hppc.version} so the dependency uses the
new property.

493-496: Consider upgrading maven-shade-plugin version.

Version 2.4 is from 2014. Newer versions (3.x) include bug fixes and improved handling of service resource transformations.

♻️ Suggested upgrade
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-shade-plugin</artifactId>
-                <version>2.4</version>
+                <version>3.5.1</version>
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@solr/10.0.0.wso2v1/pom.xml` around lines 493 - 496, The POM currently pins
the maven-shade-plugin to an old version ("maven-shade-plugin" with
<version>2.4</version>); update the plugin declaration to use a modern 3.x
release (for example 3.2.4 or latest stable) by changing the <version> value in
the maven-shade-plugin plugin block so the project benefits from service
resource transformation and bug fixes.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@solr/10.0.0.wso2v1/pom.xml`:
- Around line 382-386: Add a Maven property for the hppc version and use it in
the dependency to match the rest of the project; define a property named
hppc.version (value 0.10.0) in the pom properties section and replace the
hardcoded <version>0.10.0</version> for the com.carrotsearch:hppc dependency
with ${hppc.version} so the dependency uses the new property.
- Around line 493-496: The POM currently pins the maven-shade-plugin to an old
version ("maven-shade-plugin" with <version>2.4</version>); update the plugin
declaration to use a modern 3.x release (for example 3.2.4 or latest stable) by
changing the <version> value in the maven-shade-plugin plugin block so the
project benefits from service resource transformation and bug fixes.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: a295d511-e84f-48c2-b824-3dcec5c397b0

📥 Commits

Reviewing files that changed from the base of the PR and between 2e166ba and 666e27f.

📒 Files selected for processing (2)
  • pom.xml
  • solr/10.0.0.wso2v1/pom.xml

@KD23243 KD23243 changed the title Add solr/10.0.0.wso2v1 Introduce Solr 10.0.0 orbit module Mar 9, 2026
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

🧹 Nitpick comments (2)
solr/10.0.0.wso2v1/pom.xml (2)

382-386: Use a property for hppc version.

The version is hardcoded here while all other dependencies use properties. Define an hppc.version property for consistency and easier maintenance.

♻️ Suggested fix

Add to properties section:

<hppc.version>0.10.0</hppc.version>

Then update the dependency:

         <dependency>
             <groupId>com.carrotsearch</groupId>
             <artifactId>hppc</artifactId>
-            <version>0.10.0</version>
+            <version>${hppc.version}</version>
         </dependency>
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@solr/10.0.0.wso2v1/pom.xml` around lines 382 - 386, The hppc dependency
version is hardcoded; add a new Maven property named hppc.version (value 0.10.0)
in the <properties> section and update the <dependency> for
com.carrotsearch:hppc to use ${hppc.version} so it matches the other
dependency-version properties; locate the <dependency> block with artifactId
"hppc" and the project's <properties> to apply the change.

532-532: Remove unused property.

The http.version property is defined but not referenced anywhere in this POM. Consider removing it to avoid confusion.

♻️ Suggested fix
-        <http.version>[4.3.0,4.4.0)</http.version>
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@solr/10.0.0.wso2v1/pom.xml` at line 532, The POM defines an unused Maven
property named http.version which is not referenced anywhere; remove the
<http.version> property entry from the POM (delete the xml element defining
http.version) so the file no longer contains the unused property and avoids
confusion.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@solr/10.0.0.wso2v1/pom.xml`:
- Around line 382-386: The hppc dependency version is hardcoded; add a new Maven
property named hppc.version (value 0.10.0) in the <properties> section and
update the <dependency> for com.carrotsearch:hppc to use ${hppc.version} so it
matches the other dependency-version properties; locate the <dependency> block
with artifactId "hppc" and the project's <properties> to apply the change.
- Line 532: The POM defines an unused Maven property named http.version which is
not referenced anywhere; remove the <http.version> property entry from the POM
(delete the xml element defining http.version) so the file no longer contains
the unused property and avoids confusion.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 6fd69532-c03a-4fe1-b60a-3904e7b61123

📥 Commits

Reviewing files that changed from the base of the PR and between 666e27f and 1da675f.

📒 Files selected for processing (2)
  • pom.xml
  • solr/10.0.0.wso2v1/pom.xml
🚧 Files skipped from review as they are similar to previous changes (1)
  • pom.xml

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@solr/10.0.0.wso2v1/pom.xml`:
- Around line 455-466: Remove the trailing wildcard optional import from the
Import-Package section by deleting the "*;resolution:=optional" entry and
instead list explicit imports (with versions where appropriate) for any external
packages; if dynamic loading is required use a separate
<DynamicImport-Package>*</DynamicImport-Package> entry rather than a blanket
optional wildcard. Ensure changes are applied to the Import-Package block
(referenced by the Import-Package element) and mirror the explicit versioned
import style used for org.apache.commons.io and org.noggit.
- Around line 234-238: The pom currently pulls org.apache.zookeeper:zookeeper
via the property version.zookeeper set to 3.9.4; update the version.zookeeper
Maven property to "3.9.5" so the dependency block that references
${version.zookeeper} (org.apache.zookeeper:zookeeper) uses ZooKeeper 3.9.5 which
contains fixes for the reported CVEs.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 10e3fd0c-aaaf-4336-8d10-d7be7d20d163

📥 Commits

Reviewing files that changed from the base of the PR and between 1da675f and 47490c1.

📒 Files selected for processing (1)
  • solr/10.0.0.wso2v1/pom.xml

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@solr/10.0.0.wso2v1/pom.xml`:
- Around line 787-788: The Include-Resource entry duplicates the lucene-core
artifact which is already added via Embed-Dependency (inline=false) and
therefore appears both as an embedded JAR on the Bundle-ClassPath and as
unpacked contents; remove the lucene-core entry from the Include-Resource
section so lucene-core remains only as the embedded dependency (leave other
entries like javassist intact) and ensure no other Include-Resource lines
reintroduce lucene-core.
- Line 892: The pom property <jackson.version> should be bumped from 2.18.2 to
2.18.6 (or later) to address GHSA-72hv-8253-57qq; locate the <jackson.version>
property in the POM (currently "2.18.2") and update its value to "2.18.6" (or a
newer 2.18.x release), then rebuild to ensure the updated Jackson artifacts are
pulled into the build.
- Around line 258-262: The POM currently depends on
org.apache.zookeeper:zookeeper but not on the split artifact zookeeper-jute; add
a direct dependency for groupId org.apache.zookeeper, artifactId zookeeper-jute,
version ${version.zookeeper} and then add that coordinate to the
maven-bundle-plugin's Embed-Dependency list (the same place where other
Embed-Dependency entries are declared) so org.apache.jute.* classes are embedded
into the Solr bundle at build time.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: d44de283-a2cb-42e4-8114-d5806f65d8cc

📥 Commits

Reviewing files that changed from the base of the PR and between 47490c1 and 998448e.

📒 Files selected for processing (1)
  • solr/10.0.0.wso2v1/pom.xml

Comment on lines +258 to +262
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>${version.zookeeper}</version>
</dependency>
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

# Find and examine the pom.xml file
find . -path "*/solr/10.0.0.wso2v1/pom.xml" -type f

Repository: wso2/orbit

Length of output: 82


🏁 Script executed:

# Read the pom.xml file to examine lines around 258-262 and 763-765
wc -l ./solr/10.0.0.wso2v1/pom.xml

Repository: wso2/orbit

Length of output: 86


🏁 Script executed:

# Examine the pom.xml around lines 258-262 and 763-765
echo "=== Lines 250-270 ===" && sed -n '250,270p' ./solr/10.0.0.wso2v1/pom.xml
echo -e "\n=== Lines 755-775 ===" && sed -n '755,775p' ./solr/10.0.0.wso2v1/pom.xml

Repository: wso2/orbit

Length of output: 2148


🏁 Script executed:

# Find the zookeeper version and check if zookeeper-jute is mentioned anywhere
echo "=== Checking zookeeper version ===" && grep -n "version.zookeeper" ./solr/10.0.0.wso2v1/pom.xml
echo -e "\n=== Checking if zookeeper-jute is mentioned ===" && grep -n "zookeeper-jute" ./solr/10.0.0.wso2v1/pom.xml

Repository: wso2/orbit

Length of output: 250


🏁 Script executed:

# Check the entire pom.xml structure around the Embed-Dependency section to understand the full context
sed -n '745,785p' ./solr/10.0.0.wso2v1/pom.xml

Repository: wso2/orbit

Length of output: 2768


🌐 Web query:

ZooKeeper 3.9.4 Maven artifact zookeeper-jute separate dependency

💡 Result:

In ZooKeeper 3.9.4, Jute is published as its own Maven artifact:

<dependency>
  <groupId>org.apache.zookeeper</groupId>
  <artifactId>zookeeper-jute</artifactId>
  <version>3.9.4</version>
</dependency>

[1]

If you already depend on org.apache.zookeeper:zookeeper:3.9.4, you typically don’t need to add it manually, because zookeeper declares zookeeper-jute as a compile dependency (so it should come transitively unless you’re excluding it / using dependency management that omits transitives). [2]

Sources
[1] Maven Central (Sonatype) artifact page for org.apache.zookeeper:zookeeper-jute:3.9.4 (central.sonatype.com)
[2] org.apache.zookeeper:zookeeper:3.9.4 dependency list showing zookeeper-jute:3.9.4 (mvnrepository.com)

Citations:


🏁 Script executed:

# Check the Felix bundle plugin configuration to see if Embed-Transitive is enabled
echo "=== Looking for Felix bundle plugin configuration ===" && sed -n '700,900p' ./solr/10.0.0.wso2v1/pom.xml | grep -A 50 "maven-bundle-plugin"

Repository: wso2/orbit

Length of output: 107


🏁 Script executed:

# Search for maven-bundle-plugin across the entire file
grep -n "maven-bundle-plugin" ./solr/10.0.0.wso2v1/pom.xml

Repository: wso2/orbit

Length of output: 118


🏁 Script executed:

# Examine the maven-bundle-plugin configuration
sed -n '680,800p' ./solr/10.0.0.wso2v1/pom.xml

Repository: wso2/orbit

Length of output: 8395


🏁 Script executed:

# Check if Embed-Transitive is mentioned anywhere
grep -n "Embed-Transitive" ./solr/10.0.0.wso2v1/pom.xml

Repository: wso2/orbit

Length of output: 36


🌐 Web query:

Felix maven-bundle-plugin Embed-Dependency Embed-Transitive transitive dependencies

💡 Result:

  • <Embed-Dependency> tells the Felix maven-bundle-plugin to embed matched Maven project dependencies into your bundle by generating corresponding Include-Resource and Bundle-ClassPath entries for bnd. You can match/filter by groupId, artifactId, version, scope, type, classifier, optional, and you can also inline=true. [1]
  • By default, the plugin only considers direct dependencies for embedding. To also consider the full transitive dependency set, enable: <Embed-Transitive>true</Embed-Transitive>. Then your Embed-Dependency patterns apply across transitives too. [1]
  • The bnd documentation for the Felix plugin summarizes this as: it can include Maven transitive dependencies in the JAR and put them on the Bundle-ClassPath. [2]

Example (embed all compile+runtime deps and their transitives):

<instructions>
  <Embed-Dependency>*;scope=compile|runtime</Embed-Dependency>
  <Embed-Transitive>true</Embed-Transitive>
</instructions>

Sources: [1] Apache Felix maven-bundle-plugin docs (Embedding dependencies / Embed-Transitive) (felix.apache.org), [2] bnd “Apache Felix Maven Bundle Plugin” (Embed-Dependency overview) (bnd.bndtools.org)

Citations:


🌐 Web query:

ZooKeeper 3.9.4 zookeeper-jute org.apache.jute at runtime

💡 Result:

In ZooKeeper 3.9.4, the Jute classes (org.apache.jute.*) are shipped in the separate artifact org.apache.zookeeper:zookeeper-jute (“ZooKeeper jute”), and org.apache.zookeeper:zookeeper:3.9.4 declares it as a compile dependency. If you get ClassNotFoundException: org.apache.jute... at runtime, it means zookeeper-jute isn’t on your runtime classpath (often due to provided/compileOnly, an exclusion, or packaging/shading not pulling transitive deps). [1][2]

Fix (ensure it’s present at runtime)

Maven

<dependency>
  <groupId>org.apache.zookeeper</groupId>
  <artifactId>zookeeper-jute</artifactId>
  <version>3.9.4</version>
</dependency>

(Or include org.apache.zookeeper:zookeeper:3.9.4 without marking it provided, and don’t exclude zookeeper-jute.) [1][2]

Gradle

implementation("org.apache.zookeeper:zookeeper-jute:3.9.4")

(or implementation("org.apache.zookeeper:zookeeper:3.9.4") and make sure transitive deps are packaged). [1][2]

If you tell me your build tool (Maven/Gradle/SBT) and the exact runtime error + how you run/package (fat jar, Spring Boot, app server, etc.), I can point to the specific place it’s getting dropped.


Add zookeeper-jute as a direct dependency and include it in the Embed-Dependency list.

Since ZooKeeper 3.9.4 publishes zookeeper-jute as a separate Maven artifact and Felix's maven-bundle-plugin only embeds direct dependencies (unless Embed-Transitive is enabled, which it is not here), the Solr bundle will not embed org.apache.jute.* classes. This creates a runtime dependency on another bundle to provide these classes.

Suggested fix
         <dependency>
             <groupId>org.apache.zookeeper</groupId>
             <artifactId>zookeeper</artifactId>
             <version>${version.zookeeper}</version>
         </dependency>
+        <dependency>
+            <groupId>org.apache.zookeeper</groupId>
+            <artifactId>zookeeper-jute</artifactId>
+            <version>${version.zookeeper}</version>
+        </dependency>
...
                             caffeine;scope=compile|runtime;inline=false,
                             zookeeper;scope=compile|runtime;inline=false,
+                            zookeeper-jute;scope=compile|runtime;inline=false,
                             metrics-core;scope=compile|runtime;inline=false,
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@solr/10.0.0.wso2v1/pom.xml` around lines 258 - 262, The POM currently depends
on org.apache.zookeeper:zookeeper but not on the split artifact zookeeper-jute;
add a direct dependency for groupId org.apache.zookeeper, artifactId
zookeeper-jute, version ${version.zookeeper} and then add that coordinate to the
maven-bundle-plugin's Embed-Dependency list (the same place where other
Embed-Dependency entries are declared) so org.apache.jute.* classes are embedded
into the Solr bundle at build time.

Comment on lines +787 to +788
lucene-core;scope=compile|runtime;inline=false,
javassist;scope=compile|runtime;inline=false,
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

# First, let's examine the pom.xml file structure around the mentioned lines
head -n 850 solr/10.0.0.wso2v1/pom.xml | tail -n 100

Repository: wso2/orbit

Length of output: 6750


🏁 Script executed:

# Get a broader view of the Embed-Dependency and Include-Resource sections
sed -n '750,850p' solr/10.0.0.wso2v1/pom.xml

Repository: wso2/orbit

Length of output: 6833


🏁 Script executed:

# Check the full context of lines around 787-788 and 823-826
sed -n '770,830p' solr/10.0.0.wso2v1/pom.xml | cat -n

Repository: wso2/orbit

Length of output: 4887


Remove duplicate lucene-core from Include-Resource.

lucene-core is already embedded via Embed-Dependency with inline=false (line 787-788), which includes it as a bundled JAR on the Bundle-ClassPath. The Include-Resource directive at line 823-826 then extracts and unpacks the same artifact inline, resulting in the content being present twice in the final bundle: once as the embedded JAR and again as unpacked contents.

Suggested fix

Remove the lucene-core entry from Include-Resource:

                        <Include-Resource>
                            `@solr-core-`${version.solr}.jar!/*,
-                           `@lucene-core-`${version.lucene}.jar!/*,
                        </Include-Resource>
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@solr/10.0.0.wso2v1/pom.xml` around lines 787 - 788, The Include-Resource
entry duplicates the lucene-core artifact which is already added via
Embed-Dependency (inline=false) and therefore appears both as an embedded JAR on
the Bundle-ClassPath and as unpacked contents; remove the lucene-core entry from
the Include-Resource section so lucene-core remains only as the embedded
dependency (leave other entries like javassist intact) and ensure no other
Include-Resource lines reintroduce lucene-core.

<guava.version>33.4.0-jre</guava.version>

<!-- NEW: Jackson -->
<jackson.version>2.18.2</jackson.version>
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

find . -name "pom.xml" -type f | head -20

Repository: wso2/orbit

Length of output: 750


🏁 Script executed:

rg "jackson\.version" -A 1 -B 1

Repository: wso2/orbit

Length of output: 50366


🌐 Web query:

GHSA-72hv-8253-57qq jackson-core vulnerability async-parser DoS

💡 Result:

GHSA-72hv-8253-57qq (jackson-core) — async-parser DoS

  • Issue: Jackson Core’s non-blocking / async JSON parser can bypass StreamReadConstraints.maxNumberLength (default 1000 chars). An attacker can send JSON containing extremely long numeric tokens, causing excessive memory allocation and CPU work → Denial of Service (DoS). The synchronous parser enforces the limit correctly. [1][2]
  • Affected: com.fasterxml.jackson.core:jackson-core >= 2.0.0 and < 2.18.6, plus >= 2.19.0 and < 2.21.1, and >= 3.0.0 and < 3.1.0. [1][2]
  • Fixed versions: 2.18.6, 2.21.1, 3.1.0. [1][2]
  • Mitigation: Upgrade to a fixed version. If you don’t use the async/non-blocking parser API, you’re typically not exposed to this specific constraint-bypass path. [1][2]

Sources: [1] GitLab Advisory Database, GHSA-72hv-8253-57qq. [2] OSV entry for GHSA-72hv-8253-57qq.


🏁 Script executed:

cat -n solr/10.0.0.wso2v1/pom.xml | sed -n '890,895p'

Repository: wso2/orbit

Length of output: 273


Update jackson.version to 2.18.6 or later.

GHSA-72hv-8253-57qq is a DoS vulnerability in Jackson Core's async JSON parser that can bypass StreamReadConstraints.maxNumberLength, allowing extremely long numeric tokens to cause excessive memory allocation. All versions before 2.18.6 in the 2.18.x line are affected. Since this property drives the bundled Jackson artifacts, this must be updated to 2.18.6 before release.

Suggested fix
-        <jackson.version>2.18.2</jackson.version>
+        <jackson.version>2.18.6</jackson.version>
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
<jackson.version>2.18.2</jackson.version>
<jackson.version>2.18.6</jackson.version>
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@solr/10.0.0.wso2v1/pom.xml` at line 892, The pom property <jackson.version>
should be bumped from 2.18.2 to 2.18.6 (or later) to address
GHSA-72hv-8253-57qq; locate the <jackson.version> property in the POM (currently
"2.18.2") and update its value to "2.18.6" (or a newer 2.18.x release), then
rebuild to ensure the updated Jackson artifacts are pulled into the build.

@KD23243 KD23243 closed this Mar 20, 2026
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.

1 participant