Function Selector Clashes
Function selector clashes occur when two different function signatures hash to the same four-byte identifier used by the EVM to route calls. In a proxy architecture, if a user calls a function, the proxy checks the selector against its own functions and the implementation's functions.
If a clash exists, the proxy might accidentally route a call to the wrong function or execute the wrong logic. This can lead to unauthorized access or unintended state changes.
Auditors use tools to scan for these clashes during the development of upgradeable contracts. It is a rare but high-impact issue that requires careful naming conventions.
Managing these clashes is vital for the predictability of proxy routing.