CVE-2022-45146
Medium · 5.5CVSS
5.5
EPSS
0.4%
Published
Nov 21, 2022
CISA due date
—
Cloudanix analysis
A security library used by some applications can have its encryption keys erased too soon on newer Java versions, which may break security functions or allow data to leak.
- Exploitation
- Local Privilege
- Attacker needs
- Low Privilege
- Complexity
- Low
- Impact
- Data Exposure
- Component
- Library
- Class
- Use After Free
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Temporary cryptographic keys used by the BC-FJA FIPS module can be zeroed by JVM garbage collection changes in Java 13+ while still referenced, producing a use-after-free condition that leads to errors or information loss.
Why it matters to the business
Applications relying on the affected library on Java 13 and newer may experience cryptographic failures or data exposure, increasing operational risk and potential compliance issues; widespread downstream use amplifies exposure across dependent projects.
How an attack unfolds
An attacker with local access runs code that forces JVM garbage collection at precise moments during key operations in the FIPS module, causing in-use keys to be cleared and resulting in errors or partial information disclosure.
How to fix it
Upgrade affected Microweber installations to the fixed commit 955471c27e671c49e4b012e3b120b004082ac3f7 or later; on Java 13+ ensure the Bouncy Castle FIPS module is at least version 1.0.2.4.
How to confirm the fix worked
Confirm the installed library version is 1.0.2.4 or newer, run regression tests exercising FIPS cryptographic operations under Java 13+, and verify absence of zeroed-key errors in logs.
Typical attack path
- Identify hosts or containers running Java 13+ with the vulnerable Bouncy Castle FIPS module
- Deploy or execute local code that triggers repeated garbage collection during cryptographic key usage
- Observe resulting errors or attempt to capture residual data from the cleared key material
How to detect it
Review application and JVM logs for unexpected cryptographic errors or key-related exceptions during operations; correlate with process execution of local untrusted code on systems running Java 13+.
What your security team should do
- Prioritize upgrade of all Microweber instances to the listed fixed commit within the next patching cycle
- Audit Java runtime versions in use and restrict FIPS module deployments to certified Java 7/8/11 where possible
- Add library version checks to dependency scanning pipelines to prevent reintroduction of the vulnerable component
The record
An issue was discovered in the FIPS Java API of Bouncy Castle BC-FJA before 1.0.2.4. Changes to the JVM garbage collector in Java 13 and later trigger an issue in the BC-FJA FIPS modules where it is possible for temporary keys used by the module to be zeroed out while still in use by the module, resulting in errors or potential information loss. NOTE: FIPS compliant users are unaffected because the FIPS certification is only for Java 7, 8, and 11.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Maven | org.bouncycastle:bc-fips | 0 | 1.0.2.4 |
| Chainguard | elasticsearch-7 | 0 | 7.17.15-r0 |
| Chainguard | elasticsearch-7-bitnami | 0 | 7.17.15-r0 |
| Chainguard | elasticsearch-7-iamguarded | 0 | 7.17.15-r0 |
| Chainguard | elasticsearch-8 | 0 | 8.12.1-r0 |
| Chainguard | elasticsearch-8-bitnami | 0 | 8.12.1-r0 |
| Chainguard | elasticsearch-8-config | 0 | 8.12.1-r0 |
| Chainguard | elasticsearch-8-iamguarded | 0 | 8.12.1-r0 |
| Chainguard | elasticsearch-config | 0 | 8.12.1-r0 |
| Chainguard | opensearch-2 | 0 | 2.11.1-r1 |
| Chainguard | opensearch-2-alerting | 0 | 2.11.1-r1 |
| Chainguard | opensearch-2-analysis-icu | 0 | 2.11.1-r1 |
| Chainguard | opensearch-2-analysis-kuromoji | 0 | 2.11.1-r1 |
| Chainguard | opensearch-2-analysis-nori | 0 | 2.11.1-r1 |
| Chainguard | opensearch-2-analysis-phonetic | 0 | 2.11.1-r1 |
| Chainguard | opensearch-2-analysis-smartcn | 0 | 2.11.1-r1 |
| Chainguard | opensearch-2-analysis-stempel | 0 | 2.11.1-r1 |
| Chainguard | opensearch-2-analysis-ukrainian | 0 | 2.11.1-r1 |
| Chainguard | opensearch-2-anomaly-detection | 0 | 2.11.1-r1 |
| Chainguard | opensearch-2-asynchronous-search | 0 | 2.11.1-r1 |
| Chainguard | opensearch-2-cross-cluster-replication | 0 | 2.11.1-r1 |
| Chainguard | opensearch-2-crypto-kms | 0 | 2.11.1-r1 |
| Chainguard | opensearch-2-custom-codecs | 0 | 2.11.1-r1 |
| Chainguard | opensearch-2-discovery-azure-classic | 0 | 2.11.1-r1 |
| Chainguard | opensearch-2-discovery-ec2 | 0 | 2.11.1-r1 |
| Chainguard | opensearch-2-discovery-gce | 0 | 2.11.1-r1 |
| Chainguard | opensearch-2-entrypoint-compat | 0 | 2.11.1-r1 |
| Chainguard | opensearch-2-geospatial | 0 | 2.11.1-r1 |
| Chainguard | opensearch-2-identity-shiro | 0 | 2.11.1-r1 |
| Chainguard | opensearch-2-index-management | 0 | 2.11.1-r1 |
| Chainguard | opensearch-2-ingest-attachment | 0 | 2.11.1-r1 |
| Chainguard | opensearch-2-job-scheduler | 0 | 2.11.1-r1 |
| Chainguard | opensearch-2-k-nn | 0 | 2.11.1-r1 |
| Chainguard | opensearch-2-mapper-annotated-text | 0 | 2.11.1-r1 |
| Chainguard | opensearch-2-mapper-murmur3 | 0 | 2.11.1-r1 |
| Chainguard | opensearch-2-mapper-size | 0 | 2.11.1-r1 |
| Chainguard | opensearch-2-ml-commons | 0 | 2.11.1-r1 |
| Chainguard | opensearch-2-neural-search | 0 | 2.11.1-r1 |
| Chainguard | opensearch-2-notifications | 0 | 2.11.1-r1 |
| Chainguard | opensearch-2-observability | 0 | 2.11.1-r1 |
| Chainguard | opensearch-2-performance-analyzer | 0 | 2.11.1-r1 |
| Chainguard | opensearch-2-reporting | 0 | 2.11.1-r1 |
| Chainguard | opensearch-2-repository-azure | 0 | 2.11.1-r1 |
| Chainguard | opensearch-2-repository-gcs | 0 | 2.11.1-r1 |
| Chainguard | opensearch-2-repository-s3 | 0 | 2.11.1-r1 |
| Chainguard | opensearch-2-security | 0 | 2.11.1-r1 |
| Chainguard | opensearch-2-security-analytics | 0 | 2.11.1-r1 |
| Chainguard | opensearch-2-sql | 0 | 2.11.1-r1 |
| Chainguard | opensearch-2-store-smb | 0 | 2.11.1-r1 |
| Chainguard | opensearch-2-telemetry-otel | 0 | 2.11.1-r1 |
| Chainguard | opensearch-2-transport-nio | 0 | 2.11.1-r1 |
| Ubuntu:16.04:LTS | bouncycastle | 0 | No fix |
| Ubuntu:18.04:LTS | bouncycastle | 0 | No fix |
| Ubuntu:20.04:LTS | bouncycastle | 0 | No fix |
| Ubuntu:22.04:LTS | bouncycastle | 0 | No fix |
| Ubuntu:24.04:LTS | bouncycastle | 0 | No fix |
| Ubuntu:24.10 | bouncycastle | 0 | No fix |
| Ubuntu:25.04 | bouncycastle | 0 | No fix |
| Ubuntu:25.10 | bouncycastle | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | bouncycastle | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | bouncycastle | 0 | No fix |
| Ubuntu:Pro:20.04:LTS | bouncycastle | 0 | No fix |
| Wolfi | opensearch-2 | 0 | 2.11.1-r1 |
| Wolfi | opensearch-2-alerting | 0 | 2.11.1-r1 |
| Wolfi | opensearch-2-analysis-icu | 0 | 2.11.1-r1 |
| Wolfi | opensearch-2-analysis-kuromoji | 0 | 2.11.1-r1 |
| Wolfi | opensearch-2-analysis-nori | 0 | 2.11.1-r1 |
| Wolfi | opensearch-2-analysis-phonetic | 0 | 2.11.1-r1 |
| Wolfi | opensearch-2-analysis-smartcn | 0 | 2.11.1-r1 |
| Wolfi | opensearch-2-analysis-stempel | 0 | 2.11.1-r1 |
| Wolfi | opensearch-2-analysis-ukrainian | 0 | 2.11.1-r1 |
| Wolfi | opensearch-2-anomaly-detection | 0 | 2.11.1-r1 |
| Wolfi | opensearch-2-asynchronous-search | 0 | 2.11.1-r1 |
| Wolfi | opensearch-2-cross-cluster-replication | 0 | 2.11.1-r1 |
| Wolfi | opensearch-2-crypto-kms | 0 | 2.11.1-r1 |
| Wolfi | opensearch-2-custom-codecs | 0 | 2.11.1-r1 |
| Wolfi | opensearch-2-discovery-azure-classic | 0 | 2.11.1-r1 |
| Wolfi | opensearch-2-discovery-ec2 | 0 | 2.11.1-r1 |
| Wolfi | opensearch-2-discovery-gce | 0 | 2.11.1-r1 |
| Wolfi | opensearch-2-geospatial | 0 | 2.11.1-r1 |
| Wolfi | opensearch-2-identity-shiro | 0 | 2.11.1-r1 |
| Wolfi | opensearch-2-index-management | 0 | 2.11.1-r1 |
| Wolfi | opensearch-2-ingest-attachment | 0 | 2.11.1-r1 |
| Wolfi | opensearch-2-job-scheduler | 0 | 2.11.1-r1 |
| Wolfi | opensearch-2-k-nn | 0 | 2.11.1-r1 |
| Wolfi | opensearch-2-mapper-annotated-text | 0 | 2.11.1-r1 |
| Wolfi | opensearch-2-mapper-murmur3 | 0 | 2.11.1-r1 |
| Wolfi | opensearch-2-mapper-size | 0 | 2.11.1-r1 |
| Wolfi | opensearch-2-ml-commons | 0 | 2.11.1-r1 |
| Wolfi | opensearch-2-neural-search | 0 | 2.11.1-r1 |
| Wolfi | opensearch-2-notifications | 0 | 2.11.1-r1 |
| Wolfi | opensearch-2-observability | 0 | 2.11.1-r1 |
| Wolfi | opensearch-2-performance-analyzer | 0 | 2.11.1-r1 |
| Wolfi | opensearch-2-reporting | 0 | 2.11.1-r1 |
| Wolfi | opensearch-2-repository-azure | 0 | 2.11.1-r1 |
| Wolfi | opensearch-2-repository-gcs | 0 | 2.11.1-r1 |
| Wolfi | opensearch-2-repository-s3 | 0 | 2.11.1-r1 |
| Wolfi | opensearch-2-security | 0 | 2.11.1-r1 |
| Wolfi | opensearch-2-security-analytics | 0 | 2.11.1-r1 |
| Wolfi | opensearch-2-sql | 0 | 2.11.1-r1 |
| Wolfi | opensearch-2-store-smb | 0 | 2.11.1-r1 |
| Wolfi | opensearch-2-telemetry-otel | 0 | 2.11.1-r1 |
| Wolfi | opensearch-2-transport-nio | 0 | 2.11.1-r1 |
Related vulnerabilities
- CVE-2025-12194 Uncontrolled Resource Consumption vulnerability in Legion of the Bouncy Castle Inc. Also affects org.bouncycastle:bc-fips
- CVE-2025-8885 Allocation of Resources Without Limits or Throttling vulnerability in Legion of the… Also affects org.bouncycastle:bc-fips
- CVE-2024-29857 An issue was discovered in ECCurve.java and ECCurve.cs in Bouncy Castle Java (BC Java)… Also affects org.bouncycastle:bc-fips
- CVE-2025-67735 Netty has a CRLF Injection vulnerability in io.netty.handler.codec.http.HttpRequestEncoder Also affects elasticsearch-7
- CVE-2025-58056 Netty vulnerable to request smuggling due to incorrect parsing of chunk extensions Also affects elasticsearch-7
- CVE-2025-58057 Netty's decoders vulnerable to DoS via zip bomb style attack Also affects elasticsearch-7
- CVE-2025-8916 Allocation of Resources Without Limits or Throttling vulnerability in Legion of the… Also affects elasticsearch-7
- CVE-2025-53864 Connect2id Nimbus JOSE + JWT 10.0.x before 10.0.2 and 9.37.x before 9.37.4 allows a… Also affects elasticsearch-7