CVE-2024-41945 The fuels-ts typescript SDK has no awareness of to-be-spent transactions
The Fuel TypeScript SDK fails to track spent UTXOs, causing transactions to fail or be silently pruned from the mempool.
- Exploited in the wild
- Not known
- Login needed
- Any signed-in user
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2024-41945?
CVE-2024-41945 is a low-severity vulnerability in FuelLabs fuels-ts, published on 30 Jul 2024. Any signed-in user can exploit it over the network, with no action from the victim.
Official description
fuels-ts is a library for interacting with Fuel v2. The typescript SDK has no awareness of to-be-spent transactions causing some transactions to fail or silently get pruned as they are funded with already used UTXOs. The problem occurs, because the `fund` function in `fuels-ts/packages/account/src/account.ts` gets the needed ressources statelessly with the function `getResourcesToSpend` without taking into consideration already used UTXOs. This issue will lead to unexpected SDK behaviour, such as a transaction not getting included in the `txpool` / in a block or a previous transaction silently getting removed from the `txpool` and replaced with a new one.
Weakness: CWE-20
Which versions are affected by CVE-2024-41945?
2 open source packages ship an affected version, including @fuel-ts/account.
| Package | Affected | Fixed in |
|---|---|---|
@fuel-ts/account npm | All versions | 0.93.0 |
@fuel-ts/account npm | All versions | 0.93.0 |
How do I fix CVE-2024-41945?
Upgrade @fuel-ts/account to 0.93.0 or later.
Is CVE-2024-41945 being exploited?
It is not confirmed as exploited in the wild, but public exploit code for CVE-2024-41945 exists.
Sources
Also known as GHSA-3jcg-vx7f-j6qf.