PaPoo
cover
technews
Author
technews
世界の技術ニュースをリアルタイムでキャッチし、日本語でわかりやすく発信。AI・半導体・スタートアップから規制動向まで、グローバルテックシーンの「今」をお届けします。

NGINXの深刻な脆弱性「CVE-2026-42945」を突くPoC公開、何が起きるのかをやさしく解説

まず結論:これはかなり危ない話

GitHubに公開された DepthFirstDisclosures/Nginx-Rift は、​CVE-2026-42945 を狙う exploit / PoC(検証用の攻撃コード)​ です。
元記事の説明によると、この脆弱性は NGINX の ngx_http_rewrite_module にある critical な heap buffer overflow で、条件がそろうと 認証なしの remote code execution(RCE)​、つまり「外部から勝手にサーバ上でコードを実行される」状態になり得ます。

個人的には、ここがいちばん怖いです。
“認証なし” で “RCE” という組み合わせは、サーバ運用者にとってかなり最悪級 だからです。しかも NGINX は Web の前線で使われることが多いので、影響範囲が広くなりやすいんですよね。


記事のキーポイント


このリポジトリは何をしているのか

リポジトリ名は Nginx-Rift。README には、
​「CVE-2026-42945 を再現するための RCE Proof of Concept」​ とあります。

PoC というのは、ざっくり言うと
​「この脆弱性、本当に悪用できるのかを確かめるための実演コード」​ です。
攻撃そのものに使える危険なものでもありますが、セキュリティ研究では「被害を防ぐために、どう壊れるのかを明確にする」目的でも使われます。

README の説明から読み取れるのは、この脆弱性が単なるクラッシュではなく、​メモリ破壊を通じて任意コード実行まで狙える という点です。
これはかなり重いです。メモリ破壊系のバグは、放置すると「たまたま落ちる」では済まず、​サーバ乗っ取りの入口 になることがあるからです。


脆弱性の背景をかんたんに言うと

元記事では、問題の中心をこう説明しています。

もう少しかみ砕くと

「箱を作るときにサイズを見積もるけど、その見積もりが甘かったので、実際に物を入れたら箱からあふれた」という話です。
しかも書き込み先は単なる文字列ではなく、​メモリ上の近くにある別の重要データ にもかかる可能性がある。
だから単なる文字化けでは終わらず、​動作の乗っ取り に発展しうるわけです。

この手のバグは、仕組みを聞くと地味に見えるのに、実害はかなり派手です。そこが怖いし、同時に面白くもあるところだと思います。


どうやって悪用されるのか

README の説明では、攻撃はかなり技巧的です。
単純に「壊す」だけではなく、​cross-request heap feng shui を使ってメモリ配置を誘導するとしています。

用語補足

つまり、攻撃者は複数回のアクセスを使って、
​「このメモリの隣にこのデータを置きたい」​
という状況を作り出すわけです。かなり職人芸です。

README では、近くにある ngx_pool_t の cleanup pointer を壊すと説明されています。
これはメモリ解放時に「後片付けで何を実行するか」を指すポインタのようなものです。
ここを乗っ取られると、​終了処理のタイミングで system() を呼ばせる 方向に持ち込める、としています。

ここでのポイントは、​URI に null byte を入れられないため、POST body を spray に使う と書かれていることです。
攻撃対象の制約に合わせて、別の入力経路を使い分けるあたり、いかにも本格的な exploit です。

正直、これは「ただのバグ報告」の雰囲気ではありません。
かなり実戦的な悪用コード に見えます。そこが一番の注目点だと思います。


影響を受ける製品・バージョン

README では、影響と修正版が次のように整理されています。

NGINX Open Source

NGINX Plus

また、​F5 の vendor advisory へのリンクも案内されています。
元記事の情報だけを見る限り、​かなり広いバージョン帯が影響 しています。
長年使われてきたソフトウェアほど、こういう「昔からある前提のズレ」が後になって深刻化するのが厄介です。


どこが重要なのか

1. NGINX は“入口”として使われることが多い

NGINX は Web サーバやリバースプロキシとして、インターネットに面した場所で動いていることが多いです。
つまり、脆弱性があると 外部から触られやすい
これは本当に重要なポイントです。

2. RCE は影響が大きい

クラッシュで済むならまだマシですが、RCE になると話が変わります。
攻撃者はサーバ上でコマンドを実行できる可能性があり、

など、被害が一気に広がります。

3. “見積もりミス” が深刻事故につながる

今回の本質は、長さ計算と実際の書き込みで前提がズレたことです。
こういうバグは、ぱっと見では「ちょっとした内部不整合」に見えても、実際にはメモリ安全性の崩壊につながります。
ソフトウェアの怖さがよく出ている事例だと思います。


GitHub リポジトリとして見た印象

このリポジトリには、README.mdpoc.pysetup.shenv/ が含まれているようです。
README の内容からすると、​環境構築から再現までを比較的手早く行える形 になっているように見えます。

GitHub 上では星もかなり付いていて、注目度の高さがうかがえます。
もちろん、星の数がそのまま危険度を示すわけではありませんが、​セキュリティ界隈で「まず話題になるタイプのリポジトリ」​ なのは間違いなさそうです。

個人的には、こういう PoC が出るときは
「修正済みだから安心」ではなく、​**“実際にどの程度の条件で成立するのか” を運用側が見直すタイミング** だと思っています。
パッチ適用だけで終わらず、設定ファイルの確認や公開範囲の点検までやるべき場面です。


運用者が気にすべきこと

この記事の情報だけでも、運用者は少なくとも次を確認したほうがよさそうです。

特に、​​「うちは単純な静的配信だから関係ない」​ と決めつけるのは危ないです。
設定次第で ngx_http_rewrite_module に触れている可能性はありますし、何よりインフラは思わぬところで機能がつながっています。
この手の話は、後から「そんな設定入ってたっけ?」が本当に起きるんですよね。


まとめ

Nginx-Rift は、CVE-2026-42945 を対象にした exploit / PoC です。
元記事の説明をまとめると、NGINX の rewrite 処理における 長さ計算と実際のコピーの不一致 が、​heap buffer overflow を引き起こし、最悪の場合は unauthenticated RCE につながる可能性があります。

技術的にはかなり高度ですが、要するに
​「サイズ見積もりをミスった結果、メモリを壊され、サーバを乗っ取られうる」​
という、かなりシンプルで怖い話です。

個人的には、この手の脆弱性は「難しい内部実装のズレ」が外から見える形で爆発する典型例だと思います。
そして、PoC が出た段階で注目すべきなのは、攻撃の細部だけでなく、​自分の環境がその前提条件に当てはまっていないか を早めに確認することです。


参考: GitHub - DepthFirstDisclosures/Nginx-Rift: exploit for CVE-2026-42945

同じ著者の記事