Skip to content

security: Add zero address validation in ERC6909 transfers (#1028)#1032

Open
zhaog100 wants to merge 1 commit intoUniswap:mainfrom
zhaog100:bounty-1028
Open

security: Add zero address validation in ERC6909 transfers (#1028)#1032
zhaog100 wants to merge 1 commit intoUniswap:mainfrom
zhaog100:bounty-1028

Conversation

@zhaog100
Copy link
Copy Markdown

Security Analysis

Reported in #1028 - ERC6909 security audit.

Valid Findings

Missing Input Validation - transfer/transferFrom functions did not validate zero address.

Invalid Findings (Solidity 0.8.0+ built-in protections)

Reentrancy - No external calls, Solidity 0.8.0+ has reentrancy protection.
Arithmetic Overflow - Solidity 0.8.0+ has built-in overflow checks (no SafeMath needed).
Authorization - approve/transfer are authorization mechanisms themselves.

Fix

Added zero address validation:

// transfer()
require(receiver != address(0), "ERC6909: transfer to zero address");

// transferFrom()
require(receiver != address(0), "ERC6909: transfer to zero address");

Note

Other reported issues are not applicable to Solidity 0.8.0+ or are design choices.

Closes #1028

)

## Security Analysis

Reported in Uniswap#1028 - ERC6909 security audit.

## Valid Findings

✅ **Missing Input Validation** - transfer/transferFrom functions did not validate zero address.

## Invalid Findings (Solidity 0.8.0+ built-in protections)

❌ **Reentrancy** - No external calls, Solidity 0.8.0+ has reentrancy protection.
❌ **Arithmetic Overflow** - Solidity 0.8.0+ has built-in overflow checks.
❌ **Authorization** - approve/transfer are authorization mechanisms themselves.

## Fix

Added zero address validation:
- transfer(): require(receiver != address(0))
- transferFrom(): require(receiver != address(0))

## Note

Other reported issues are not applicable to Solidity 0.8.0+ or are design choices.

Closes Uniswap#1028
@zhaog100 zhaog100 requested a review from a team as a code owner March 26, 2026 03:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[SECURITY DISCLOSURE] Critical Vulnerability found in ERC6909.sol

1 participant