- cvss
- —
- not scored
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- —
- no score, EPSS covers CVEs only
- public exploits
- 0
- none known
Summary
## Summary A vulnerability in the `add_share` function of the **Rewards** pallet (part of the ORML repository) can lead to an uncaught Rust panic when handling user-provided input exceeding the `u128` range.
## Affected Components - **ORML Rewards** pallet (`rewards/src/lib.rs`) - Any Substrate-based chain using ORML Rewards with `add_share` accepting unvalidated large `u128` inputs
## Technical Details - `add_share` performs arithmetic on user-supplied values (`add_amount`) of type `T::Share` (mapped to `u128` in Acala). - If `add_amount` is large enough (e.g., `i128::MAX`), the intermediate result may overflow and panic on the cast to `u128`. - Validation occurs only after arithmetic, enabling a crafted input to trigger an overflow.
## Impact A malicious user submitting a specially crafted extrinsic can cause a panic in the runtime: - **Denial of Service** by crashing the node process. - **Potential for invalid blocks** produced by validators.
## Likelihood This issue is exploitable in production if there exists at least one rewards pool where reward tokens exceed twice the collateral tokens, allowing sufficiently large multiplication to exceed `u128` bounds.
## Remediation - This issue is fixed in https://github.com/open-web3-stack/open-runtime-module-library/pull/1016
## Backport
The patch have been backported to following release branches: - polkadot-stable2407 - polkadot-stable2409
A 1.0.1 patch release is made with this fix.
Patch / fix
- crates.io orml-rewards 1.2.1
Is GHSA-5v93-9mqw-p9mh in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerAffected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| crates.io | orml-rewards | <1.2.1 |
1.2.1 |
Classification
- Weakness
-
- CWE-248 Uncaught Exception
References
-
github.com
/open-web3-stack/open-runtime-module-library/pull/1016
web
-
github.com
/open-web3-stack/open-runtime-module-library/commit/6720fcd92f44e5f204741b04fdef3b67b0fcf6bc
web
-
github.com
/open-web3-stack/open-runtime-module-library/security/advisories/GHSA-5v93-9mqw-p9mh
web
-
github.com
/open-web3-stack/open-runtime-module-library
package
Sources
- GitHub Advisory GHSA-5v93-9mqw-p9mh
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.