p PatchFirst

PatchFirst · Vulnérabilités récentes

Vulnérabilités de bouncycastle

Vulnérabilités publiées pour bouncycastle au cours des 30 derniers jours : 14. Présentes dans le catalogue KEV : 0.

Filtrer les vulnérabilités
Effacer les filtres

Vulnérabilités : 83

  1. CVE-2026-71890

    Élevée · CVSS 8.7EPSS 0,25%Correctif disponible

    MLS external commit can remove an arbitrary group member

    In Bouncy Castle for Java before 1.86, validation of an MLS (RFC 9420) external commit's proposal list, org.bouncycastle.mls.protocol.Group.validateExternalCachedProposals, counted the proposals by type and bounded the removed leaf index but never established that the removed leaf had anything to do with the joiner. RFC 9420 sec. 12.2 permits at most one Remove proposal in an external commit, with which the joiner removes an old version of themselves, and requires that where one is present the LeafNode in the commit's path field meet the criteria it would have to meet in an Update for the removed leaf, in particular that its credential presen

    • Mettez à jour vers 1.86-1
    Publication Mise à jour
  2. CVE-2026-71891

    Élevée · CVSS 7.1EPSS 0,17%Correctif disponible

    BLS12-381 key validation accepts a public key built on a foreign curve

    In Bouncy Castle for Java before 1.86, BLS12_381BasicScheme.keyValidate, and so BLSPublicKeyParameters and every BasicScheme, MessageAugmentation and ProofOfPossession verify and aggregateVerify that gate on it, accepted a public key built on a foreign ECCurve that merely shares BLS12-381's field characteristic. The prime-order subgroup check trusts a point's own curve to name its cofactor, since ECPoint.satisfiesOrder returns true outright when the curve's cofactor is one, so a point on a curve with a different equation and a cofactor forged to one passed keyValidate despite not being a G1 point at all. In BC's pairing implementation such a

    • Mettez à jour vers 1.86-1
    Publication Mise à jour
  3. CVE-2026-18040

    Moyenne · CVSS 5.9EPSS 0,11%Correctif disponible

    HQC leaks private key information through secret-indexed GF(2^8) tables and a secret-dependent fixed-weight sampler

    In Bouncy Castle for Java before 1.86, HQC leaked secret-derived data through two side channels: its GF(2^8) arithmetic used lookup tables indexed by field elements, making the cache line touched a function of the operand, and its fixed-weight support sampler left its duplicate scan as soon as a collision was found and stored accepted positions at a secret index. Both run on secret inputs during encapsulation and decapsulation, and the sampler re-expands the secret key from its seed on every decapsulation, so an attacker able to observe cache behaviour or decapsulation timing can recover information about the HQC private key. The field arithm

    • Mettez à jour vers 1.86-1
    Publication Mise à jour
  4. CVE-2026-71885

    Critique · CVSS 9.2EPSS 0,2%Correctif disponible

    MLS X.509 credential not bound to the LeafNode signature key

    In Bouncy Castle for Java before 1.86, the Messaging Layer Security (MLS, RFC 9420) implementation did not bind an X.509 credential to a LeafNode's signature_key. LeafNode.verify() checked a leaf's signature against the signature_key carried in the leaf itself, while the credential's X.509 certificate chain was stored but never parsed or validated, so the end-entity certificate's public key was never required to match signature_key as RFC 9420 sec. 5.3 requires. A party could therefore present another party's certificate as its credential while signing the leaf, and the enclosing KeyPackage, with an unrelated key, and be accepted under that o

    • Mettez à jour vers 1.86-1
    Publication Mise à jour
  5. CVE-2026-71886

    Élevée · CVSS 8.2EPSS 0,17%Correctif disponible

    OpenPGP certification accepted from a subkey without certification authority

    In Bouncy Castle for Java before 1.86, the high-level OpenPGP certificate API accepted a third-party certification or trust delegation from any component key of the issuing certificate, without requiring that component to have been granted the authority to certify. OpenPGPCertificate.getCertificationBy() and getDelegationBy() resolve a third-party signature by matching its issuer key identifier against every key of the third-party certificate, then verify the issuing component's binding chain and the signature itself; nothing checked that the issuing component carried the RFC 9580 sec. 5.2.3.29 certification key flag (CERTIFY_OTHER) when the

    • Mettez à jour vers 1.86-1
    Publication Mise à jour
  6. CVE-2026-71887

    Élevée · CVSS 8.2EPSS 0,09%Correctif disponible

    OpenPGP data signature accepted from a signing subkey without cross-certification

    In Bouncy Castle for Java before 1.86, the high-level OpenPGP API accepted a data signature made by a signing subkey whose Subkey Binding signature carried no embedded Primary Key Binding (cross-certification) signature, in the case where that binding omits a Key Flags subpacket. RFC 9580 sec. 5.2.1.8 and sec. 10.1.3 require the embedded Primary Key Binding signature on any subkey that can issue signatures; it is the subkey's own statement that it belongs to the primary key it is bound under. OpenPGPCertificate resolved the subkey's key flags two different ways. isSigningKey() goes through getKeyFlags() and getApplyingSubpacket(), which falls

    • Mettez à jour vers 1.86-1
    Publication Mise à jour
  7. CVE-2026-71888

    Élevée · CVSS 8.7EPSS 0,11%Correctif disponible

    CMS AuthenticatedData exposes attacker-inserted authAttrs when digestAlgorithm is absent

    In Bouncy Castle for Java before 1.86, the streaming CMS AuthenticatedData parser accepted a message whose digestAlgorithm and authAttrs fields disagreed about whether authenticated attributes were present. RFC 5652 sec. 9.1 pairs the two, requiring that authAttrs be present whenever digestAlgorithm is, and sec. 9.2 makes the MAC cover the DER encoding of authAttrs when they are present and the eContent OCTET STRING directly when they are not. CMSAuthenticatedDataParser has to choose between those two in its constructor, before it can reach authAttrs, which comes later in the SEQUENCE, so it chose on digestAlgorithm alone: for a message with

    • Mettez à jour vers 1.86-1
    Publication Mise à jour
  8. CVE-2026-71889

    Élevée · CVSS 8.7EPSS 0,17%Correctif disponible

    PKIXCertPathReviewer does not apply X.509 name constraints to the target certificate

    In Bouncy Castle for Java before 1.86, neither copy of PKIXCertPathReviewer - org.bouncycastle.pkix.jcajce.PKIXCertPathReviewer nor the legacy org.bouncycastle.x509.PKIXCertPathReviewer - applied X.509 name constraints to the end-entity certificate. checkNameConstraints walked the path with a loop bound of index greater than zero, which is the bound the CA-only steps require, but index zero is the target certificate under the standard CertPath ordering, so the permitted and excluded subtree checks of RFC 5280 sec. 6.1.3 (b) and (c) never ran against the leaf's subject DN or its subjectAltName. A chain whose leaf violated a NameConstraints ext

    • Mettez à jour vers 1.86-1
    Publication Mise à jour
  9. CVE-2026-71892

    Moyenne · CVSS 6.9EPSS 0,17%Correctif disponible

    CMS key-transport recipient key-size validation never runs for RFC 9709 HKDF-derived keys

    In Bouncy Castle for Java before 1.86, the opt-in key-size validation on CMS key-transport recipients, org.bouncycastle.cms.jcajce.JceKeyTransRecipient.setKeySizeValidation(true), never ran for a message using RFC 9709 content-encryption key derivation (id-alg-cek-hkdf-sha256). The branch that should have selected the actual content-encryption algorithm carried in the key derivation AlgorithmIdentifier's parameters compared the encrypted-key byte array against the id-alg-cek-hkdf-sha256 object identifier, a comparison between a byte array and an ASN1ObjectIdentifier that is false for every possible input, so the check fell through to a key-si

    • Mettez à jour vers 1.86-1
    Publication Mise à jour
  10. CVE-2026-85515

    Élevée · CVSS 8.2EPSS 0,16%Correctif disponible

    OpenPGP message truncation not reported, bypassing the SEIPDv1 integrity check

    In Bouncy Castle for Java before 1.86, a truncated OpenPGP encrypted message was accepted with no error reported, and on the SEIPD version 1 path with no integrity check performed at all. RFC 9580 sec. 13.7 permits an implementation to release the cleartext of the fully authenticated chunks when streaming but requires it to indicate a clear error as soon as the truncation is detected, and to report suspect integrity when it discovers malleable ciphertext. The truncation was detected and then discarded: when a message is truncated but the length field of the enclosing packet is left unchanged, BCPGInputStream.PartialInputStream raises an EOFEx

    • Mettez à jour vers 1.86-1
    Publication Mise à jour
  11. CVE-2026-97873

    Moyenne · CVSS 5.3EPSS 0,26%Correctif disponible

    Legacy PBES1 and PKCS#12 PBE iteration count honoured unbounded in the raw JCA provider

    In Bouncy Castle for Java before 1.86, the raw JCA provider's legacy PBES1 (PKCS#5 scheme 1) and PKCS#12 PBE families ran their password-based key derivation with an iteration count taken from untrusted input without bounding it, so a small input could dictate an arbitrary amount of work before anything could be verified. The AlgorithmParameters implementations (PKCS12PBE and its object identifier aliases, and PBKDF1) accepted any count from an encoded PKCS12PBEParams or PBEParameter, narrowing a value beyond the int range with intValue(), and every Cipher, Mac and SecretKeyFactory in these families derived with whatever count it was given, i

    • Mettez à jour vers 1.86-1
    Publication Mise à jour
  12. CVE-2026-18036

    Élevée · CVSS 8.2EPSS 0,28%Correctif disponible

    NTRU leaks private key information by reducing secret values with a non-constant-time integer division

    In Bouncy Castle for Java before 1.86, NTRU reduced secret values with the % operator in three helpers whose reference implementations are deliberately division-free, so each reduction was carried out by an integer division whose latency depends on the secret operand. Polynomial.modQ divided by a variable divisor, which a compiler cannot strength-reduce to a multiply the way it can a constant one, so it emitted a division on every call including on the decapsulation path where the dividend derives from the private key; Polynomial.mod3 and NTRUSampling.mod3 divided the secret key polynomials f and g during key generation, the message polynomia

    • Mettez à jour vers 1.86-1
    Publication Mise à jour
  13. CVE-2026-17508

    Moyenne · CVSS 5.3EPSS 0,42%Correctif disponible

    Password-based KDF cost parameters honoured unbounded from untrusted input across the remaining PBE entry points

    In Bouncy Castle for Java before 1.86, several password-based key derivation entry points ran the KDF with cost parameters taken from the untrusted input being processed, without bounding them, so a small input could dictate an arbitrary amount of work before any password or integrity check could reject it. The affected paths are the RFC 9579 PBMAC1 MAC calculator builders, which took the PBKDF2 iteration count and derived-key length straight out of PBMAC1Params (JcePBMac1CalculatorBuilder, and PKCS12PBEUtils.createPBMac1Calculator reached from PKCS12PfxPdu.isMacValid); the scrypt parallelization parameter p in the PKCS#8 and PKCS#12 cost gua

    • Mettez à jour vers 1.86-1
    Publication Mise à jour
  14. CVE-2026-17507

    Élevée · CVSS 8.7EPSS 0,42%Correctif disponible

    MLS membership checks compare a uint32 leaf_index as signed, admitting an out-of-range sender

    In Bouncy Castle for Java before 1.86, the MLS implementation (org.bouncycastle.mls) holds RFC 9420's uint32 leaf_index in a signed int, so a wire value with the top bit set decodes to a negative number. That is a legitimate encoding rather than malformed input, and it must still decode, since the MLS interop test vectors round-trip the full range. GroupKeySet.SecretTree.hasLeaf and Group.validateRemove compared the decoded value directly against the tree's leaf count, and a signed comparison treats any negative int as less than a positive bound, so an out-of-range sender passed the membership check. In the hasLeaf case the SenderData of an u

    • Mettez à jour vers 1.86-1
    Publication Mise à jour
  15. CVE-2026-13586

    Moyenne · CVSS 5.3EPSS 0,62%Correctif disponible

    PKCS#12 MAC and bag-decryption KDF iteration-count bound (DoS)

    In Bouncy Castle for Java before 1.85, PKCS#12 MAC and bag-decryption KDF iteration-count bound (DoS). This issue also affects Bouncy Castle for Java LTS before 2.73.12, and Bouncy Castle for Java FIPS (BC-FJA) before bc-fips 1.0.2.7 (1.0.X series), 2.0.2 (2.0.X series) and 2.1.3 (2.1.X series).

    • Mettez à jour vers 1.86-1
    Publication Mise à jour
  16. CVE-2026-13506

    Élevée · CVSS 8.7EPSS 0,49%Correctif disponible

    Lazy ASN.1 sequence forcing resets nesting-depth guard

    In Bouncy Castle for Java before 1.85, Lazy ASN.1 sequence forcing resets nesting-depth guard. This issue also affects Bouncy Castle for Java LTS before 2.73.12, and Bouncy Castle for Java FIPS (BC-FJA) before bc-fips 1.0.2.7 (1.0.X series), 2.0.2 (2.0.X series) and 2.1.3 (2.1.X series).

    • Mettez à jour vers 1.86-1
    Publication Mise à jour
  17. CVE-2026-12817

    Élevée · CVSS 8.7EPSS 0,17%Correctif disponible

    OpenPGP AEAD decryption skips final tag on chunk-aligned data

    In Bouncy Castle for Java before 1.85, OpenPGP AEAD decryption skips final tag on chunk-aligned data. This issue also affects Bouncy Castle for Java LTS before 2.73.12, and Bouncy Castle for Java FIPS (BC-FJA) before bcpg-fips 1.0.13 (1.0.X series), 2.0.13 (2.0.X series) and 2.1.13 (2.1.X series).

    • Mettez à jour vers 1.86-1
    Publication Mise à jour

Vérifiez votre serveur

Comparez votre pile et les versions installées aux bases de vulnérabilités actuelles.

Vérifiez votre serveur →