プラットフォーム
nodejs
コンポーネント
@openzeppelin/contracts
修正版
4.0.1
3.3.1
3.3.1
4.3.1
CVE-2021-39167は、OpenZeppelinコントラクトライブラリのTimelockControllerに存在する権限昇格のリモートコード実行(RCE)脆弱性です。この脆弱性を悪用されると、攻撃者はタイムロックの遅延を0にリセットし、権限を昇格させ、コントラクト内の資産への制限のないアクセスを獲得する可能性があります。影響を受けるバージョンは@openzeppelin/contractsの4.3.1以前です。4.3.1へのアップデートによりこの脆弱性は修正されています。
この脆弱性は、攻撃者がTimelockControllerの実行者ロールを悪用することで、タイムロックの制御を奪うことを可能にします。実行者ロールが「open」に設定されている場合、誰でも実行者ロールを使用できるため、タイムロックが攻撃者に乗っ取られるリスクが高まります。攻撃者は、タイムロックの遅延を0に設定することで、通常は遅延後に実行されるべきアクションを即座に実行できるようになり、コントラクト内の資産を不正に操作したり、引き出したりすることが可能になります。この脆弱性は、DeFiプラットフォームやNFTマーケットプレイスなど、OpenZeppelinコントラクトを使用している多くのプロジェクトに深刻な影響を与える可能性があります。
この脆弱性は、2021年8月30日に公開されました。現時点では、この脆弱性を悪用した具体的な攻撃事例は報告されていませんが、OpenZeppelinコントラクトは広く使用されているため、攻撃者による悪用が懸念されます。CISAのKEVカタログへの登録状況は不明です。公開されているPoCは確認されていません。
Decentralized applications (dApps) and DeFi protocols that utilize @openzeppelin/contracts for timelock functionality are at significant risk. Projects with improperly configured executor roles (set to 'open') are particularly vulnerable. Smart contract developers and auditors should prioritize patching and reviewing their code.
• nodejs / smart contracts:
npm audit @openzeppelin/contracts• nodejs / smart contracts:
grep -r "TimelockController" . --include="*.sol"• nodejs / smart contracts: Examine contract deployment code for instances where the executor role is set to 'open'. • nodejs / smart contracts: Review contract logs for any transactions that immediately execute timelock functions.
disclosure
patch
エクスプロイト状況
EPSS
0.44% (63% パーセンタイル)
CVSS ベクトル
この脆弱性への最善の対応は、@openzeppelin/contractsをバージョン4.3.1以降にアップデートすることです。もしアップデートがすぐに実行できない場合は、TimelockControllerの実行者ロールを厳重に管理し、ロールのアクセスを制限することでリスクを軽減できます。また、WAF(Web Application Firewall)やプロキシサーバーを使用して、悪意のあるリクエストをブロックすることも有効です。タイムロックの遅延を可能な限り長く設定することも、攻撃者が脆弱性を悪用するまでの時間を稼ぐための対策となります。アップデート後、コントラクトの動作を十分にテストし、脆弱性が修正されていることを確認してください。
チームの厳密な管理下以外の口座から executor ロールを剥奪してください。提案者でもある executor 以外のすべての executor を剥奪することをお勧めします。この軽減策を適用する際には、少なくとも 1 つの提案者と executor が残るようにしてください。
脆弱性分析と重要アラートをメールでお届けします。
CVE-2021-39167は、OpenZeppelinコントラクトライブラリのTimelockControllerにおける権限昇格のリモートコード実行脆弱性です。攻撃者はタイムロックを制御し、資産への不正アクセスを可能にする可能性があります。
もしあなたが@openzeppelin/contractsのバージョン4.3.1以前を使用している場合、この脆弱性に影響を受ける可能性があります。
@openzeppelin/contractsをバージョン4.3.1以降にアップデートすることで、この脆弱性を修正できます。
現時点では、この脆弱性を悪用した具体的な攻撃事例は報告されていませんが、攻撃者による悪用が懸念されます。
OpenZeppelinの公式アドバイザリは、https://blog.openzeppelin.com/security-alert-timelockcontroller-vulnerabilities/で確認できます。