プラットフォーム
nodejs
コンポーネント
ansi-regex
修正版
5.0.1
6.0.1
CVE-2021-3807は、Node.jsで使用されるansi-regexライブラリにおけるReDoS(Regular Expression Denial of Service)脆弱性です。この脆弱性は、正規表現の複雑性によって引き起こされ、攻撃者は無効なANSIエスケープコードを解析する際に、サーバーのリソースを過剰に消費させ、サービス拒否を引き起こす可能性があります。影響を受けるバージョンは6.0.1より前のバージョンであり、6.0.1へのアップデートで脆弱性が修正されています。
この脆弱性を悪用されると、攻撃者は特製のANSIエスケープコードを送信することで、ansi-regexライブラリの正規表現エンジンを過剰に負荷させ、サーバーをダウンさせる可能性があります。攻撃の成功は、サーバーのCPU使用率を著しく増加させ、他のリクエストの処理を妨げる可能性があります。この脆弱性は、特にansi-regexライブラリを頻繁に使用するアプリケーションや、外部からの入力を処理するアプリケーションにおいて深刻な影響を及ぼす可能性があります。正規表現の複雑性により、攻撃者は比較的容易にReDoSを引き起こすことができ、攻撃の検出と防御が困難になる可能性があります。
この脆弱性は、公開されているPoC(Proof of Concept)コードが存在するため、悪用される可能性が高いと考えられます。CISAのKEV(Known Exploited Vulnerabilities)カタログにはまだ登録されていませんが、ReDoS攻撃は比較的容易に実行可能であり、攻撃者による悪用が懸念されます。NVD(National Vulnerability Database)は2021年9月20日に公開されています。
Applications and services built on Node.js that utilize the ansi-regex package are at risk. This includes command-line tools, terminal emulators, logging utilities, and any application that processes ANSI escape codes. Specifically, projects using older versions of ansi-regex and those that do not perform input validation on ANSI escape code strings are particularly vulnerable.
• nodejs / server:
ps aux | grep ansi-regex | grep -v grep | awk '{print $2}' | xargs -n 1 pmap -x | grep -q 'ansi-regex.js'• nodejs / server:
journalctl -u node | grep -i "ansi-regex"• generic web:
Inspect Node.js application logs for unusually high CPU usage or errors related to ansi-regex parsing.
disclosure
poc
patch
エクスプロイト状況
EPSS
0.21% (44% パーセンタイル)
CVSS ベクトル
この脆弱性への主な対策は、ansi-regexライブラリをバージョン6.0.1以上にアップデートすることです。アップデートが困難な場合は、入力の検証を強化し、無効なANSIエスケープコードをフィルタリングすることで、攻撃のリスクを軽減できます。また、WAF(Web Application Firewall)を導入し、ReDoS攻撃を検知・防御するルールを設定することも有効です。正規表現エンジンのタイムアウトを設定することで、過剰な負荷によるサービス拒否を防ぐことができます。アップデート後、ansi-regexライブラリのバージョンを確認し、脆弱性が修正されていることを確認してください。
ansi-regexの依存関係をバージョン6.0.1以降にアップデートしてください。これにより、正規表現の複雑さの脆弱性が修正されます。`npm install ansi-regex@latest`または`yarn upgrade ansi-regex@latest`を実行してアップデートしてください。
脆弱性分析と重要アラートをメールでお届けします。
CVE-2021-3807は、Node.jsのansi-regexライブラリにおける非効率な正規表現の複雑性により発生するReDoS脆弱性です。攻撃者は、無効なANSIエスケープコードを解析する際にサービス拒否を引き起こす可能性があります。
ansi-regexライブラリのバージョンが6.0.1より前の場合は、この脆弱性に影響を受ける可能性があります。Node.jsアプリケーションで使用しているansi-regexライブラリのバージョンを確認し、必要に応じてアップデートしてください。
この脆弱性を修正するには、ansi-regexライブラリをバージョン6.0.1以上にアップデートしてください。アップデートが困難な場合は、入力の検証を強化し、WAFを導入するなど、緩和策を講じることを検討してください。
公開されているPoCコードが存在するため、悪用される可能性が高いと考えられます。攻撃者による悪用が懸念されています。
公式のアドバイザリは、GitHubリポジトリで確認できます。https://github.com/chalk/ansi-regex/security/advisories/GHSA-593g-543x-947f