CVE-2026-114116
Publiée le 2026-10-21 · Dernière modification le 2026-10-22
Les versions 0.1.0b1 à 0.1.0b16 ainsi que 0.4.1 à 0.5.0b1 de Vyper sont concernées. Vyper est un langage de programmation utilisé pour écrire des contrats intelligents (smart contracts) sur la blockchain Ethereum. La faille provient d'une méthode de division des lignes utilisée par le compilateur, laquelle considère certains caractères rares comme des sauts de ligne, alors que l'analyseur Python les ignore, amenant ainsi le compilateur à mal interpréter le début et la fin des lignes.
Un attaquant peut utiliser cette divergence pour masquer des caractères invisibles dans le code source d'un contrat, modifiant silencieusement des constantes numériques ou des adresses de portefeuilles lors du processus de build. Cela compromet l'intégrité du contrat, pouvant potentiellement rediriger des fonds ou altérer la logique sans que le développeur ne s'en aperçoive. L'exploitation est relativement simple via un réseau, mais nécessite que le développeur compile et déploie, sans le savoir, un code source malveillant fourni par l'attaquant.
DÉTAIL DU VECTEUR CVSS
RÉFÉRENCES
Description officielle du NVD (en anglais)
Vyper 0.1.0b1 before 0.1.0b17 and 0.4.1 through 0.5.0b1 builds its source-line table with str.splitlines(), which treats characters like form feed and U+2028 as line breaks the Python parser ignores, so numeric literals are classified and validated from shifted source text. An attacker contributing source code can hide these characters in comments, strings or indentation to silently change address, integer or decimal constants.