CVE-2025-24800: Ismp grandpa Ismp-grandpa Crate Accepted Incorrect Signatures Vulnerability
CRITICALCVE-2025-24800 is a CRITICAL ismp-grandpa crate accepted incorrect signatures vulnerability (CWE-347: Improper Verification of Cryptographic Signature) affecting Ismp grandpa libraries in the crates.io ecosystem. The issue involves ismp-grandpa crate accepted incorrect signatures. Remediation is available by upgrading affected packages to version 15.0.1, 0.1.2.
CVE-2025-24800 at a Glance
How to Fix CVE-2025-24800
To remediate this vulnerability, upgrade all affected Ismp grandpa dependencies to a patched release. Both direct and transitive dependencies should be checked, as frameworks or security libraries may pull in vulnerable versions transitively.
Upgrade ismp-grandpa to 15.0.1
Upgrade grandpa-verifier-primitives to 0.1.2
Upgrade grandpa-verifier to 0.1.2
Run the following command in your project directory to verify that all resolved dependencies use the patched release:
inspect dependencies for ismp-grandpa
How to Check if You Are Affected
To determine whether your application is affected by CVE-2025-24800, inspect your project dependencies for Ismp grandpa:
inspect dependencies for ismp-grandpa
Analyze the terminal output to locate any version of Ismp grandpa in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than 15.0.1), your application is affected.
Note: Verify declared build manifests and deployed runtime container environments.
Technical Details
Vulnerability Mechanism & Technical Analysis
This vulnerability is classified under CWE-347: Improper Verification of Cryptographic Signature, where the product does not verify, or incorrectly verifies, the cryptographic signature for data. In Ismp grandpa, software state validation or input boundaries are circumvented during processing. Review the official source advisory statement below for specific affected components, classes, and reproduction details.
Source Advisory Statement
CVE-2025-24800 Affected Ismp grandpa Versions
3 component(s)| Product / Package | Ecosystem | Affected Versions | Fixed Version |
|---|---|---|---|
|
ismp-grandpa
|
crates.io |
< 15.0.1
|
15.0.1
|
|
grandpa-verifier-primitives
|
crates.io |
< 0.1.2
|
0.1.2
|
|
grandpa-verifier
|
crates.io |
< 0.1.2
|
0.1.2
|
References
Frequently Asked Questions
What is CVE-2025-24800?
Which Ismp grandpa versions are affected?
What version fixes CVE-2025-24800?
Is ismp-grandpa affected?
Is grandpa-verifier-primitives affected?
What CWE is associated with CVE-2025-24800?
How can I check crates.io dependencies for CVE-2025-24800?
Machine-readable OSV JSON
OSV v1.5 Schema
{
"schema_version" : "1.4.0",
"id" : "GHSA-wwx5-gpgr-vxr7",
"modified" : "2025-01-28T20:15:50Z",
"published" : "2025-01-28T17:29:17Z",
"aliases" : [ "CVE-2025-24800" ],
"summary" : "ismp-grandpa crate accepted incorrect signatures",
"details" : "A critical vulnerability was discovered in the `ismp-grandpa` crate, that allowed a malicious prover easily convince the verifier of the finality of arbitrary headers.\n\n### Description\n\nThe vulnerability manifests as a verifer that only accepts incorrect signatures of Grandpa precommits and was introduced in this [specific commit](https://github.com/polytope-labs/ismp-substrate/pull/64/commits/5ca3351a19151f1a439c30d5cbdbfdc72a11f1a8#diff-3835cc24fb2011b3e8246036059acd8c2c2a9a869eedf7a210d18edb6543318dL262). Perhaps due to unfamiliarity with core substrate APIs. The `if` statement should have included a negation check, similar to the previous code, but this was omitted. Causing the verifier to **only** accept invalid signatures.\n\nThis vulnerability remained undetected even with [integration tests](https://github.com/polytope-labs/ismp-substrate/pull/64/commits/04d5be207b082eb61d586d52e1685e2e060347e6#diff-4aedbca82d26bebc03f274e23fd5697c3346ffff54405c87af9018f3aef708b2R1-R160), as the prover was also [misconfigured](https://github.com/polytope-labs/ismp-substrate/pull/64/commits/b26894913b301061b07db61af841ca2586415f08#diff-493a6129d75fe31185e28695a4d2adc1582fe9df12462e380fe994f170fc1e70L159) to initialize the Grandpa verifier with the incorrect authority `set_id`. This causes verification of honest precommit signatures to fail as the message is now malformed, but the verifier indeed only accepts signatures or messages that fail the verification check.\n\nBut even more devastatingly, the verifier will also accept malicious GRANDPA signatures for any precommit message.\n\nThis vulnerability has been fixed in this [commit](https://github.com/polytope-labs/hyperbridge/pull/372/commits/f0e85db718f5165b06585a49b14a66f8ad643aea) and a patch release has been published.\n\n### Impact\nThis could be used to steal funds or compromise other kinds of cross-chain applications.\n\n### Patches\nThis vulnerability has been fixed in the latest version of `ismp-granpda` `v15.0.1`\n\n### Recommendations\nUsers who rely on the compromised versions must upgrade immediately, as all vulnerable versions of the crate has been yanked.\n",
"severity" : [ {
"type" : "CVSS_V4",
"score" : "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N"
} ],
"affected" : [ {
"package" : {
"ecosystem" : "crates.io",
"name" : "ismp-grandpa"
},
"ranges" : [ {
"type" : "ECOSYSTEM",
"events" : [ {
"introduced" : "0"
}, {
"fixed" : "15.0.1"
} ]
} ]
}, {
"package" : {
"ecosystem" : "crates.io",
"name" : "grandpa-verifier-primitives"
},
"ranges" : [ {
"type" : "ECOSYSTEM",
"events" : [ {
"introduced" : "0"
}, {
"fixed" : "0.1.2"
} ]
} ]
}, {
"package" : {
"ecosystem" : "crates.io",
"name" : "grandpa-verifier"
},
"ranges" : [ {
"type" : "ECOSYSTEM",
"events" : [ {
"introduced" : "0"
}, {
"fixed" : "0.1.2"
} ]
} ]
} ],
"references" : [ {
"type" : "WEB",
"url" : "https://github.com/polytope-labs/hyperbridge/security/advisories/GHSA-wwx5-gpgr-vxr7"
}, {
"type" : "ADVISORY",
"url" : "https://nvd.nist.gov/vuln/detail/CVE-2025-24800"
}, {
"type" : "WEB",
"url" : "https://github.com/polytope-labs/hyperbridge/pull/372/commits/f0e85db718f5165b06585a49b14a66f8ad643aea"
}, {
"type" : "WEB",
"url" : "https://github.com/polytope-labs/ismp-substrate/pull/64/commits/04d5be207b082eb61d586d52e1685e2e060347e6#diff-4aedbca82d26bebc03f274e23fd5697c3346ffff54405c87af9018f3aef708b2R1-R160"
}, {
"type" : "WEB",
"url" : "https://github.com/polytope-labs/ismp-substrate/pull/64/commits/5ca3351a19151f1a439c30d5cbdbfdc72a11f1a8#diff-3835cc24fb2011b3e8246036059acd8c2c2a9a869eedf7a210d18edb6543318dL262"
}, {
"type" : "WEB",
"url" : "https://github.com/polytope-labs/ismp-substrate/pull/64/commits/b26894913b301061b07db61af841ca2586415f08#diff-493a6129d75fe31185e28695a4d2adc1582fe9df12462e380fe994f170fc1e70L159"
}, {
"type" : "PACKAGE",
"url" : "https://github.com/polytope-labs/hyperbridge"
} ],
"database_specific" : {
"cwe_ids" : [ "CWE-347" ],
"severity" : "CRITICAL",
"github_reviewed" : true,
"github_reviewed_at" : "2025-01-28T17:29:17Z",
"nvd_published_at" : "2025-01-28T16:15:45Z"
}
}