Vyper is a pythonic Smart Contract Language for the ethereum virtual machine. Vyper compiler allows passing a value in builtin raw_call even if the call is a delegatecall or a staticcall. But in the context of delegatecall and staticcall the handling of value is not possible due to the semantics of the respective opcodes, and vyper will silently ignore the value= argument. If the semantics of the EVM are unknown to the developer, he could suspect that by specifying the `value` kwarg, exactly the given amount will be sent along to the target. This vulnerability affects 0.3.10 and earlier versions.
Vyper es un Smart Contract Language pythonico para la máquina virtual ethereum. El compilador de Vyper permite pasar un valor en raw_call incorporado incluso si la llamada es una llamada delegada o una llamada estática. Pero en el contexto de delegarcall y staticcall el manejo del valor no es posible debido a la semántica de los respectivos códigos de operación, y vyper ignorará silenciosamente el argumento value=. Si el desarrollador desconoce la semántica del EVM, podría sospechar que al especificar el "valor" kwarg, se enviará exactamente la cantidad dada al objetivo. Esta vulnerabilidad afecta a la versión 0.3.10 y versiones anteriores.