fix(security): remove repackaged dot.commons-io dependency (CVE-2024-47554) - #36740
fix(security): remove repackaged dot.commons-io dependency (CVE-2024-47554)#36740dsilvam wants to merge 2 commits into
Conversation
…47554) The dot.commons-io-2.0.1_2.jar is a namespace-shaded copy of Apache Commons IO 2.0.1 that still bundles the vulnerable XmlStreamReader class, so OWASP Dependency Check keeps flagging CVE-2024-47554 even though the standard commons-io:commons-io was already bumped to 2.14.0 in #35236. Nothing in the codebase imports the shaded com.dotcms.repackage.org.apache.commons.io namespace (verified across source, other repackaged jars, and OSGi export config), so the artifact is removed outright rather than repackaged. The standard commons-io:commons-io:2.14.0 on the classpath covers all real usage. Completes the outstanding commons-io action item from #35235. Fixes #36739 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Claude finished @dsilvam's task in 38s —— View job Review: PR #36740 — remove repackaged
|
| Claim | Verification | Result |
|---|---|---|
| Nothing imports the shaded namespace | grep com.dotcms.repackage.org.apache.commons.io across repo |
✅ 0 references |
| Modern lib remains on classpath | commons-io:commons-io still declared in dotCMS/pom.xml:600 + managed in bom/application/pom.xml:700 (v2.14.0) |
✅ retained |
| No OSGi/Felix export of the shaded namespace | grep felix configs + .properties for repackage.org.apache.commons.io |
✅ none found |
| Removes only the flagged jar | Diff deletes only the dependencyManagement entry (bom/application/pom.xml) and the <dependency> (dotCMS/pom.xml) |
✅ scoped |
Both removals are consistent: the dotCMS/pom.xml dependency relied on the version supplied by the dependencyManagement entry, and both are removed together. The change matches the dotCMS convention that version coordinates live in bom/application/pom.xml.
New Issues
No issues found.
The diff is a clean dependency removal. My verification agrees with the description — no code migration is needed, and the modern commons-io:commons-io:2.14.0 covers real usage.
One note (non-blocking, already flagged by the author): the description mentions a required cherry-pick to the LTS lines (24.07 / 24.12 / 25.07) that ship the flagged jar. Worth confirming those backports land so the CVE finding clears there too.
• dsilvam/FD-36256
|
Tick the box to add this pull request to the merge queue (same as
|
Proposed Changes
com.dotcms.lib:dot.commons-io:2.0.1_2dependency fromdotCMS/pom.xml.dependencyManagemententry frombom/application/pom.xml.This eliminates
dot.commons-io-2.0.1_2.jar— a namespace-shaded copy of Apache Commons IO 2.0.1 (com.dotcms.repackage.org.apache.commons.io.*) that still contains the vulnerableXmlStreamReader, causing OWASP Dependency Check to flag CVE-2024-47554. The standardcommons-io:commons-io:2.14.0(already on the classpath, bumped in #35236) covers all real usage. Completes the outstanding commons-io action item from #35235.No code migration was required: nothing in the repo imports the shaded namespace (verified across source, other
com.dotcms.librepackaged jars via bytecode scan, and OSGi/Felix export config — 0 references), and the shaded jar has 0 class overlap withcommons-io:commons-io:2.14.0, so removing it cannot break the modern library.Checklist
./mvnw install -pl :dotcms-core --am -DskipTestsBUILD SUCCESS; verifieddot.commons-io-*.jargone from assembled webapp andcommons-io-2.14.0.jarretained; local runtime smoke test (startup + navigation) cleanAdditional Info
dot.guavaremoval)🤖 Generated with Claude Code