Drips Networkのバグ、DaiDripsHubコントラクトから2万4900 DAI流出

SlowMistによると、give関数の整数変換の欠陥により、攻撃者は資金の流れを逆転させ、コントラクトの準備金から約2万4882.99 DAIを流出させた。

DAI

要約

Drips Networkは、DaiDripsHubコントラクトのgive関数に存在した整数変換の脆弱性により、攻撃者が本来想定された資金の流れを逆転させたことで、約2万4882.99 DAIを失った。SlowMistによると、この欠陥はuint128を適切なチェックなしにint128へ変換していたことに起因する。これにより攻撃者はキャスト結果を負の値に操作し、それが最終的に正の値として扱われる形で、DAI準備金から資金を引き出せるようになった。攻撃者のアドレス、被害を受けたコントラクト、攻撃用コントラクトの詳細はすでに公開されており、スマートコントラクトにおける安全でない整数処理が悪用可能な会計上の不備を生み出し得ることを浮き彫りにした。

用語解説
  • uint128: プログラミングやスマートコントラクトで使われる128ビットの符号なし整数型。
  • int128: 正と負の両方の値を表現できる128ビットの符号付き整数型。
  • smart contracts: ブロックチェーン上で自動実行されるコード。