For the complete documentation index, see llms.txt. This page is also available as Markdown.
#46993 [SC-Low] Malicious agent with large capital can abuse `cancelReturnFromCoreVault` to block access to core vault liquidity during high redemption demand
The issue lies in the mechanism that allows agents to request underlying assets from the core vault via requestReturnFromCoreVault. This function is intended to let agents with sufficient collateral pull assets from the vault to meet user redemption demand and earn a portion of the redemption fee.
This creates a denial-of-service vector during periods of high redemption pressure. A malicious agent with large capital can exploit this as follows:
Malicious agents deposit a large amount of collateral and invoke requestReturnFromCoreVault, reserving all underlying assets in the Core Vault.
Other agents are now blocked from accessing Core Vault funds to fulfill redemptions.
Before the automation (triggerInstructions) processes the transfer, the attacker front-runs it with cancelReturnFromCoreVault, freeing the reservation without penalty.
Immediately after automation clears pending requests, the attacker back-runs with new reservation requests, reclaiming full control of the vault’s available assets.
This loop can be repeated indefinitely.
Since the reserved amount is excluded from the available pool and there is no penalty or fee for making or canceling requests, attackers face no cost to continuously block access to Core Vault liquidity.
In a system where 85% of minted fAssets are backed by assets in the Core Vault and only 15% are held by agents directly:
Only 15% of fAssets can be redeemed without vault access.
If malicious agents block all return requests, honest agents cannot fulfill redemptions.
Users are forced to sell fAssets on the secondary market at a discount due to redemption unavailability.
This creates a liquidity crunch that impacts the price of the fAsset and can lead to protocol insolvency.
Impact
This vulnerability allows malicious agents to execute a denial-of-service attack on Core Vault withdrawals, effectively locking out all other agents from accessing the liquidity necessary for redemptions. In high-demand situations, this attack can prevent users from redeeming fAssets, leading to system-wide redemption failure, depegging, and ultimately protocol insolvency.
Rationale for severity
Impact: protocol insolvency (effectively) because normal redemption process is disrupted.
Severity: high because only malicious agent can perform the attack.
Recommended Mitigations.
Introduce a cancellation window, outside of this period, the cancellation should be disallowed.
Proof of Concept
Proof-of-Concept
The following test demonstrates that malicious agent with sufficient capital can effectively prevent other agents (or whitelisted users) from accessing liquidity in core vault.
Steps
Add the following test in test/integration/fasset-simulation/14-CoreVault.ts.
Run yarn test hardhat test/integration/fasset-simulation/14-CoreVault.ts --grep "nnez - request return and frontrun triggerInstructions with cancel"