Cloudanix VulnDB

CVE-2025-8885

None

CVSS

—

EPSS

0.5%

Published

Aug 12, 2025

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

A flaw in a widely used cryptography library can let someone send specially crafted data that makes an application slow down or crash.

Exploitation
Remote Unauthenticated
Attacker needs
None
Complexity
Moderate
Impact
Denial Of Service
Component
Library
Class
Denial of service
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

This is a denial-of-service weakness in Bouncy Castle ASN.1 object identifier handling. A crafted ASN.1 Object Identifier value can cause the library to allocate excessive memory because resource consumption is not sufficiently bounded or throttled during parsing/processing. Applications that accept attacker-controlled ASN.1-encoded material—such as certificates, certificate chains, CSRs, OCSP/CRL data, signed messages, encrypted blobs, or other protocol inputs that are decoded through Bouncy Castle—may experience elevated memory use, garbage-collection pressure, request failures, or process termination. The impact is availability-focused; the provided scoring indicates no expected confidentiality or integrity impact.

Why it matters to the business

A remote unauthenticated attacker may be able to disrupt services that parse untrusted cryptographic or ASN.1 data using affected Bouncy Castle versions. The most likely consequence is degraded availability, service crashes, failed certificate or authentication workflows, and operational interruption rather than data theft. EPSS is currently low and the issue is not listed in CISA KEV, so widespread exploitation is not indicated, but the library is commonly embedded in downstream products and may be present transitively, making inventory and dependency review important.

How an attack unfolds

An attacker identifies an application endpoint, service, or protocol path that accepts externally supplied ASN.1-bearing data and processes it with affected Bouncy Castle BC Java or BC-FJA code. The attacker sends a specially crafted ASN.1 Object Identifier designed to trigger excessive allocation during parsing in the ASN1ObjectIdentifier implementation. If the vulnerable parsing path is reached, the Java process may consume unusually large heap memory, spend excessive time in garbage collection, reject legitimate requests, or terminate with an OutOfMemoryError. Because the weakness is in a library, exploitation depends on whether the consuming application exposes a reachable parsing path for attacker-controlled certificates, CSRs, signed/encrypted objects, or similar ASN.1 structures.

How to fix it

Upgrade affected Bouncy Castle dependencies to fixed vendor releases. Based on the affected ranges, treat BC Java versions 1.0 through 1.77 as vulnerable and move to a fixed release newer than 1.77 where available; treat BC-FJA bc-fips versions 1.0.0 through 1.0.2.5 and 2.0.0 through 2.0.1 as vulnerable and move to a fixed release outside those ranges. For downstream go-acme/lego source builds, update to or beyond commit 238454b5f74f3cfcbb244ff0d0dc914a4ad44b96. Rebuild and redeploy applications after dependency updates, including shaded or vendored JARs. Where immediate upgrade is not possible, reduce exposure by limiting unauthenticated ASN.1-bearing uploads, enforcing request body size limits, applying rate limits, bounding certificate/CSR sizes, isolating parsing workers, and configuring memory/CPU controls so one parsing workload cannot take down broader services.

How to confirm the fix worked

Confirm dependency resolution with software composition analysis, build manifests, SBOMs, Maven/Gradle dependency trees, container image scans, and runtime classpath inspection. Verify that no deployed artifact contains vulnerable Bouncy Castle versions, including shaded packages or bundled JARs. For go-acme/lego source deployments, confirm the deployed revision includes commit 238454b5f74f3cfcbb244ff0d0dc914a4ad44b96 or a later fixed revision. Exercise certificate/CSR/ASN.1 ingestion paths in a staging environment using benign oversized and malformed inputs to confirm they are rejected quickly without excessive heap growth or process instability. Monitor post-remediation services for absence of recurring OutOfMemoryError, high garbage-collection time, and parser-related failures under malformed input tests.

Typical attack path

  1. Identify an internet-facing or network-accessible application that uses affected Bouncy Castle BC Java or BC-FJA versions directly or through a bundled dependency.
  2. Find a feature that accepts attacker-controlled ASN.1 data, such as certificate upload, TLS client certificate processing, CSR submission, S/MIME/CMS handling, OCSP/CRL parsing, token validation, or cryptographic file import.
  3. Send a malformed or oversized ASN.1 Object Identifier crafted to trigger excessive allocation in the vulnerable parser.
  4. Repeat or parallelize requests if needed to increase heap pressure and garbage-collection load.
  5. Cause degraded service, request timeouts, application restarts, or Java process termination due to memory exhaustion.

How to detect it

Look for signs of availability attacks against application paths that parse certificates, CSRs, signed/encrypted messages, OCSP/CRL data, or other ASN.1 inputs. Useful sources include application logs, Java exception logs, web/API access logs, reverse proxy logs, WAF logs, JVM garbage-collection logs, container orchestration events, APM traces, crash dumps, and host metrics. Investigate bursts of requests to certificate or cryptographic import endpoints followed by high heap usage, long garbage-collection pauses, request timeouts, pod/container restarts, JVM exits, or OutOfMemoryError events. In Java logs and crash artifacts, search for stack traces involving org.bouncycastle.asn1.ASN1ObjectIdentifier, especially when correlated with untrusted input parsing. Because there are no public unique network indicators in the supplied data, detection should focus on behavioral evidence: malformed ASN.1 submissions, repeated failed certificate/CSR parsing, memory exhaustion, and Bouncy Castle ASN.1 stack traces around the same time.

  • java.lang.OutOfMemoryError
  • Java heap space
  • GC overhead limit exceeded
  • org.bouncycastle.asn1.ASN1ObjectIdentifier
  • ASN1ObjectIdentifier.java
  • org.bouncycastle.asn1
  • bcprov
  • bc-fips

What your security team should do

  • Inventory all applications and products that include Bouncy Castle BC Java bcprov or BC-FJA bc-fips, including transitive, shaded, and vendor-bundled copies.
  • Prioritize remediation for externally reachable services that accept certificates, CSRs, signed messages, encrypted files, authentication tokens, or other ASN.1-encoded inputs from untrusted users.
  • Upgrade BC Java and BC-FJA to fixed releases, and update go-acme/lego source builds to at least commit 238454b5f74f3cfcbb244ff0d0dc914a4ad44b96 where applicable.
  • Apply compensating controls while upgrades are pending: request size limits, upload validation, rate limiting, circuit breakers, memory limits, and isolation of parsing components.
  • Add monitoring for Java heap exhaustion, garbage-collection storms, application restarts, spikes in malformed certificate/CSR submissions, and repeated parser exceptions referencing Bouncy Castle ASN.1 classes.
  • Review incident logs for attempted exploitation if affected services were exposed before patching, especially around certificate enrollment, upload, and cryptographic validation endpoints.
  • Track vendor advisories for downstream products that bundle Bouncy Castle, because product remediation may require a vendor update even when the direct dependency is not visible in application manifests.

The record

Allocation of Resources Without Limits or Throttling vulnerability in Legion of the Bouncy Castle Inc. BC Java bcprov on All (API modules), Legion of the Bouncy Castle Inc. BC-FJA bc-fips on All allows Excessive Allocation. This vulnerability is associated with program files https://github.com/bcgit/bc-java/blob/main/core/src/main/java/org/bouncycastle/asn1/ASN1ObjectIdenti... https://github.com/bcgit/bc-java/blob/main/core/src/main/java/org/bouncycastle/asn1/ASN1ObjectIdentifier.Java . This issue affects BC Java: from 1.0 through 1.77; BC-FJA: from 1.0.0 through 1.0.2.5, from 2.0.0 through 2.0.1.

Affected packages

Ecosystem Package Introduced Fixed
Maven org.bouncycastle:bc-fips 1.0.0 1.0.2.6
Maven org.bouncycastle:bc-fips 2.0.0 2.0.1
Maven org.bouncycastle:bcprov-jdk14 1.0 1.78
Maven org.bouncycastle:bcprov-jdk15to18 1.0 1.78
Maven org.bouncycastle:bcprov-jdk18on 1.0 1.78
Maven org.bouncycastle:bctls-jdk14 1.0 1.78
Maven org.bouncycastle:bctls-jdk15to18 1.0 1.78
Maven org.bouncycastle:bctls-jdk18on 1.0 1.78
Chainguard cassandra-fips-4.0-compat 0 4.0.15-r6
Chainguard cassandra-fips-4.1-compat 0 4.1.7-r6
Chainguard cassandra-fips-5.0-compat 0 5.0.3-r10
Chainguard cqlsh-5.0 0 5.0.6-r0
Chainguard cqlsh-fips-5.0 0 5.0.3-r10
Chainguard elasticsearch-7 0 7.17.29-r5
Chainguard elasticsearch-7-iamguarded 0 7.17.29-r5
Chainguard elasticsearch-8.17 0 8.17.10-r13
Chainguard elasticsearch-8.17-bitnami 0 8.17.10-r12
Chainguard elasticsearch-8.17-config 0 8.17.10-r13
Chainguard elasticsearch-8.18 0 8.18.6-r12
Chainguard elasticsearch-8.18-bitnami 0 8.18.6-r12
Chainguard elasticsearch-8.18-config 0 8.18.6-r12
Chainguard elasticsearch-8.18-iamguarded 0 8.18.6-r12
Chainguard elasticsearch-8.19 0 8.19.2-r12
Chainguard elasticsearch-8.19-bitnami 0 8.19.2-r12
Chainguard elasticsearch-8.19-config 0 8.19.2-r12
Chainguard elasticsearch-8.19-iamguarded 0 8.19.2-r12
Chainguard elasticsearch-9.0 0 9.0.7-r0
Chainguard elasticsearch-9.0-bitnami 0 9.0.7-r0
Chainguard elasticsearch-9.0-config 0 9.0.7-r0
Chainguard elasticsearch-9.0-iamguarded 0 9.0.7-r0
Chainguard elasticsearch-9.1 0 9.1.6-r0
Chainguard elasticsearch-9.1-bitnami 0 9.1.3-r0
Chainguard elasticsearch-9.1-config 0 9.1.7-r0
Chainguard elasticsearch-9.1-iamguarded 0 9.1.6-r0
Chainguard opensearch-2 0 2.19.4-r0
Chainguard opensearch-2-alerting 0 2.19.4-r0
Chainguard opensearch-2-analysis-icu 0 2.19.4-r0
Chainguard opensearch-2-analysis-kuromoji 0 2.19.4-r0
Chainguard opensearch-2-analysis-nori 0 2.19.4-r0
Chainguard opensearch-2-analysis-phonetic 0 2.19.4-r0
Chainguard opensearch-2-analysis-smartcn 0 2.19.4-r0
Chainguard opensearch-2-analysis-stempel 0 2.19.4-r0
Chainguard opensearch-2-analysis-ukrainian 0 2.19.4-r0
Chainguard opensearch-2-anomaly-detection 0 2.19.4-r0
Chainguard opensearch-2-asynchronous-search 0 2.19.4-r0
Chainguard opensearch-2-cross-cluster-replication 0 2.19.4-r0
Chainguard opensearch-2-crypto-kms 0 2.19.4-r0
Chainguard opensearch-2-custom-codecs 0 2.19.4-r0
Chainguard opensearch-2-discovery-azure-classic 0 2.19.4-r0
Chainguard opensearch-2-discovery-ec2 0 2.19.4-r0
Chainguard opensearch-2-discovery-gce 0 2.19.4-r0
Chainguard opensearch-2-entrypoint-compat 0 2.19.4-r0
Chainguard opensearch-2-geospatial 0 2.19.4-r0
Chainguard opensearch-2-identity-shiro 0 2.19.4-r0
Chainguard opensearch-2-index-management 0 2.19.4-r0
Chainguard opensearch-2-ingest-attachment 0 2.19.4-r0
Chainguard opensearch-2-job-scheduler 0 2.19.4-r0
Chainguard opensearch-2-k-nn 0 2.19.4-r0
Chainguard opensearch-2-mapper-annotated-text 0 2.19.4-r0
Chainguard opensearch-2-mapper-murmur3 0 2.19.4-r0
Chainguard opensearch-2-mapper-size 0 2.19.4-r0
Chainguard opensearch-2-ml-commons 0 2.19.4-r0
Chainguard opensearch-2-neural-search 0 2.19.4-r0
Chainguard opensearch-2-notifications 0 2.19.4-r0
Chainguard opensearch-2-observability 0 2.19.4-r0
Chainguard opensearch-2-performance-analyzer 0 2.19.4-r0
Chainguard opensearch-2-reporting 0 2.19.4-r0
Chainguard opensearch-2-repository-azure 0 2.19.4-r0
Chainguard opensearch-2-repository-gcs 0 2.19.4-r0
Chainguard opensearch-2-repository-s3 0 2.19.4-r0
Chainguard opensearch-2-security 0 2.19.4-r0
Chainguard opensearch-2-security-analytics 0 2.19.4-r0
Chainguard opensearch-2-sql 0 2.19.4-r0
Chainguard opensearch-2-store-smb 0 2.19.4-r0
Chainguard opensearch-2-telemetry-otel 0 2.19.4-r0
Chainguard opensearch-2-transport-nio 0 2.19.4-r0
Chainguard opensearch-3 0 3.3.2-r0
Chainguard opensearch-3-alerting 0 3.3.2-r0
Chainguard opensearch-3-analysis-icu 0 3.3.2-r0
Chainguard opensearch-3-analysis-kuromoji 0 3.3.2-r0
Chainguard opensearch-3-analysis-nori 0 3.3.2-r0
Chainguard opensearch-3-analysis-phonetic 0 3.3.2-r0
Chainguard opensearch-3-analysis-smartcn 0 3.3.2-r0
Chainguard opensearch-3-analysis-stempel 0 3.3.2-r0
Chainguard opensearch-3-analysis-ukrainian 0 3.3.2-r0
Chainguard opensearch-3-anomaly-detection 0 3.3.2-r0
Chainguard opensearch-3-asynchronous-search 0 3.3.2-r0
Chainguard opensearch-3-cross-cluster-replication 0 3.3.2-r0
Chainguard opensearch-3-crypto-kms 0 3.3.2-r0
Chainguard opensearch-3-custom-codecs 0 3.3.2-r0
Chainguard opensearch-3-discovery-azure-classic 0 3.3.2-r0
Chainguard opensearch-3-discovery-ec2 0 3.3.2-r0
Chainguard opensearch-3-discovery-gce 0 3.3.2-r0
Chainguard opensearch-3-geospatial 0 3.3.2-r0
Chainguard opensearch-3-identity-shiro 0 3.3.2-r0
Chainguard opensearch-3-index-management 0 3.3.2-r0
Chainguard opensearch-3-ingest-attachment 0 3.3.2-r0
Chainguard opensearch-3-job-scheduler 0 3.3.2-r0
Chainguard opensearch-3-k-nn 0 3.3.2-r0
Chainguard opensearch-3-mapper-annotated-text 0 3.3.2-r0
Chainguard opensearch-3-mapper-murmur3 0 3.3.2-r0
Chainguard opensearch-3-mapper-size 0 3.3.2-r0
Chainguard opensearch-3-ml-commons 0 3.3.2-r0
Chainguard opensearch-3-neural-search 0 3.3.2-r0
Chainguard opensearch-3-notifications 0 3.3.2-r0
Chainguard opensearch-3-observability 0 3.3.2-r0
Chainguard opensearch-3-performance-analyzer 0 3.3.2-r0
Chainguard opensearch-3-reporting 0 3.3.2-r0
Chainguard opensearch-3-repository-azure 0 3.3.2-r0
Chainguard opensearch-3-repository-gcs 0 3.3.2-r0
Chainguard opensearch-3-repository-s3 0 3.3.2-r0
Chainguard opensearch-3-security 0 3.3.2-r0
Chainguard opensearch-3-security-analytics 0 3.3.2-r0
Chainguard opensearch-3-sql 0 3.3.2-r0
Chainguard opensearch-3-store-smb 0 3.3.2-r0
Chainguard opensearch-3-telemetry-otel 0 3.3.2-r0
Chainguard sonarqube 0 25.12.0.117093-r1
Chainguard sonarqube-docker-compat 0 25.10.0.114319-r0
Chainguard sonarqube-scripts 0 25.10.0.114319-r0
Debian:11 bouncycastle 0 No fix
Debian:12 bouncycastle 0 No fix
Debian:13 bouncycastle 0 1.80-1
Debian:14 bouncycastle 0 1.80-1
Wolfi cqlsh-5.0 0 5.0.6-r0
Wolfi opensearch-2 0 2.19.4-r0
Wolfi opensearch-2-alerting 0 2.19.4-r0
Wolfi opensearch-2-analysis-icu 0 2.19.4-r0
Wolfi opensearch-2-analysis-kuromoji 0 2.19.4-r0
Wolfi opensearch-2-analysis-nori 0 2.19.4-r0
Wolfi opensearch-2-analysis-phonetic 0 2.19.4-r0
Wolfi opensearch-2-analysis-smartcn 0 2.19.4-r0
Wolfi opensearch-2-analysis-stempel 0 2.19.4-r0
Wolfi opensearch-2-analysis-ukrainian 0 2.19.4-r0
Wolfi opensearch-2-anomaly-detection 0 2.19.4-r0
Wolfi opensearch-2-asynchronous-search 0 2.19.4-r0
Wolfi opensearch-2-cross-cluster-replication 0 2.19.4-r0
Wolfi opensearch-2-crypto-kms 0 2.19.4-r0
Wolfi opensearch-2-custom-codecs 0 2.19.4-r0
Wolfi opensearch-2-discovery-azure-classic 0 2.19.4-r0
Wolfi opensearch-2-discovery-ec2 0 2.19.4-r0
Wolfi opensearch-2-discovery-gce 0 2.19.4-r0
Wolfi opensearch-2-geospatial 0 2.19.4-r0
Wolfi opensearch-2-identity-shiro 0 2.19.4-r0
Wolfi opensearch-2-index-management 0 2.19.4-r0
Wolfi opensearch-2-ingest-attachment 0 2.19.4-r0
Wolfi opensearch-2-job-scheduler 0 2.19.4-r0
Wolfi opensearch-2-k-nn 0 2.19.4-r0
Wolfi opensearch-2-mapper-annotated-text 0 2.19.4-r0
Wolfi opensearch-2-mapper-murmur3 0 2.19.4-r0
Wolfi opensearch-2-mapper-size 0 2.19.4-r0
Wolfi opensearch-2-ml-commons 0 2.19.4-r0
Wolfi opensearch-2-neural-search 0 2.19.4-r0
Wolfi opensearch-2-notifications 0 2.19.4-r0
Wolfi opensearch-2-observability 0 2.19.4-r0
Wolfi opensearch-2-performance-analyzer 0 2.19.4-r0
Wolfi opensearch-2-reporting 0 2.19.4-r0
Wolfi opensearch-2-repository-azure 0 2.19.4-r0
Wolfi opensearch-2-repository-gcs 0 2.19.4-r0
Wolfi opensearch-2-repository-s3 0 2.19.4-r0
Wolfi opensearch-2-security 0 2.19.4-r0
Wolfi opensearch-2-security-analytics 0 2.19.4-r0
Wolfi opensearch-2-sql 0 2.19.4-r0
Wolfi opensearch-2-store-smb 0 2.19.4-r0
Wolfi opensearch-2-telemetry-otel 0 2.19.4-r0
Wolfi opensearch-2-transport-nio 0 2.19.4-r0
Wolfi opensearch-3 0 3.3.2-r0
Wolfi opensearch-3-alerting 0 3.3.2-r0
Wolfi opensearch-3-analysis-icu 0 3.3.2-r0
Wolfi opensearch-3-analysis-kuromoji 0 3.3.2-r0
Wolfi opensearch-3-analysis-nori 0 3.3.2-r0
Wolfi opensearch-3-analysis-phonetic 0 3.3.2-r0
Wolfi opensearch-3-analysis-smartcn 0 3.3.2-r0
Wolfi opensearch-3-analysis-stempel 0 3.3.2-r0
Wolfi opensearch-3-analysis-ukrainian 0 3.3.2-r0
Wolfi opensearch-3-anomaly-detection 0 3.3.2-r0
Wolfi opensearch-3-asynchronous-search 0 3.3.2-r0
Wolfi opensearch-3-cross-cluster-replication 0 3.3.2-r0
Wolfi opensearch-3-crypto-kms 0 3.3.2-r0
Wolfi opensearch-3-custom-codecs 0 3.3.2-r0
Wolfi opensearch-3-discovery-azure-classic 0 3.3.2-r0
Wolfi opensearch-3-discovery-ec2 0 3.3.2-r0
Wolfi opensearch-3-discovery-gce 0 3.3.2-r0
Wolfi opensearch-3-geospatial 0 3.3.2-r0
Wolfi opensearch-3-identity-shiro 0 3.3.2-r0
Wolfi opensearch-3-index-management 0 3.3.2-r0
Wolfi opensearch-3-ingest-attachment 0 3.3.2-r0
Wolfi opensearch-3-job-scheduler 0 3.3.2-r0
Wolfi opensearch-3-k-nn 0 3.3.2-r0
Wolfi opensearch-3-mapper-annotated-text 0 3.3.2-r0
Wolfi opensearch-3-mapper-murmur3 0 3.3.2-r0
Wolfi opensearch-3-mapper-size 0 3.3.2-r0
Wolfi opensearch-3-ml-commons 0 3.3.2-r0
Wolfi opensearch-3-neural-search 0 3.3.2-r0
Wolfi opensearch-3-notifications 0 3.3.2-r0
Wolfi opensearch-3-observability 0 3.3.2-r0
Wolfi opensearch-3-performance-analyzer 0 3.3.2-r0
Wolfi opensearch-3-reporting 0 3.3.2-r0
Wolfi opensearch-3-repository-azure 0 3.3.2-r0
Wolfi opensearch-3-repository-gcs 0 3.3.2-r0
Wolfi opensearch-3-repository-s3 0 3.3.2-r0

Related vulnerabilities