CVE-2025-22866
Medium · 4.0CVSS
4.0
EPSS
0.3%
Published
Feb 6, 2025
CISA due date
—
Cloudanix analysis
A subtle flaw in a widely-used software component could leak tiny, non-critical pieces of cryptographic information on systems with a specific, uncommon hardware architecture.
- Exploitation
- Local Privilege
- Attacker needs
- Local User
- Complexity
- Moderate
- Impact
- Data Exposure
- Component
- Library
- Class
- Cryptographic Weakness
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
This is a side-channel vulnerability specific to the ppc64le architecture. A variable-time instruction in an internal cryptographic function leaks a small number of bits from secret scalars during execution. This information leakage is minor and is not considered sufficient to allow for the full recovery of a private key, such as a P-256 key, in standard protocols.
Why it matters to the business
The business impact is very low. A flaw could theoretically leak minuscule fragments of cryptographic data, but only on systems using the specific ppc64le hardware architecture. The conditions for exploitation require local access, and the amount of leaked information is insufficient to compromise secure communications or sensitive data in practice. While the affected component is widely used in over 250 downstream projects, the combination of a specific, less-common hardware platform and the low-impact nature of the leak means the risk to business operations is negligible for most organizations.
How an attack unfolds
An attacker with local access to a server running on the ppc64le architecture could exploit this vulnerability. The attacker would need to run a custom-crafted program that repeatedly calls the vulnerable cryptographic function while precisely measuring its execution time. By analyzing the subtle timing variations (a timing side-channel attack), the attacker could gradually infer a few bits of a secret scalar being processed. This process would need to be repeated a massive number of times to collect even a small amount of information, and it is not believed to be a practical path to recovering a full cryptographic key.
How to fix it
To remediate this vulnerability, update the affected package to a version where the issue is resolved. For the 'urllib3' package on PyPI, upgrade to version 1.26.18 or later. This can be accomplished using a package manager like pip: `pip install --upgrade "urllib3>=1.26.18"` Note that this vulnerability only affects systems running on the ppc64le architecture. Systems on other architectures such as x86_64 or ARM are not affected.
How to confirm the fix worked
To validate that the vulnerability has been remediated, verify that the installed version of the 'urllib3' package is 1.26.18 or newer across all relevant systems, particularly those on the ppc64le architecture. Use software composition analysis (SCA) tools or run package manager commands like `pip freeze | grep urllib3` or `pip show urllib3` to confirm the installed version.
Typical attack path
- Attacker gains local access to a target system running on the ppc64le architecture.
- Attacker runs a specialized tool to trigger cryptographic operations in the vulnerable library.
- The tool performs a timing side-channel attack, measuring execution time variations of the vulnerable function.
- Over a large number of measurements, the attacker analyzes the timing data to leak a small number of bits from a secret scalar.
How to detect it
Detecting exploitation of this side-channel vulnerability is highly impractical. An attacker would need local access and would be running a process that performs high-frequency timing measurements on CPU operations. This activity does not generate specific logs, network traffic, or file-based indicators. Detection would require advanced, specialized host-based monitoring capable of profiling process execution for anomalous behavior, which is not a standard security control. The focus for this vulnerability should be on patching rather than post-facto detection.
What your security team should do
- Use software composition analysis (SCA) or a software bill of materials (SBoM) to identify all assets using the vulnerable 'urllib3' package, and prioritize any running on the ppc64le architecture.
- Upgrade 'urllib3' to version 1.26.18 or later as part of a standard patching cycle.
- Given the low CVSS score, local access requirement, and specific architecture, this vulnerability should be considered low priority for remediation unless the affected system is business-critical and runs on ppc64le.
The record
Due to the usage of a variable time instruction in the assembly implementation of an internal function, a small number of bits of secret scalars are leaked on the ppc64le architecture. Due to the way this function is used, we do not believe this leakage is enough to allow recovery of the private key when P-256 is used in any well known protocols.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Go | stdlib | 0 | 1.22.12 |
| AlmaLinux:10 | delve | 0 | 1.24.1-1.el10_0 |
| AlmaLinux:10 | go-toolset | 0 | 1.23.7-1.el10_0.alma.1 |
| AlmaLinux:10 | golang | 0 | 1.23.7-1.el10_0.alma.1 |
| AlmaLinux:10 | golang-bin | 0 | 1.23.7-1.el10_0.alma.1 |
| AlmaLinux:10 | golang-docs | 0 | 1.23.7-1.el10_0.alma.1 |
| AlmaLinux:10 | golang-misc | 0 | 1.23.7-1.el10_0.alma.1 |
| AlmaLinux:10 | golang-src | 0 | 1.23.7-1.el10_0.alma.1 |
| AlmaLinux:10 | golang-tests | 0 | 1.23.7-1.el10_0.alma.1 |
| Bitnami | golang | 0 | 1.22.12 |
| Chainguard | aactl | 0 | 0.4.12-r23 |
| Chainguard | actions-runner-controller | 0 | 0.10.1-r3 |
| Chainguard | actions-runner-controller-compat | 0 | 0.10.1-r3 |
| Chainguard | actions-runner-controller-fips | 0 | 0.10.1-r3 |
| Chainguard | actions-runner-controller-fips-compat | 0 | 0.10.1-r3 |
| Chainguard | addon-resizer | 0 | 1.8.23-r1 |
| Chainguard | addon-resizer-compat | 0 | 1.8.23-r1 |
| Chainguard | addon-resizer-fips | 0 | 1.8.23-r1 |
| Chainguard | addon-resizer-fips-compat | 0 | 1.8.23-r1 |
| Chainguard | age | 0 | 1.2.1-r2 |
| Chainguard | age-fips | 0 | 1.2.1-r2 |
| Chainguard | amass | 0 | 4.2.0-r19 |
| Chainguard | amazon-cloudwatch-agent | 0 | 1.300052.0-r1 |
| Chainguard | amazon-cloudwatch-agent-all | 0 | 1.300052.0-r1 |
| Chainguard | amazon-cloudwatch-agent-amazon-cloudwatch-agent-config-wizard | 0 | 1.300052.0-r1 |
| Chainguard | amazon-cloudwatch-agent-amazon-cloudwatch-agent-config-wizard-fips | 0 | 1.300052.0-r1 |
| Chainguard | amazon-cloudwatch-agent-compat | 0 | 1.300052.0-r1 |
| Chainguard | amazon-cloudwatch-agent-config-downloader | 0 | 1.300052.0-r1 |
| Chainguard | amazon-cloudwatch-agent-config-downloader-fips | 0 | 1.300052.0-r1 |
| Chainguard | amazon-cloudwatch-agent-config-translator | 0 | 1.300052.0-r1 |
| Chainguard | amazon-cloudwatch-agent-config-translator-fips | 0 | 1.300052.0-r1 |
| Chainguard | amazon-cloudwatch-agent-fips | 0 | 1.300052.0-r1 |
| Chainguard | amazon-cloudwatch-agent-operator | 0 | 2.1.0-r1 |
| Chainguard | amazon-cloudwatch-agent-operator-compat | 0 | 2.1.0-r1 |
| Chainguard | amazon-cloudwatch-agent-operator-fips | 0 | 2.1.0-r1 |
| Chainguard | amazon-cloudwatch-agent-operator-fips-compat | 0 | 2.1.0-r1 |
| Chainguard | amazon-cloudwatch-agent-start-amazon-cloudwatch-agent | 0 | 1.300052.0-r1 |
| Chainguard | amazon-cloudwatch-agent-start-amazon-cloudwatch-agent-fips | 0 | 1.300052.0-r1 |
| Chainguard | amazon-k8s-cni | 0 | 1.19.2-r2 |
| Chainguard | amazon-k8s-cni-compat | 0 | 1.19.2-r2 |
| Chainguard | amazon-k8s-cni-fips | 0 | 1.19.2-r3 |
| Chainguard | amazon-k8s-cni-init | 0 | 1.19.2-r2 |
| Chainguard | amazon-k8s-cni-init-compat | 0 | 1.19.2-r2 |
| Chainguard | amazon-k8s-cni-init-fips | 0 | 1.19.2-r3 |
| Chainguard | amazon-k8s-cni-init-fips-compat | 0 | 1.19.2-r3 |
| Chainguard | amazon-ssm-agent | 0 | 3.3.1611.0-r3 |
| Chainguard | amazon-ssm-agent-ecs-exec | 0 | 3.3.1611.0-r3 |
| Chainguard | ansible-operator | 0 | 1.37.1-r2 |
| Chainguard | ansible-operator-compat | 0 | 1.37.1-r2 |
| Chainguard | apache-beam-java-11-sdk | 0 | 2.62.0-r1 |
| Chainguard | apache-beam-java-17-sdk | 0 | 2.62.0-r1 |
| Chainguard | apache-beam-java-21-sdk | 0 | 2.62.0-r1 |
| Chainguard | apache-beam-java-sdk | 0 | 2.62.0-r1 |
| Chainguard | apache-beam-python-3.11-sdk | 0 | 2.62.0-r1 |
| Chainguard | apko | 0 | 0.24.0-r1 |
| Chainguard | apm-server | 0 | 8.17.1-r1 |
| Chainguard | apm-server-compat | 0 | 8.17.1-r1 |
| Chainguard | apm-server-fips | 0 | 8.17.1-r1 |
| Chainguard | argo-cd-2.10 | 0 | 2.10.18-r8 |
| Chainguard | argo-cd-2.10-compat | 0 | 2.10.18-r8 |
| Chainguard | argo-cd-2.10-repo-server | 0 | 2.10.18-r8 |
| Chainguard | argo-cd-2.11 | 0 | 2.11.13-r1 |
| Chainguard | argo-cd-2.11-compat | 0 | 2.11.13-r1 |
| Chainguard | argo-cd-2.11-repo-server | 0 | 2.11.13-r1 |
| Chainguard | argo-cd-2.12 | 0 | 2.12.10-r1 |
| Chainguard | argo-cd-2.12-compat | 0 | 2.12.10-r1 |
| Chainguard | argo-cd-2.12-repo-server | 0 | 2.12.10-r1 |
| Chainguard | argo-cd-fips-2.10 | 0 | 2.10.18-r6 |
| Chainguard | argo-cd-fips-2.10-compat | 0 | 2.10.18-r6 |
| Chainguard | argo-cd-fips-2.10-repo-server | 0 | 2.10.18-r6 |
| Chainguard | argo-cd-fips-2.11 | 0 | 2.11.13-r1 |
| Chainguard | argo-cd-fips-2.11-compat | 0 | 2.11.13-r1 |
| Chainguard | argo-cd-fips-2.11-repo-server | 0 | 2.11.13-r1 |
| Chainguard | argo-cd-fips-2.12 | 0 | 2.12.10-r1 |
| Chainguard | argo-cd-fips-2.12-compat | 0 | 2.12.10-r1 |
| Chainguard | argo-cd-fips-2.12-repo-server | 0 | 2.12.10-r1 |
| Chainguard | argo-cd-fips-2.13 | 0 | 2.13.5-r0 |
| Chainguard | argo-cd-fips-2.13-compat | 0 | 2.13.5-r0 |
| Chainguard | argo-cd-fips-2.13-repo-server | 0 | 2.13.5-r0 |
| Chainguard | argo-events | 0 | 1.9.5-r2 |
| Chainguard | argo-events-compat | 0 | 1.9.5-r2 |
| Chainguard | argo-events-fips | 0 | 1.9.5-r2 |
| Chainguard | argo-events-fips-compat | 0 | 1.9.5-r2 |
| Chainguard | argo-rollouts | 0 | 1.8.0-r1 |
| Chainguard | argo-rollouts-compat | 0 | 1.8.0-r1 |
| Chainguard | argo-rollouts-fips | 0 | 1.8.0-r1 |
| Chainguard | argo-workflow-cli | 0 | 3.6.3-r1 |
| Chainguard | argo-workflow-controller | 0 | 3.6.3-r1 |
| Chainguard | argo-workflow-controller-compat | 0 | 3.6.3-r1 |
| Chainguard | argo-workflow-executor | 0 | 3.6.3-r1 |
| Chainguard | argo-workflow-executor-compat | 0 | 3.6.3-r1 |
| Chainguard | argo-workflows | 0 | 3.6.3-r1 |
| Chainguard | argo-workflows-fips | 0 | 3.6.3-r0 |
| Chainguard | argo-workflows-known-hosts | 0 | 3.6.3-r1 |
| Chainguard | argo-workflows-ui | 0 | 3.6.3-r1 |
| Chainguard | argocd-image-updater | 0 | 0.15.2-r4 |
| Chainguard | argocd-image-updater-compat | 0 | 0.15.2-r4 |
| Chainguard | argocd-image-updater-fips | 0 | 0.15.2-r3 |
| Chainguard | atlantis | 0 | 0.33.0-r1 |
| Chainguard | atlantis-fips | 0 | 0.33.0-r1 |
| Chainguard | auditbeat-fips-8 | 0 | 8.17.1-r2 |
| Chainguard | authservice | 0 | 1.0.4-r1 |
| Chainguard | authservice-compat | 0 | 1.0.4-r1 |
| Chainguard | authservice-fips | 0 | 1.0.4-r1 |
| Chainguard | authservice-fips-compat | 0 | 1.0.4-r1 |
| Chainguard | aws-application-networking-k8s | 0 | 1.1.0-r3 |
| Chainguard | aws-application-networking-k8s-compat | 0 | 1.1.0-r3 |
| Chainguard | aws-ebs-csi-driver | 0 | 1.39.0-r1 |
| Chainguard | aws-ebs-csi-driver-fips | 0 | 1.39.0-r2 |
| Chainguard | aws-efs-csi-driver-fips | 0 | 2.1.5-r1 |
| Chainguard | aws-flb-cloudwatch | 0 | 1.9.4-r15 |
| Chainguard | aws-flb-cloudwatch-compat | 0 | 1.9.4-r15 |
| Chainguard | aws-flb-cloudwatch-compat-fips | 0 | 1.9.4-r8 |
| Chainguard | aws-flb-cloudwatch-fips | 0 | 1.9.4-r8 |
| Chainguard | aws-flb-firehose | 0 | 1.7.2-r15 |
| Chainguard | aws-flb-firehose-compat | 0 | 1.7.2-r15 |
| Chainguard | aws-flb-firehose-compat-fips | 0 | 1.7.2-r8 |
| Chainguard | aws-flb-firehose-fips | 0 | 1.7.2-r8 |
| Chainguard | aws-flb-kinesis | 0 | 1.10.2-r16 |
| Chainguard | aws-flb-kinesis-compat | 0 | 1.10.2-r16 |
| Chainguard | aws-flb-kinesis-compat-fips | 0 | 1.10.2-r9 |
| Chainguard | aws-flb-kinesis-fips | 0 | 1.10.2-r9 |
| Chainguard | aws-iam-authenticator | 0 | 0.6.30-r0 |
| Chainguard | aws-load-balancer-controller | 0 | 2.11.0-r3 |
| Chainguard | aws-load-balancer-controller-compat | 0 | 2.11.0-r3 |
| Chainguard | aws-load-balancer-controller-fips | 0 | 2.11.0-r3 |
| Chainguard | aws-network-policy-agent | 0 | 1.1.6-r2 |
| Chainguard | aws-network-policy-agent-compat | 0 | 1.1.6-r2 |
| Chainguard | aws-network-policy-agent-compat-fips | 0 | 1.1.6-r2 |
| Chainguard | aws-network-policy-agent-fips | 0 | 1.1.6-r2 |
| Chainguard | aws-privateca-issuer | 0 | 1.4.0-r4 |
| Chainguard | aws-privateca-issuer-compat | 0 | 1.4.0-r4 |
| Chainguard | aws-privateca-issuer-compat-fips | 0 | 1.4.0-r4 |
| Chainguard | aws-privateca-issuer-fips | 0 | 1.4.0-r4 |
| Chainguard | aws-signer-notation-plugin | 0 | 1.0.350-r2 |
| Chainguard | aws-signer-notation-plugin-fips | 0 | 1.0.350-r2 |
| Chainguard | azcopy | 0 | 10.28.0-r1 |
| Chainguard | azcopy-fips | 0 | 10.28.0-r1 |
| Chainguard | azure-aad-pod-identity-mic | 0 | 1.8.17-r17 |
| Chainguard | azure-aad-pod-identity-nmi | 0 | 1.8.17-r17 |
| Chainguard | azuredisk-csi-1.28 | 0 | 1.28.11-r7 |
| Chainguard | azuredisk-csi-1.28-compat | 0 | 1.28.11-r7 |
| Chainguard | azuredisk-csi-1.29 | 0 | 1.29.12-r2 |
| Chainguard | azuredisk-csi-1.29-compat | 0 | 1.29.12-r2 |
| Chainguard | azuredisk-csi-1.30 | 0 | 1.30.7-r2 |
| Chainguard | azuredisk-csi-1.30-compat | 0 | 1.30.7-r2 |
| Chainguard | azuredisk-csi-1.31 | 0 | 1.31.3-r0 |
| Chainguard | azuredisk-csi-fips-1.28 | 0 | 1.28.11-r6 |
| Chainguard | azuredisk-csi-fips-1.29 | 0 | 1.29.12-r2 |
| Chainguard | azuredisk-csi-fips-1.30 | 0 | 1.30.7-r2 |
| Chainguard | azuredisk-csi-fips-1.31 | 0 | 1.31.3-r0 |
| Chainguard | bank-vaults | 0 | 1.20.4-r24 |
| Chainguard | bank-vaults-fips | 0 | 1.20.4-r20 |
| Chainguard | bank-vaults-template | 0 | 1.20.4-r24 |
| Chainguard | bank-vaults-template-fips | 0 | 1.20.4-r20 |
| Chainguard | bazelisk | 0 | 0 |
| Chainguard | bazelisk-default | 0 | 0 |
| Chainguard | beats-7 | 0 | 7.17.27-r2 |
| Chainguard | beats-8 | 0 | 8.17.1-r1 |
| Chainguard | beats-fips-7 | 0 | 7.17.27-r2 |
| Chainguard | beats-fips-8 | 0 | 8.17.1-r2 |
| Chainguard | bom | 0 | 0.6.0-r16 |
| Chainguard | boring-registry | 0 | 0.16.0-r0 |
| Chainguard | boring-registry-fips | 0 | 0.16.0-r1 |
| Chainguard | buf | 0 | 1.50.0-r2 |
| Chainguard | buildah | 0 | 1.39.0-r1 |
| Chainguard | buildctl | 0 | 0.19.0-r1 |
| Chainguard | buildctl-fips | 0 | 0.19.0-r1 |
| Chainguard | buildkitd | 0 | 0.19.0-r1 |
| Chainguard | buildkitd-fips | 0 | 0.19.0-r1 |
| Chainguard | caddy | 0 | 2.9.1-r4 |
| Chainguard | caddy-fips | 0 | 2.9.1-r4 |
| Chainguard | caddy-man | 0 | 2.9.1-r4 |
| Chainguard | caddy-src | 0 | 2.9.1-r4 |
| Chainguard | cadvisor | 0 | 0.51.0-r4 |
| Chainguard | cadvisor-compat | 0 | 0.51.0-r4 |
| Chainguard | cadvisor-fips | 0 | 0.50.0-r5 |
| Chainguard | calico-3.27 | 0 | 3.27.5-r6 |
| Chainguard | calico-3.27-apiserver | 0 | 3.27.5-r6 |
| Chainguard | calico-3.27-app-policy | 0 | 3.27.5-r6 |
| Chainguard | calico-3.27-calicoctl | 0 | 3.27.5-r6 |
| Chainguard | calico-3.27-cni | 0 | 3.27.5-r6 |
| Chainguard | calico-3.27-cni-compat | 0 | 3.27.5-r6 |
| Chainguard | calico-3.27-felix | 0 | 3.27.5-r6 |
| Chainguard | calico-3.27-kube-controllers | 0 | 3.27.5-r6 |
| Chainguard | calico-3.27-node | 0 | 3.27.5-r6 |
| Chainguard | calico-3.27-pod2daemon | 0 | 3.27.5-r6 |
| Chainguard | calico-3.27-pod2daemon-flexvol-compat | 0 | 3.27.5-r6 |
| Chainguard | calico-3.27-typha-client | 0 | 3.27.5-r6 |
| Chainguard | calico-3.27-typhad | 0 | 3.27.5-r6 |
| Chainguard | calico-3.28 | 0 | 3.28.2-r8 |
| Chainguard | calico-3.29 | 0 | 3.29.2-r0 |
| Chainguard | calico-apiserver-3.27 | 0 | 3.27.5-r6 |
| Chainguard | calico-apiserver-3.28 | 0 | 3.28.2-r8 |
| Chainguard | calico-apiserver-compat-3.27 | 0 | 3.27.5-r6 |
| Chainguard | calico-apiserver-compat-3.28 | 0 | 3.28.2-r8 |
| Chainguard | calico-apiserver-compat-fips-3.27 | 0 | 3.27.5-r6 |
| Chainguard | calico-apiserver-fips-3.27 | 0 | 3.27.5-r6 |
| Chainguard | calico-apiserver-fips-3.28 | 0 | 3.28.2-r6 |
| Chainguard | calico-apiserver-fips-3.29 | 0 | 3.29.2-r0 |
Related vulnerabilities
- CVE-2025-68121 During session resumption in crypto/tls, if the underlying Config has its ClientCAs or… Also affects stdlib
- CVE-2025-22873 It was possible to improperly access the parent directory of an os.Root by opening a… Also affects stdlib
- GO-2026-4403 Improper access to parent directory of root in os Also affects stdlib
- CVE-2025-61726 The net/url package does not set a limit on the number of query parameters in a query. Also affects stdlib
- CVE-2025-61728 archive/zip uses a super-linear file name indexing algorithm that is invoked the first… Also affects stdlib
- CVE-2025-61730 During the TLS 1.3 handshake if multiple messages are sent in records that span… Also affects stdlib
- CVE-2025-61727 An excluded subdomain constraint in a certificate chain does not restrict the usage of… Also affects stdlib
- CVE-2025-61729 Within HostnameError.Error(), when constructing an error string, there is no limit to the… Also affects stdlib