Upgrade BouncyCastle to 1.85 and Tika to 3.3.2 across dotSAML plugin, core BOM, and Tika bundle (scanner hygiene — CVE-2025-14813 / CVE-2026-59638)
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 970
- Forks
- 486
- Avg merge
- 3d 33m
- Merged PRs (30d)
- 170
Description
Description
Reported via Freshdesk #38700 (customer on dotCMS 25.07.10 LTS, self-hosted).
A customer's dependency scanner flags outdated BouncyCastle and Tika copies across the SAML plugin and core, against CVE-2025-14813 and the newer CVE-2026-59638. This is a scanner-hygiene follow-up to the earlier core BouncyCastle fix (#35896 / #35901) and the Tika transitive-BC fix (#36139), neither of which touched the SAML plugin's own bundled copy.
Exploitability — already assessed, NOT reachable
Firsthand source review across dotCMS/core (release-25.07.10_lts_v17) and dotCMS/com.dotcms.dotsaml found no reachable/exploitable code path for either CVE:
- dotSAML plugin bundles
bcprov-jdk15on:1.54only (nobctls, nobcpkix— all transitives excluded), has zero directorg.bouncycastleimports, and never registers BC as a JCE provider (SamlInitializer.init()only runs OpenSAML'sJavaCryptoValidationInitializer, which validates algorithm availability but does not register a provider). - core registers no BC provider anywhere (
0Security.addProvider/BouncyCastleProvider); the only direct BC use isXmlToolCache.java(SHA1Digest+Base64for a Velocity cache key). No BC JSSE/TLS usage; TLS uses native OpenSSL / JDK SunJSSE. - CVE-2026-59638 (JSSE hostname CN-fallback, CVSS 9.3) lives in BC's
bctlsmodule, which is not shipped — not reachable.
This issue therefore tracks a dependency-hygiene upgrade to clear customer scanners, not an active-vulnerability remediation.
Current versions (release-25.07.10_lts_v17 = customer build)
com.dotcms.dotsaml(samlbundle25.06.3) bundlesbcprov-jdk15on:1.54- core
bouncy-castle.version=1.84(bcprov-jdk18on+bcpkix-jdk18on) - core
tika.version=3.3.1
Proposed change — BouncyCastle → 1.85, Tika → 3.3.2
- dotSAML plugin (
dotCMS/com.dotcms.dotsaml,pom.xml): migratebcprov-jdk15on:1.54→bcprov-jdk18on:1.85, then release a newcom.dotcms.samlbundlefrom currentmain(already Maven-based; the customer's supplied patch applies as-is). No separate legacy branch exists —25.06.3is commite44f7c3onmain's own history. - core
bom/application/pom.xml: bumpbouncy-castle.version1.84→1.85. - core
osgi-base/system-bundles/pom.xml: bumptika.version3.3.1→3.3.2, and update thecom.dotcms.samlbundlereference to the newly released version. - core
independent-projects/core-plugins/tika-plugin/pom.xml: bumptika.version3.3.1→3.3.2. - Apply the samlbundle reference + version bumps on both
mainand the 25.07.10 LTS branch (customer is on LTS).
Tika
3.3.2pulls BouncyCastle1.85transitively (confirmed via Maven Central), covering the Tika-bundled BC copy — same pattern as #36139.
Acceptance Criteria
- A
com.dotcms.samlbundlereleased frommainno longer bundlesbcprov-jdk15on:1.54; it bundlesbcprov-jdk18on:1.85(verify withunzip -lon the built jar). - core
bom/application/pom.xmlbouncy-castle.version=1.85; build resolvesbcprov-jdk18on+bcpkix-jdk18onat1.85. - core
tika.version=3.3.2in bothosgi-base/system-bundles/pom.xmlandindependent-projects/core-plugins/tika-plugin/pom.xml; the built Tika bundle contains BouncyCastle1.85. - core
osgi-base/system-bundles/pom.xmlreferences the new samlbundle release on bothmainand the 25.07.10 LTS branch. - A dependency scan of the built LTS image no longer flags BouncyCastle
1.54/1.84or Tika3.3.1against CVE-2025-14813 / CVE-2026-59638. - SAML login (authn + encrypted-assertion decrypt) still works after the BouncyCastle upgrade in the plugin.
Related
- Freshdesk: #38700 (this); precedent #37703 (Tika transitive BC)
- GitHub: #35896 / #35897 / #35901 (core CVE-2025-14813 fix), #36139 (Tika 3.2.2 → 3.3.1 for BC)
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the dependency declarations in com.dotcms.dotsaml/pom.xml, bom/application/pom.xml, osgi-base/system-bundles/pom.xml, and independent-projects/core-plugins/tika-plugin/pom.xml on both required branches. Build the samlbundle and Tika bundle, then use unzip -l and dependency resolution to verify the expected versions. Done means the old copies are absent, the new samlbundle reference is applied, and SAML authentication plus encrypted-assertion decryption still work.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- authentication, build-system, security
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 52/100