Securite·7 min de lecture·Par Solingo

Les 10 Vulnerabilites Solidity les Plus Courantes

Analyse des vulnerabilites les plus frequentes en Solidity avec exemples de code vulnerable et versions securisees. Reentrancy, overflow, access control et plus.

# Les 10 Vulnerabilites Solidity les Plus Courantes

La securite des smart contracts est primordiale. Voici les 10 vulnerabilites les plus frequentes en 2026, avec code vulnerable et solutions.

1. Reentrancy

Risque : Appel recursif avant mise a jour de l'etat.

// ❌ VULNERABLE

function withdraw(uint amount) public {

require(balances[msg.sender] >= amount);

(bool success,) = msg.sender.call{value: amount}("");

balances[msg.sender] -= amount; // Trop tard !

}

// ✅ SECURISE

function withdraw(uint amount) public {

require(balances[msg.sender] >= amount);

balances[msg.sender] -= amount; // D'abord l'effet

(bool success,) = msg.sender.call{value: amount}("");

require(success);

}

2. Access Control

Risque : Fonctions critiques sans restriction.

// ❌ VULNERABLE

function mint(address to, uint amount) public {

balances[to] += amount;

}

// ✅ SECURISE

address public owner;

modifier onlyOwner() {

require(msg.sender == owner);

_;

}

function mint(address to, uint amount) public onlyOwner {

balances[to] += amount;

}

3. Integer Overflow (pre-0.8.0)

Depuis Solidity 0.8.0, protection automatique. Mais attention aux blocs unchecked !

4. Timestamp Manipulation

Risque : Les mineurs peuvent manipuler block.timestamp (±15 secondes).

// ❌ VULNERABLE pour randomness

function random() public view returns (uint) {

return uint(keccak256(abi.encodePacked(block.timestamp)));

}

// ✅ Utiliser un oracle (Chainlink VRF)

5. tx.origin pour Auth

Risque : tx.origin peut etre exploite via phishing.

// ❌ VULNERABLE

function withdraw() public {

require(tx.origin == owner);

// Phishing possible !

}

// ✅ SECURISE

function withdraw() public {

require(msg.sender == owner);

}

Conclusion

Utilisez Slither, Foundry fuzz testing et audits professionnels pour detecter ces vulnerabilites.

Pratiquez sur Solingo avec nos 60 challenges de securite !

Prêt à mettre en pratique ?

Applique ces concepts avec des exercices interactifs sur Solingo.

Commencer gratuitement