ディスカッション (10件)
Nginxで新たな脆弱性が報告されました。サーバー管理者の方は、早急に最新情報とパッチの適用状況を確認することをお勧めします。
これはかなりひどいものだけど、いくつかの前提条件があるね。
「rewrite」ディレクティブの置換文字列内に疑問符が必要で、その後に正規表現のキャプチャグループを参照する「set」ディレクティブ(例: set $var $1)が必要になる。
あと、このPOCはASLRが無効であることを前提にしているよ。
Debian 12では修正済みかな?とはいえ、どこにも「rewrite」や「set」を使ってなければ影響はないってことだよね?
F5の公式ページはここ:
https://my.f5.com/manage/s/article/K000161019
他でも指摘されてる通り、ASLRが防御になるよ。影響を受ける環境の修正を待つ間、以下の緩和策が挙げられているね。
「rewrite定義で名前なしキャプチャではなく名前付きキャプチャを使用する」
「この脆弱性を緩和するには、$1や$2を適切な名前付きキャプチャである$user_idや$sectionに置き換える」
F5は1.31.0と1.30.1で修正済みだ。
OpenRestyは1.27と1.29向けにパッチが出てる:
https://github.com/openresty/openresty/commit/ee60fb9cf645c9573b98e7ba52f0401a11a1e416
NginxベースのLuaアプリサーバーであるOpenRestyの進捗はここで追えるよ:
https://github.com/openresty/openresty/issues/1119
セキュリティに携わる人間として、公開されたエクスプロイトがASLRをバイパスしていないからといって、この問題の深刻度が低いと主張したり示唆したりする人がこれほど多いのは本当に疲れる。解説記事では、この攻撃を使ってASLRを確実にバイパスする方法があると書かれている。証拠がなくてもそれを信じておくのが妥当な前提だよ。
ASLRは攻撃を困難にすることを目的とした多層防御技術だけど、ほとんどの場合、ASLRバイパスを含むのは時間とスキルの問題にすぎない。LLMエージェントによって、そのハードルは数週間ごとに下がり続けている。完全に武装化されたエクスプロイトが開発されるのも時間の問題(おそらくそう長くはかからない)だ。それが公開されるかもしれないし、非公開のままになるかもしれない。
「ASLRを有効にしていればリスクはない」なんて言うのは完全に間違いだし、そんな主張を信じる人にとって極めて有害だよ。
緩和策があれば攻撃が難しくなるからセキュリティの脆弱性なんて気にするな、という誤った考えのせいで、過去にどれだけの被害が出たことか。現代の緩和策があることはありがたいことだけど、パッチは一刻も早く適用して。ベンダーの立場なら、研究者がASLRバイパスを提供していないからといって脆弱性レポートを無効と判断してはだめだ。根本原因を修正して、攻撃を受ける前にパッチを適用できるだけの時間を稼げれば御の字と考えたほうがいい。
ApacheやNginxの代替として、メモリセーフな言語で書かれていてセキュリティホールだらけじゃない良い選択肢ってある?Jetty(Java製)やCaddy(Go製)を軽く調べてみたけど、どちらも別の種類の脆弱性(Jettyのシェルインジェクションなど)の歴史があるみたいで、これらがマシなのかどうかよく分からないんだよね。
誰かLowLevelに教えてあげて
それは知らなかった、ありがとう。次がいつ来るか心配だな。