Glosario cripto

Vulnerabilidad de control de acceso

Definición

Una vulnerabilidad de control de acceso es un fallo de un contrato que permite a cualquiera usar funciones privilegiadas, como emitir tokens o retirar fondos.

Los contratos inteligentes suelen reservar ciertas funciones a un propietario, un rol de administrador u otro contrato: emitir tokens, cambiar parámetros, actualizar el código, pausar o mover fondos de la tesorería. El control de acceso es la lógica que comprueba quién llama. Basta con que falte un modificador, se compruebe mal un rol, haya un inicializador que cualquiera puede ejecutar o una función que se fíe de datos arbitrarios sobre quién está autorizado para poner esos poderes en manos de un atacante.

Están entre las causas de pérdidas más dañinas y frecuentes de DeFi. En 2017, un usuario activó una función de inicialización sin proteger en la librería multisig de Parity, se convirtió en su propietario y la destruyó, lo que congeló cientos de miles de ETH. El exploit de Poly Network en 2021 se debió a una función entre cadenas que permitió al atacante sustituir a los guardianes del puente. Los informes de seguridad del sector sitúan con regularidad estos fallos entre las principales categorías de pérdidas.

El concepto abarca también los fallos fuera de la cadena en la custodia de claves privilegiadas, como una clave de administrador en un servidor conectado. Auditorías, librerías de roles, transferencias de propiedad en dos pasos, timelocks y propietarios multisig reducen el riesgo, pero cada rol privilegiado sigue siendo un objetivo.

Ejemplo

Un token recién desplegado olvida restringir su función de emisión; un atacante se acuña miles de millones de tokens y los vende en el pool de liquidez en pocos minutos.

Términos relacionados

Últimos artículos sobre Vulnerabilidad de control de acceso