The Security Features category focuses on the intrinsic security mechanisms provided by the smart contract language. It ensures that the language includes built-in protections against common vulnerabilities such as reentrancy attacks, integer overflows, and predictable randomness. By offering these safeguards, the language helps developers write secure code by default, reducing reliance on individual awareness and minimizing the risk of introducing vulnerabilities. This category also covers the language's ability to prevent exploitation through buffer overflows, dependency hijacking, and type-related issues.
This section aids auditors in assessing the language's robustness in providing essential security features for safe and reliable smart contract development.
Ref Number | Name | Objective | Potential Issues |
---|---|---|---|
SF-001 | Built-in Reentrancy Protection | Check if the language provides built-in reentrancy protection mechanisms to prevent reentrancy attacks and enhance contract security. Validate if the implementation works properly. |
|
SF-002 | Integer Overflow/Underflow Protection | Ensure the language provides built-in mechanisms to prevent integer overflow and underflow vulnerabilities, maintaining contract integrity and security. |
|
SF-003 | Secure Random Number Generation | Ensure the language offers secure random number generation primitives to prevent exploits due to predictable or manipulable randomness. |
|
SF-004 | Array Bounds Checking Enforcement | Ensure the language enforces proper array bounds checking to prevent buffer overflow vulnerabilities and unauthorized memory access. |
|
SF-005 | Protection Against Dependency Hijacking | Ensure the language ecosystem provides protection against dependency hijacking to prevent malicious code inclusion. |
|
SF-006 | Type-Related Vulnerability Safeguards | Ensure the language provides safeguards against common type-related vulnerabilities, such as type confusion and unsafe type casting, to improve security and reliability. |
|
For more information, see also:
- Vyper Nonreentrancy Lock Vulnerability Technical Post-Mortem Report
- Solidity Docs - Reentrancy
- Interesting discussion - disallow state-changing effects after an external call by default
- New batchOverflow Bug in Multiple ERC20 Smart Contracts (CVE-2018–10299)
move
security guidelines- Cairo Security Flaws