プラットフォーム
nodejs
コンポーネント
terser
修正版
4.8.1
5.14.2
4.8.1
CVE-2022-25858は、JavaScriptのminifyツールであるterserにおいて、正規表現 Denial of Service (ReDoS) 脆弱性が発見されました。この脆弱性は、正規表現の処理に過剰な時間を費やさせ、Node.jsアプリケーションの可用性を低下させる可能性があります。影響を受けるバージョンはterser 4.8.1未満、および5.0.0から5.14.2です。4.8.1へのアップデートにより、この脆弱性は修正されています。
このReDoS脆弱性は、攻撃者が悪意のあるJavaScriptコードをterserに処理させることで、正規表現の処理を長時間化させ、サーバーのリソースを枯渇させ、サービス拒否状態を引き起こす可能性があります。攻撃者は、minify処理の遅延を利用して、他の攻撃を仕掛けるための時間稼ぎとして利用することも考えられます。特に、terserをCI/CDパイプラインで使用している場合、攻撃者はビルドプロセスを妨害し、ソフトウェアのリリースを遅らせる可能性があります。この脆弱性は、JavaScriptコードのminify処理に依存するアプリケーション全体に影響を及ぼす可能性があります。
CVE-2022-25858は、公開されており、PoC(Proof of Concept)が存在する可能性があります。CISAのKEVリストにはまだ登録されていません。NVD(National Vulnerability Database)は2022年7月16日に公開されています。この脆弱性は、JavaScriptエコシステム全体に影響を及ぼす可能性があり、注意が必要です。
Applications and services utilizing Terser for JavaScript minification or compression are at risk. This includes web applications, build systems (e.g., webpack, Parcel), and any Node.js projects that depend on Terser directly or indirectly through other packages. Developers using older versions of Terser in production environments are particularly vulnerable.
• nodejs / server:
npm list terser• nodejs / server:
npm audit• nodejs / server: Check package.json for terser versions < 4.8.1 or between 5.0.0 and 5.14.2. • nodejs / server: Monitor CPU usage; spikes correlated with Terser processing could indicate exploitation.
disclosure
エクスプロイト状況
EPSS
3.56% (88% パーセンタイル)
CVSS ベクトル
この脆弱性への主な対策は、terserをバージョン4.8.1以降にアップデートすることです。もしアップデートが困難な場合は、入力されるJavaScriptコードを検証し、正規表現の複雑さを制限するなどの対策を講じる必要があります。WAF(Web Application Firewall)を導入し、ReDoS攻撃の兆候を検知・遮断することも有効です。また、terserの正規表現処理に異常な時間がかかっている場合にアラートを発するように、監視システムを設定することも推奨されます。
パッケージ terser をバージョン 4.8.1 以降、またはバージョン 5.14.2 以降にアップデートしてください。これにより、正規表現の不適切な使用によって引き起こされる正規表現によるサービス拒否 (ReDoS) の脆弱性が修正されます。
脆弱性分析と重要アラートをメールでお届けします。
CVE-2022-25858は、JavaScriptのminifyツールterserのバージョン4.8.1未満、5.0.0から5.14.2に存在する正規表現 Denial of Service (ReDoS) 脆弱性です。攻撃者は正規表現の処理を長時間化させ、サービス拒否を引き起こす可能性があります。
Node.jsアプリケーションでterserのバージョン4.8.1未満、または5.0.0から5.14.2を使用している場合は、影響を受けます。プロジェクトの依存関係を確認し、バージョンをアップデートしてください。
terserをバージョン4.8.1以降にアップデートすることで、この脆弱性を修正できます。アップデートが困難な場合は、入力されるJavaScriptコードを検証し、正規表現の複雑さを制限するなどの対策を講じてください。
CVE-2022-25858は公開されており、PoCが存在する可能性があります。攻撃者がこの脆弱性を悪用する可能性は否定できません。
公式アドバイザリは、terserのGitHubリポジトリで確認できます。https://github.com/terser/terser