Sécurité·7 min de lecture·Par Solingo

Les 10 Vulnérabilités Solidity les Plus Courantes

Analyse des vulnérabilités les plus fréquentes en Solidity avec exemples de code vulnérable et versions sécurisées. Reentrancy, overflow, access control et plus.

# Les 10 Vulnérabilités Solidity les Plus Courantes

La sécurité des smart contracts est primordiale. Voici les 10 vulnérabilités les plus fréquentes en 2026, avec code vulnérable et solutions.

1. Reentrancy

Risque : Appel récursif avant mise à jour de l'état.

// ❌ VULNÉRABLE

function withdraw(uint amount) public {

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

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

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

}

// ✅ SÉCURISÉ

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.

// ❌ VULNÉRABLE

function mint(address to, uint amount) public {

balances[to] += amount;

}

// ✅ SÉCURISÉ

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).

// ❌ VULNÉRABLE 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 être exploité via phishing.

// ❌ VULNÉRABLE

function withdraw() public {

require(tx.origin == owner);

// Phishing possible !

}

// ✅ SÉCURISÉ

function withdraw() public {

require(msg.sender == owner);

}

Conclusion

Utilisez Slither, Foundry fuzz testing et audits professionnels pour détecter ces vulnérabilités.

Pratiquez sur Solingo avec nos 60 challenges de sécurité !

Prêt à mettre en pratique ?

Applique ces concepts avec des exercices interactifs sur Solingo.

Commencer gratuitement