Saltar al contenido
Est. MMXXVIVol. VI · № 273RSS
Blockchain Breaches

Archivo de incidentes de seguridad en criptomonedas — hackeos, exploits, fallos de puentes y rug pulls, documentados con evidencia on-chain.

Expediente № 015Fallo de smart contract

Drenaje con Jar falso en Pickle Finance

$19,76 M DAI drenados de Pickle Finance tras crear el atacante dos 'Jar' falsos y explotar la falta de lista blanca en swapExactJarForJar.

Fecha
Cadena(s)
Estado
Fondos robados

El 21 de noviembre de 2020, el protocolo agregador de rendimiento Pickle Finance perdió 19,76 millones de DAI (~$19,76 M en ese momento, dada la paridad de DAI) en un exploit multifase que PeckShield caracterizó como el ataque DeFi más complejo de 2020. El bug: los contratos "Jar" del protocolo confiaban en cualquier llamador para identificar qué era un Jar legítimo y qué no.

Qué ocurrió

Pickle Finance usaba una abstracción "Jar" — una bóveda generadora de rendimiento que representaba los depósitos de usuarios en diferentes estrategias DeFi. El contrato inteligente ControllerV4 gestionaba estos Jars y exponía una función swapExactJarForJar() que permitía a los usuarios mover fondos entre estrategias.

La vulnerabilidad tenía dos mitades:

  1. swapExactJarForJar() no validaba si los argumentos "Jar" suministrados estaban en una lista blanca de Jars legítimos de Pickle. Cualquier contrato que afirmara ser un Jar era aceptado.
  2. La función también no verificaba que la estrategia que respaldaba cada Jar fuera auténtica, permitiendo que código controlado por el atacante fuera invocado en la ruta de llamada privilegiada.

El ataque:

  1. Desplegó dos contratos "Jar" falsos que exponían la interfaz de Jar esperada pero estaban enteramente controlados por el atacante.
  2. Llamó a swapExactJarForJar() con el Jar pDAI legítimo como fuente y el Jar falso como destino.
  3. El contrato ControllerV4 obedientemente retiró DAI del verdadero StrategyCmpdDaiV2 (la estrategia Compound DAI de Pickle) y lo depositó en el "Jar" controlado por el atacante, que simplemente reenvió el DAI al atacante.
  4. Drenó 19,76 millones de DAI de la estrategia en una sola transacción.

Consecuencias

  • Pickle Finance pausó los contratos afectados y desplegó parches de emergencia.
  • El token de gobernanza PICKLE cayó ~50% intradía por la noticia.
  • El protocolo sobrevivió pero nunca volvió a su TVL previo al incidente; Pickle eventualmente se unió a una asociación con Yearn ("cooperación Pickle ↔ Yearn").
  • Los fondos fueron blanqueados a través de Tornado Cash; sin recuperación.

Por qué importa

Pickle es uno de los casos de estudio más tempranos de la clase de bug de inyección de contrato falso — cuando una operación privilegiada acepta direcciones de contrato como parámetros, cada una de esas direcciones debe validarse contra una lista blanca autoritativa, no asumirse legítima basándose en conformidad de interfaz. La misma clase de vulnerabilidad ha recurrido en protocolos que van desde Cashio (Solana, 2022) hasta Hedgey Finance (Ethereum, 2024).

Pickle también es notable por mostrar que la complejidad en protocolos DeFi se compone en superficie de ataque. Los agregadores de rendimiento que enrutan a través de múltiples sub-estrategias — cada una con su propia interfaz de contrato, flujo de depósito/retiro y suposiciones de confianza — multiplican el número de formas en que un atacante puede colar un contrato malicioso en la ruta de enrutamiento.

Fuentes y evidencia on-chain

  1. [01]halborn.comhttps://www.halborn.com/blog/post/explained-the-defi-protocol-pickle-finance-hack-nov-2020
  2. [02]immunebytes.comhttps://immunebytes.com/blog/pickle-finance-exploit-nov-21-2020-detailed-analysis/
  3. [03]blog.peckshield.comhttps://blog.peckshield.com/2020/11/21/pickle/

Registros relacionados