Cloudanix VulnDB

CVE-2024-48948

None

CVSS

—

EPSS

0.6%

Published

Oct 15, 2024

CISA due date

—

Cloudanix analysis

Next patch cycle SSVC: Track

A software bug can cause some legitimate digitally signed actions to be rejected, potentially disrupting transactions or communications until the affected dependency is updated.

Exploitation
Other
Attacker needs
User Interaction
Complexity
Moderate
Impact
Denial Of Service
Component
Library
Class
Cryptographic Weakness
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

CVE-2024-48948 is a cryptographic correctness flaw in the ECDSA verification logic used by the affected JavaScript package chain. When verifying a valid ECDSA signature, the implementation can incorrectly truncate or compare the message hash when the hash begins with at least four zero bytes and the elliptic-curve base point order is smaller than the hash. The result is not signature forgery or private-key disclosure; instead, some legitimate signatures are falsely rejected as invalid. Systems that rely on this verification path may incorrectly deny valid signed requests, transactions, tokens, messages, or workflow approvals.

Why it matters to the business

The primary business risk is operational disruption: valid user actions, signed transactions, API calls, or inter-service messages may fail even though they were correctly signed. This can lead to failed payments or transactions, broken authentication or authorization flows, customer support volume, retry storms, and loss of trust in systems that depend on digital signatures. The issue is not listed in CISA KEV, is not known to be used in ransomware campaigns, has low EPSS probability, and has no reported exploit maturity in the supplied data, so urgency is lower than for actively exploited remote-code-execution flaws; however, cryptographic verification bugs should still be remediated because they can create hard-to-debug reliability and integrity failures.

How an attack unfolds

An attacker, tester, or even normal user submits data that is accompanied by a valid ECDSA signature and is processed by an affected verification implementation. The attacker varies the signed message until its hash has the edge-case structure required to trigger the bug, specifically at least four leading zero bytes under the relevant hash function and curve/order conditions. The signature itself remains valid, but the vulnerable verifier mishandles truncation of the hash during ECDSA verification and returns a failure result. Any application logic that treats verification failure as rejection then denies the signed operation. In practical terms, this is most useful for causing targeted denial of service, transaction rejection, message-processing failure, or reliability degradation in systems that accept attacker-controlled signed payloads.

How to fix it

Upgrade affected dependencies to fixed versions. For the supplied affected products, upgrade phoenix_html for npm to version 3.0.4 or later and phoenix_html for Hex to version 3.0.4 or later. Also inspect dependency trees for the vulnerable elliptic package version 6.5.7 or any transitive dependency that includes the flawed ECDSA verification behavior, and upgrade to a patched release as provided by the package maintainer. Rebuild lockfiles after upgrading, redeploy dependent services, and ensure production artifacts do not retain the vulnerable package in bundled JavaScript, vendored dependencies, containers, or serverless packages. If immediate upgrade is not possible, reduce exposure by limiting untrusted signed-payload submission paths, adding retry/error handling for false verification failures, and routing critical signature verification to a known-good cryptographic library or service.

How to confirm the fix worked

Confirm remediation by reviewing package manifests and lockfiles to verify that phoenix_html is at 3.0.4 or later for npm and Hex wherever used, and that the vulnerable elliptic version is no longer present in the resolved dependency tree. Use package-manager inspection commands such as npm ls, npm audit, mix deps, mix hex.audit, software composition analysis tools, and container/image SBOM scans to confirm the deployed artifact matches the fixed dependency set. Add or run regression tests for ECDSA verification using known valid signatures, including test vectors where the message hash begins with multiple zero bytes, and confirm the verifier accepts valid signatures. Finally, verify runtime behavior by monitoring that previously failing valid signature workflows no longer produce unexpected signature-validation errors after deployment.

Typical attack path

  1. Identify an application, service, library, or downstream package path that uses the affected ECDSA verification implementation.
  2. Determine where signed messages, transactions, tokens, webhooks, or API requests are accepted and verified.
  3. Generate or vary signed payloads until the resulting hash begins with the required leading zero-byte pattern.
  4. Submit the otherwise valid signed payload to the vulnerable verifier.
  5. Observe that the verifier incorrectly rejects the signature as invalid.
  6. Abuse the false rejection behavior to disrupt workflows, cause transaction failures, trigger retries, or deny legitimate signed operations.

How to detect it

This flaw does not produce a reliable malware-style indicator and is not known from the supplied data to have active exploitation, so detection should focus on evidence of triggered false signature rejection and exposure. Review application, API gateway, transaction-processing, webhook, authentication, and message-consumer logs for unusual increases in ECDSA signature verification failures, especially where the rejected request later succeeds unchanged or where the signer is known to be legitimate. Correlate spikes in signature-validation errors with client identifiers, source IPs, endpoints, request hashes, transaction IDs, and retry behavior. In forensic review, inspect deployed package manifests, lockfiles, SBOMs, containers, and bundled JavaScript for vulnerable dependency versions. If payload hashes are logged or can be reconstructed from retained requests, look for rejected signed payloads whose hash begins with at least four zero bytes. Treat any cluster of such rejected-but-valid payloads as suspicious, especially if concentrated against transaction, webhook, authorization, or inter-service messaging endpoints.

  • elliptic@6.5.7
  • node_modules/elliptic/package.json
  • "elliptic": "6.5.7"
  • "elliptic":"6.5.7"
  • phoenix_html@3.0.3
  • "phoenix_html": "3.0.3"
  • "phoenix_html":"3.0.3"
  • Signature verification failed
  • invalid signature
  • ECDSA verification failed
  • signature invalid
  • hash starts with 00000000

What your security team should do

  • Inventory applications and services that perform ECDSA verification or include the affected package chain, prioritizing externally reachable signed-message and transaction-processing paths.
  • Upgrade phoenix_html to 3.0.4 or later for npm and Hex, and ensure transitive vulnerable cryptographic dependencies are removed from production builds.
  • Generate SBOM or dependency reports for deployed artifacts, not just source repositories, to catch bundled, vendored, or containerized vulnerable copies.
  • Add cryptographic regression tests that include edge-case hashes with leading zero bytes to prevent recurrence during future dependency changes.
  • Review recent application logs for unusual spikes in valid-user signature rejection, failed transaction validation, webhook verification failures, or retry storms.
  • Because this is not KEV-listed, not ransomware-linked, and has low EPSS in the supplied data, prioritize remediation through normal dependency patching SLAs unless the affected component protects high-value transaction, identity, or messaging workflows.
  • Document affected verification flows and ensure operational teams know that exploitation would appear as false signature rejection rather than account compromise or code execution.

The record

The Elliptic package 6.5.7 for Node.js, in its for ECDSA implementation, does not correctly verify valid signatures if the hash contains at least four leading 0 bytes and when the order of the elliptic curve's base point is smaller than the hash, because of an _truncateToN anomaly. This leads to valid signatures being rejected. Legitimate transactions or communications may be incorrectly flagged as invalid.

Affected packages

Ecosystem Package Introduced Fixed
npm elliptic 0 6.6.0
Debian:11 node-elliptic 0 No fix
Debian:12 node-elliptic 0 No fix
Debian:13 node-elliptic 0 No fix
SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS python-coverage 0 7.6.10-150400.12.6.1
SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS python-pluggy 0 1.5.0-150400.14.10.1
SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS python-pytest 0 8.3.5-150400.3.9.1
SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS python-pytest-cov 0 6.2.1-150400.12.6.1
SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS python-pytest-mock 0 3.14.0-150400.13.6.1
SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS python-coverage 0 7.6.10-150400.12.6.1
SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS python-pluggy 0 1.5.0-150400.14.10.1
SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS python-pytest 0 8.3.5-150400.3.9.1
SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS python-pytest-cov 0 6.2.1-150400.12.6.1
SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS python-pytest-mock 0 3.14.0-150400.13.6.1
SUSE:Linux Enterprise High Performance Computing 15 SP5-ESPOS python-coverage 0 7.6.10-150400.12.6.1
SUSE:Linux Enterprise High Performance Computing 15 SP5-ESPOS python-pluggy 0 1.5.0-150400.14.10.1
SUSE:Linux Enterprise High Performance Computing 15 SP5-ESPOS python-pytest 0 8.3.5-150400.3.9.1
SUSE:Linux Enterprise High Performance Computing 15 SP5-ESPOS python-pytest-cov 0 6.2.1-150400.12.6.1
SUSE:Linux Enterprise High Performance Computing 15 SP5-ESPOS python-pytest-mock 0 3.14.0-150400.13.6.1
SUSE:Linux Enterprise High Performance Computing 15 SP5-LTSS python-coverage 0 7.6.10-150400.12.6.1
SUSE:Linux Enterprise High Performance Computing 15 SP5-LTSS python-pluggy 0 1.5.0-150400.14.10.1
SUSE:Linux Enterprise High Performance Computing 15 SP5-LTSS python-pytest 0 8.3.5-150400.3.9.1
SUSE:Linux Enterprise High Performance Computing 15 SP5-LTSS python-pytest-cov 0 6.2.1-150400.12.6.1
SUSE:Linux Enterprise High Performance Computing 15 SP5-LTSS python-pytest-mock 0 3.14.0-150400.13.6.1
SUSE:Linux Enterprise Module for Package Hub 15 SP6 python-coverage 0 7.6.10-150400.12.6.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP4 aws-cli 0 1.33.26-150400.34.7.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP4 python-boto3 0 1.34.138-150400.27.7.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP4 python-botocore 0 1.34.144-150400.41.7.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP5 aws-cli 0 1.33.26-150400.34.7.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP5 python-boto3 0 1.34.138-150400.27.7.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP5 python-botocore 0 1.34.144-150400.41.7.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP6 aws-cli 0 1.33.26-150400.34.7.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP6 python-boto3 0 1.34.138-150400.27.7.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP6 python-botocore 0 1.34.144-150400.41.7.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP7 aws-cli 0 1.33.26-150400.34.7.1
SUSE:Linux Enterprise Module for Python 3 15 SP6 pgadmin4 0 8.5-150600.3.6.1
SUSE:Linux Enterprise Module for Python 3 15 SP6 python-coverage 0 7.6.10-150400.12.6.1
SUSE:Linux Enterprise Module for Python 3 15 SP6 python-pluggy 0 1.5.0-150400.14.10.1
SUSE:Linux Enterprise Module for Python 3 15 SP6 python-pytest 0 8.3.5-150400.3.9.1
SUSE:Linux Enterprise Module for Python 3 15 SP6 python-pytest-cov 0 6.2.1-150400.12.6.1
SUSE:Linux Enterprise Module for Python 3 15 SP6 python-pytest-mock 0 3.14.0-150400.13.6.1
SUSE:Linux Enterprise Module for Python 3 15 SP7 python-boto3 0 1.34.138-150400.27.7.1
SUSE:Linux Enterprise Module for Python 3 15 SP7 python-botocore 0 1.34.144-150400.41.7.1
SUSE:Linux Enterprise Module for Python 3 15 SP7 python-coverage 0 7.6.10-150400.12.6.1
SUSE:Linux Enterprise Module for Python 3 15 SP7 python-pluggy 0 1.5.0-150400.14.10.1
SUSE:Linux Enterprise Module for Python 3 15 SP7 python-pytest 0 8.3.5-150400.3.9.1
SUSE:Linux Enterprise Module for Python 3 15 SP7 python-pytest-cov 0 6.2.1-150400.12.6.1
SUSE:Linux Enterprise Module for Python 3 15 SP7 python-pytest-mock 0 3.14.0-150400.13.6.1
SUSE:Linux Enterprise Server 15 SP4-LTSS python-coverage 0 7.6.10-150400.12.6.1
SUSE:Linux Enterprise Server 15 SP4-LTSS python-pluggy 0 1.5.0-150400.14.10.1
SUSE:Linux Enterprise Server 15 SP4-LTSS python-pytest 0 8.3.5-150400.3.9.1
SUSE:Linux Enterprise Server 15 SP4-LTSS python-pytest-cov 0 6.2.1-150400.12.6.1
SUSE:Linux Enterprise Server 15 SP4-LTSS python-pytest-mock 0 3.14.0-150400.13.6.1
SUSE:Linux Enterprise Server 15 SP5-LTSS python-coverage 0 7.6.10-150400.12.6.1
SUSE:Linux Enterprise Server 15 SP5-LTSS python-pluggy 0 1.5.0-150400.14.10.1
SUSE:Linux Enterprise Server 15 SP5-LTSS python-pytest 0 8.3.5-150400.3.9.1
SUSE:Linux Enterprise Server 15 SP5-LTSS python-pytest-cov 0 6.2.1-150400.12.6.1
SUSE:Linux Enterprise Server 15 SP5-LTSS python-pytest-mock 0 3.14.0-150400.13.6.1
SUSE:Linux Enterprise Server for SAP Applications 15 SP4 python-coverage 0 7.6.10-150400.12.6.1
SUSE:Linux Enterprise Server for SAP Applications 15 SP4 python-pluggy 0 1.5.0-150400.14.10.1
SUSE:Linux Enterprise Server for SAP Applications 15 SP4 python-pytest 0 8.3.5-150400.3.9.1
SUSE:Linux Enterprise Server for SAP Applications 15 SP4 python-pytest-cov 0 6.2.1-150400.12.6.1
SUSE:Linux Enterprise Server for SAP Applications 15 SP4 python-pytest-mock 0 3.14.0-150400.13.6.1
SUSE:Linux Enterprise Server for SAP Applications 15 SP5 python-coverage 0 7.6.10-150400.12.6.1
SUSE:Linux Enterprise Server for SAP Applications 15 SP5 python-pluggy 0 1.5.0-150400.14.10.1
SUSE:Linux Enterprise Server for SAP Applications 15 SP5 python-pytest 0 8.3.5-150400.3.9.1
SUSE:Linux Enterprise Server for SAP Applications 15 SP5 python-pytest-cov 0 6.2.1-150400.12.6.1
SUSE:Linux Enterprise Server for SAP Applications 15 SP5 python-pytest-mock 0 3.14.0-150400.13.6.1
Ubuntu:18.04:LTS node-elliptic 0 No fix
Ubuntu:20.04:LTS node-elliptic 0 No fix
Ubuntu:22.04:LTS node-elliptic 0 No fix
Ubuntu:24.04:LTS node-elliptic 0 No fix
Ubuntu:24.10 node-elliptic 0 No fix
Ubuntu:25.04 node-elliptic 0 No fix
Ubuntu:25.10 node-elliptic 0 No fix
Ubuntu:Pro:18.04:LTS node-elliptic 0 No fix
Ubuntu:Pro:20.04:LTS node-elliptic 0 No fix
openSUSE:Leap 15.6 aws-cli 0 1.33.26-150400.34.7.1
openSUSE:Leap 15.6 pgadmin4 0 8.5-150600.3.6.1
openSUSE:Leap 15.6 python-boto3 0 1.34.138-150400.27.7.1
openSUSE:Leap 15.6 python-botocore 0 1.34.144-150400.41.7.1
openSUSE:Leap 15.6 python-coverage 0 7.6.10-150400.12.6.1
openSUSE:Leap 15.6 python-flaky 0 3.8.1-150400.14.6.1
openSUSE:Leap 15.6 python-pluggy 0 1.5.0-150400.14.10.1
openSUSE:Leap 15.6 python-pytest 0 8.3.5-150400.3.9.1
openSUSE:Leap 15.6 python-pytest-cov 0 6.2.1-150400.12.6.1
openSUSE:Leap 15.6 python-pytest-mock 0 3.14.0-150400.13.6.1
openSUSE:Tumbleweed python-pytest-html 0 4.1.1-3.1
openSUSE:Tumbleweed velociraptor 0 0.7.0.4.git142.862ef23-1.1

Related vulnerabilities