Improper Enforcement of a Single, Unique Action

Property
Languagesolidity
Severitymedium
CWECWE-837: Improper Enforcement of a Single, Unique Action
Confidence LevelHigh
Impact LevelLow
Likelihood LevelLow

Description

The code contains Unicode direction control characters, which can manipulate how text is displayed and potentially conceal malicious code or logic. These invisible characters can make the code harder to read and review, increasing the risk of hidden vulnerabilities.

Impact

Attackers could use these characters to disguise malicious code, making it difficult for reviewers or automated tools to detect security issues. This could lead to backdoors or logic flaws going unnoticed, ultimately compromising the integrity and trustworthiness of the contract.

Improper Enforcement of a Single, Unique Action

Property
Languagesolidity
Severitymedium
CWECWE-837: Improper Enforcement of a Single, Unique Action
Confidence LevelLow
Impact LevelHigh
Likelihood LevelMedium

Description

A function that relies on a fixed msg.value can be called multiple times in a single transaction when used with batch or multicall contracts. This means the function could incorrectly process the same payment more than once, leading to unintended behavior.

Impact

An attacker could exploit this by making multiple calls with the same msg.value, potentially draining funds, duplicating actions, or bypassing payment logic. This can result in significant financial loss or manipulation of contract state, putting user assets and the application’s integrity at risk.

Improper Enforcement of Behavioral Workflow

Property
Languagesolidity
Severityhigh
CWECWE-841: Improper Enforcement of Behavioral Workflow
Confidence LevelHigh
Impact LevelHigh
Likelihood LevelMedium

Description

The function calls $VAULT.getPoolTokens() on a Balancer pool without protection against read-only reentrancy attacks. This means an attacker could exploit the call sequence to manipulate contract state or logic during the call.

Impact

If exploited, an attacker may execute malicious reentrant calls, potentially leading to unauthorized withdrawals, manipulation of balances, or other critical actions. This could result in significant financial loss or disruption of pool operations.

Improper Enforcement of Behavioral Workflow

Property
Languagesolidity
Severityhigh
CWECWE-841: Improper Enforcement of Behavioral Workflow
Confidence LevelHigh
Impact LevelHigh
Likelihood LevelMedium

Description

Calling getRate() on a Balancer pool without proper protection leaves the function vulnerable to read-only reentrancy attacks. This means an attacker could re-enter the contract during the call and potentially manipulate its behavior.

Impact

If exploited, an attacker could disrupt expected contract logic, potentially leading to incorrect state changes, calculation errors, or unauthorized actions. This can result in financial loss, fund mismanagement, or system instability for users and the protocol.

Improper Enforcement of Behavioral Workflow

Property
Languagesolidity
Severityhigh
CWECWE-841: Improper Enforcement of Behavioral Workflow
Confidence LevelHigh
Impact LevelHigh
Likelihood LevelMedium

Description

The transfer function calls callAfterTransfer before updating balances or completing state changes, which allows external contracts to re-enter the transfer process. This exposes the contract to reentrancy attacks, where a malicious contract could repeatedly trigger transfers in an unsafe state.

Impact

If exploited, an attacker could drain funds or manipulate token balances by recursively calling transfer, potentially leading to loss of assets or disruption of contract logic. This can result in serious financial damage and undermine trust in the smart contract.

Improper Enforcement of Behavioral Workflow

Property
Languagesolidity
Severityhigh
CWECWE-841: Improper Enforcement of Behavioral Workflow
Confidence LevelHigh
Impact LevelHigh
Likelihood LevelLow

Description

Calling external contracts or untrusted code from within the ERC777 tokensReceived() function can introduce a reentrancy risk. This allows attackers to re-enter contract functions before previous operations are completed, potentially bypassing intended logic or protections.

Impact

If exploited, an attacker could repeatedly trigger sensitive operations (like withdrawals or state changes) before balances or permissions are updated, leading to unauthorized token transfers, theft of funds, or corruption of contract state. This can result in significant financial losses or contract compromise.

Improper Enforcement of Behavioral Workflow

Property
Languagesolidity
Severityhigh
CWECWE-841: Improper Enforcement of Behavioral Workflow
Confidence LevelHigh
Impact LevelHigh
Likelihood LevelMedium

Description

Calling get_virtual_price() on a Curve pool without proper reentrancy protection exposes the function to read-only reentrancy attacks. This means external contracts could manipulate state between calls and get inaccurate or manipulated pricing data.

Impact

If exploited, attackers could manipulate oracles or pricing mechanisms that rely on get_virtual_price(), potentially enabling profit from arbitrage, market manipulation, or incorrect payouts. This can undermine trust, affect protocol stability, and lead to significant financial losses.

Improper Enforcement of Behavioral Workflow

Property
Languagesolidity
Severityhigh
CWECWE-841: Improper Enforcement of Behavioral Workflow
Confidence LevelHigh
Impact LevelHigh
Likelihood LevelLow

Description

The borrowFresh() function in Compound updates critical state variables after transferring tokens out, which makes it vulnerable to reentrancy attacks. This order allows attackers to re-enter the function before the state is securely updated.

Impact

If exploited, an attacker could repeatedly borrow funds before their balance is adjusted, leading to unauthorized withdrawals and significant financial losses for the protocol. This could undermine trust and result in a total loss of user funds.

Improper Enforcement of Behavioral Workflow

Property
Languagesolidity
Severityhigh
CWECWE-841: Improper Enforcement of Behavioral Workflow
Confidence LevelHigh
Impact LevelHigh
Likelihood LevelLow

Description

The onERC721Received() callback in your ERC721 contract is vulnerable to reentrancy if external calls are made before internal state updates. This allows attackers to exploit the contract by recursively calling functions before changes are finalized.

Impact

If exploited, an attacker could mint or transfer more NFTs than intended, bypass ownership or minting limits, and potentially drain assets or disrupt contract logic. This can lead to significant financial loss and undermine the integrity of your NFT platform.

Improper Export of Android Application Components

Property
Languagegeneric
Severitymedium
CWECWE-926: Improper Export of Android Application Components
OWASPA5:2021 Security Misconfiguration
Confidence LevelMedium
Impact LevelMedium
Likelihood LevelMedium

Description

The application exports an activity. Any application on the device can launch the exported activity which may compromise the integrity of your application or its data. Ensure that any exported activities do not have privileged access to your application’s control plane.