Skip to content

deps: bump Apache Tomcat 9.0.113 → 9.0.118 (resolves 6 published CVEs) #35793

@mbiuki

Description

@mbiuki

Summary

The bundled Apache Tomcat version pinned at parent/pom.xml:70 (<tomcat.version>9.0.113</tomcat.version>) is affected by 6 published Apache Tomcat CVEs. Apache has shipped fixes in versions through 9.0.117; 9.0.118 is the latest 9.0.x patch (released 2026-05-10). A single-line property bump resolves all 6.

Reported through Freshdesk ticket #37395 (security audit by an enterprise customer).

Affected CVEs (apply to 9.0.113)

CVE Severity (Apache) Affected range Fixed in
CVE-2026-29146 Important 9.0.13 – 9.0.115 9.0.116
CVE-2026-34500 Moderate 9.0.92 – 9.0.116 9.0.117
CVE-2026-34487 Low 9.0.13 – 9.0.116 9.0.117
CVE-2026-34483 Low 9.0.40 – 9.0.116 9.0.117
CVE-2026-25854 Low 9.0.0.M23 – 9.0.115 9.0.116
CVE-2026-24880 Low 9.0.0.M1 – 9.0.115 9.0.116

Source: https://tomcat.apache.org/security-9.html

Not affected (false positive in original report)

CVE-2025-66614 (Moderate, virtual-host client-certificate verification bypass) — Apache lists this as fixed in 9.0.113, so our bundled version already contains the fix. The original audit report flagged it but it does not apply here.

Required change

- <tomcat.version>9.0.113</tomcat.version>
+ <tomcat.version>9.0.118</tomcat.version>

Single-property bump in parent/pom.xml:70. The property propagates to:

  • bom/application/pom.xml — BOM declarations
  • dotCMS/pom.xml — direct dependency, docker base image (tomcat:${tomcat.version}-jdk11), distribution folder (dotserver/tomcat-${tomcat.version}), and remote tomcat zip URL
  • dotcms-integration/pom.xml
  • dotCMS/src/main/docker/original/docker-descriptor.xml

Bumping to 9.0.117 is sufficient to clear all 6 listed CVEs; 9.0.118 is recommended for currency. Tomcat 9.0.x is API-stable across patch versions, so no source-code changes are required.

Verification already done

  • Each reported CVE was cross-referenced against the Apache Tomcat 9 security advisory page — 6 valid, 1 already fixed in our current pin (CVE-2025-66614).
  • mvn dependency:tree confirms tomcat-catalina:9.0.113 is the resolved artifact in dotCMS/maven_dep_tree.txt (15 tomcat refs total in that module, 9 in dotcms-integration).

Action items

  • Bump tomcat.version to 9.0.118 in parent/pom.xml
  • Run full integration test suite — Tomcat patch versions are API-stable but worth verifying nothing in our embedded servlet/jasper/jdbc usage trips on the new build
  • Confirm dotcms/dotcms docker base pulls tomcat:9.0.118-jdk11 cleanly
  • Run Semgrep Supply Chain in CI and confirm CVE finding count for org.apache.tomcat:* drops to zero
  • Backport to LTS branches:
    • 24.12.27_lts (target: next LTS revision, currently at _v20)
    • 25.07.10_lts (target: next LTS revision, currently at _v9)
  • Cut a patch release on the evergreen line containing the bump
  • Coordinate with support to notify the affected customer once the patched release is available

Severity / SLA

  • CVE-2026-29146 is the only "Important"-rated item. Real-world exploitability is conditional: it affects clusters using Tomcat's EncryptInterceptor, which is not enabled by default in dotCMS. Still worth fixing promptly.
  • The remaining 5 are Low/Moderate per Apache's rating.
  • By our internal vulnerability-management SLA, this is High priority (one Important CVE + active enterprise customer pressure). Patch landed in main within 7 days, release cut within 14 days, LTS backports same window.

Notes

This is a routine SCA-driven dependency bump. The change is mechanical; the verification work is what takes time. Once the bump is in, the BOM and docker manifests rebuild automatically via the existing build pipeline.

Metadata

Metadata

Assignees

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions