目次(5)

CVE-2026-119190
CVE-2026-118782
CVE-2026-118779
CVE-2026-119188
CVE-2026-119187
CVE-2026-119186
CVE-2026-118778
CVE-2026-118777
CVE-2026-118775
CVE-2026-118780
CVE-2026-118781
JavaScript 製の暗号ライブラリ node-forge に、2026 年 10 月 30 日(UTC)に 11 件の脆弱性が一斉に公開されました。すべて 1.4.0 以下が対象で、1.4.1 で修正されています(npm の最新版は 1.4.2)。深刻度は High が 5 件(CVSS 7.4〜7.5)、Medium が 3 件、Low が 3 件です。CISA の KEV には載っていません。EPSS は 11 件とも 0.1〜0.6% 台(10/30 時点)です。
High の 5 件
| CVE | 内容 | CVSS |
|---|---|---|
| CVE-2026-119190 | 証明書チェーンの検証で、廃止された拡張の OID(2.5.29.10・2.5.29.13)を basicConstraints として扱い、CA でない証明書が CA として受理されうる | 7.4 |
| CVE-2026-118782 | PKCS#12 の繰り返し回数が 0 以下でも受理され、鍵がパスワードに依存しない定数になる。パスワードを知らなくても MAC を偽造できる | 7.5 |
| CVE-2026-118779 | PEM の解読(pem.decode)の正規表現が、数十 KB の細工した入力で数秒〜数分イベントループを止める | 7.5 |
| CVE-2026-119188 | TLS で、分割されたハンドシェイクの途中に別種のレコードを挟むと未処理の例外が出て、Node.js のプロセスが落ちる | 7.5 |
| CVE-2026-119187 | TLS のレコード処理が再帰で、小さなレコードを数千個送るとスタックが尽きてプロセスが落ちる | 7.5 |
Medium と Low の 6 件
- CVE-2026-119186(Medium・5.9): AES-GCM の tagLength に 0 など不正な値を渡すと、認証タグが空になり、タグなしでも復号の検証が通る。
- CVE-2026-118778(Medium・5.9): TLS クライアントで、サーバーが証明書を送らないと例外で落ちる。認証を回避されることはない。
- CVE-2026-118777(Medium・4.8): forge.http が Set-Cookie の名前
__proto__を処理し、Object.prototype を書き換えられる。 - CVE-2026-118775(Low・3.7): asn1.oidToDer が OID の最初の数値の範囲を調べず、別の OID の符号になる。
- CVE-2026-118780(Low・3.7): 同じ主体名の CA が複数あるストアで、検証のたびに CA 証明書がストアから消える。
- CVE-2026-118781(Low・2.9): modInverse に負の値を渡すと無限ループになる。
影響が大きいのはどこか
- TLS を forge で処理している場合: CVE-2026-119187 と CVE-2026-119188 は、認証も有効なハンドシェイクも要らず、約 18 バイトか 20 KB 未満の通信で、ソケットの data ハンドラから呼ぶ一般的な使い方のプロセスを落とせます(勧告の記載)。
- 証明書の検証に使っている場合: CVE-2026-119190 は、信頼された CA が、拡張を確認せずに申請者の拡張をそのまま写して証明書を発行した場合に成立します。勧告は、CA の運用側が未知の拡張を写さないようにすることも対策としています。
- PKCS#12 を読む場合: CVE-2026-118782 で、パスワードで守られているはずのファイルの改ざんが検出できなくなります。
- PEM を外部から受け取る場合: CVE-2026-118779 は、証明書・秘密鍵・公開鍵・CSR・PKCS#7 など、PEM を読むすべての入口が対象です。勧告によると、1.4.0 では約 7 KB で 0.4 秒、約 29 KB で 2 秒を超える停止が起きます。
対応
- node-forge を 1.4.1 以降に更新してください(最新は 1.4.2)。直接の依存だけでなく、他のパッケージが引き込んでいる node-forge も
npm ls node-forgeで確認します。 - すぐ更新できない場合の回避策は勧告ごとに異なります。PEM は大きな入力を拒否する、TLS は connection.process() の例外を捕捉して接続を閉じる、PKCS#12 は繰り返し回数が 1 未満の入力を拒否する、などです。証明書チェーンの検証(CVE-2026-119190)には、node-forge 側の回避策はありません。verify コールバックで、末端以外の証明書に OID 2.5.29.19 の CA 指定が無いチェーンを拒否できます。
確認できていない点
- 勧告に、実際の攻撃が確認された記載はありません。KEV にも載っていません。
- 1.4.2 の修正内容は、この記事では確認していません。
- NVD の評価は、この記事の時点で未確認です。数値は GitHub Advisory の値です。
この記事について
- 執筆・編集
- World Security 編集部
出典
- GitHub Advisory GHSA-5x38-2vff-x55p(GitHub)
- GitHub Advisory GHSA-jc66-7q78-782g(GitHub)
- GitHub Advisory GHSA-7wch-p9px-956x(GitHub)
- GitHub Advisory GHSA-8hrf-8g6f-7xwp(GitHub)
- GitHub Advisory GHSA-hqq3-7jhf-c5jx(GitHub)
- node-forge v1.4.1 リリース(digitalbazaar)
- npm node-forge(npm)
- NVD CVE-2026-119190(NIST NVD)
- FIRST EPSS API(FIRST)
- CISA Known Exploited Vulnerabilities Catalog(JSON)(CISA)



