[fix][sec][branch-4.2] Upgrade BouncyCastle to 1.85 and BouncyCastle FIPS to 2.0.2 to address CVEs - #26370
Open
lhotari wants to merge 1 commit into
Open
[fix][sec][branch-4.2] Upgrade BouncyCastle to 1.85 and BouncyCastle FIPS to 2.0.2 to address CVEs#26370lhotari wants to merge 1 commit into
lhotari wants to merge 1 commit into
Conversation
…FIPS to 2.0.2 to address CVEs
BouncyCastle published a large coordinated security release on 2026-08-03. 1.85 is the fixed
version for the non-FIPS line, and branch-4.2 pins 1.84, so the server and shell distributions
are exposed to it.
Non-FIPS (shipped in the distributions):
- bcpkix-jdk18on / bcutil-jdk18on 1.84 -> 1.85
- bcprov-jdk18on 1.84 -> 1.85.2
1.85.2 is a provider-only patch release; it was not published for bcpkix-jdk18on or
bcutil-jdk18on, so bcprov-jdk18on no longer inherits ${bouncycastle.version}.
Relevant fixes in 1.85 for the artifacts shipped here include CVE-2026-8763 (Name Constraints
bypass via a trailing dot in rfc822Name/URI) and CVE-2026-58062 (stapled OCSP response accepted
without binding to the checked certificate), both CVSS 9.3, plus CVE-2026-59639, CVE-2026-59645,
CVE-2026-12802, CVE-2026-14682, CVE-2026-58059, CVE-2026-58061 and others. bctls-jdk18on is not
used on this branch, so CVE-2026-59638 does not apply.
FIPS (test scope only; bc-fips is not in any distribution):
- bc-fips 2.0.1 -> 2.0.2
- bcpkix-fips 2.0.11 -> 2.0.12
- bcutil-fips 2.0.6 -> 2.0.7
These are the vendor's minimum fixed versions for the 2.0.x line and stay within it, so the
FIPS 140-3 certificate line is unchanged (CMVP apache#4743, which validates bc-fips 2.0.0).
Assisted-by: Claude Code (Opus 5)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Motivation
BouncyCastle published a large coordinated security release on 2026-08-03. 1.85 is the fixed
version for the non-FIPS line, and
branch-4.2pins 1.84, so the server and shell distributionsare exposed to it.
The two most severe issues affecting the artifacts actually shipped here are both certificate
validation bypasses, CVSS 9.3:
rfc822Nameand URIAlso fixed by the same bump, among others: CVE-2026-59639
(CMS
verifySignaturesreturns true forSignedDatawith zero signers, 8.7),CVE-2026-59645 (OER parser recurses without a depth
limit, 8.7), CVE-2026-12802 (CMS
AuthEnvelopedDatadoes not enforce tag length on decryption, 8.7),CVE-2026-14682 (unbounded up-front allocation on a
definite-length read, 8.7), CVE-2026-58059
(quadratic-time X.500 DN stringification, 8.7) and
CVE-2026-58061 (CCM-family modes write plaintext to
the caller buffer before the tag check, 8.7).
bctls-jdk18onis not used on this branch, soCVE-2026-59638 (JSSE hostname verifier CN-fallback
enabled by default, 9.3) does not apply.
Note that these advisories are currently still Undergoing Analysis at NVD and are not yet mapped
to Maven coordinates in OSV / the GitHub Advisory Database, so scanners querying those sources will
not flag 1.84 today. The applicability above was read from the NVD records directly.
This is the
branch-4.2counterpart of the master-branch upgrade in #26349.Modifications
pom.xml:bouncycastle.version(bcpkix-jdk18on, bcutil-jdk18on)bouncycastle.bcprov-jdk18on.version${bouncycastle.version}bouncycastle.bc-fips.versionbouncycastle.bcpkix-fips.versionbouncycastle.bcutil-fips.versionPlus the corresponding jar names in the server and shell distribution
LICENSE.bin.txtfiles.bcprov-jdk18onno longer inherits${bouncycastle.version}. BouncyCastle published aprovider-only patch release, 1.85.2, that was not released for
bcpkix-jdk18onorbcutil-jdk18on— those remain at 1.85 on Maven Central — so the shared property can no longerexpress all three.
bcpkix-jdk18on:1.85declaresbcutil-jdk18on:1.85, and all three are pinned independencyManagement, so the resolved set is bcprov 1.85.2 / bcpkix 1.85 / bcutil 1.85 — which iswhat both
LICENSE.bin.txtfiles now list.On the FIPS bumps. These are test-scope only —
bc-fipsis in no distribution and in noLICENSE.bin.txt— but the current pins are below the vendor's fixed versions for the same batch(
bc-fips 2.0.1is affected by both 9.3s above,bcpkix-fips 2.0.11by CVE-2026-59639 and fourothers,
bcutil-fips 2.0.6by CVE-2026-59645), so they are brought up too. The bumps stay withinthe 2.0.x line, so the FIPS 140-3 certificate line is unchanged:
CMVP #4743,
Active, sunset 2029-07-28, which validates
bc-fips-2.0.0.jar. (As explained in #26349, no certifiedbc-fipsjar is free of known CVEs, because BouncyCastle certifies the base release and shipssecurity fixes in the later "Provider (patched)" releases; 2.0.0 itself has 11. The previous 2.0.1
pin was not a certified version either, so this changes nothing on that axis.)
Verifying this change
This is a dependency version change with no code changes; it is covered by the existing test suite,
and the Build and License check job verifies the
LICENSE.bin.txtentries against the actualassembled distributions.
Does this pull request potentially affect one of the following parts:
The non-FIPS BouncyCastle jars bundled in the server and shell distributions change version.