アカウント名:
パスワード:
でも標準SHELLをbashにしてる環境が多すぎたり、入力データをまんまSHELLに投げてるプログラムとかテスト不足のWebServerを代表とするdaemon群が一番悪い気がするんだがなぁ…
テスト不足のWebServerを代表とするdaemon群が一番悪い気がするんだがなぁ…
今回のバグは、bashが環境変数中に仕込まれたコードを実行してしまう、というものです。そして、リクエスト中のヘッダフィールドを環境変数として渡すことは、CGIの仕様によって要求されています(RFC 3875 [ietf.org])。したがって今回の脆弱性は、Webサーバが仕様通りに動作することがテストされていたとしても、回避することはできません。
攻撃っぽいフィールドを弾いてほしいところかも知れませんが、それは汎用のWebサーバではなくWAFの役割だと思います。
> リクエスト中のヘッダフィールドを環境変数として渡すことは、CGIの仕様によって要求されています
その仕様がバグだってことだな。
クライアントから送られてくるデータを無条件に受け付けるってどんだけお花畑なんだか。
クライアントから送られてくるデータに不穏当なものがないか検査する機能を提供すべきなのは、そのデータを受け付けるプログラムでしょ。
そういう機能を提供せずに他の実行ファイルを呼び出すというというのはバグというより無責任だな。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
人生の大半の問題はスルー力で解決する -- スルー力研究専門家
bashのBugではあるんだけど… (スコア:0)
でも標準SHELLをbashにしてる環境が多すぎたり、入力データをまんまSHELLに投げてるプログラムとか
テスト不足のWebServerを代表とするdaemon群が一番悪い気がするんだがなぁ…
Re: (スコア:2)
今回のバグは、bashが環境変数中に仕込まれたコードを実行してしまう、というものです。そして、リクエスト中のヘッダフィールドを環境変数として渡すことは、CGIの仕様によって要求されています(RFC 3875 [ietf.org])。したがって今回の脆弱性は、Webサーバが仕様通りに動作することがテストされていたとしても、回避することはできません。
攻撃っぽいフィールドを弾いてほしいところかも知れませんが、それは汎用のWebサーバではなくWAFの役割だと思います。
Re: (スコア:0)
> リクエスト中のヘッダフィールドを環境変数として渡すことは、CGIの仕様によって要求されています
その仕様がバグだってことだな。
クライアントから送られてくるデータを無条件に受け付けるってどんだけ
お花畑なんだか。
Re: (スコア:0)
別にどんな文字列だろうと評価しなければ何の害にもならないし。
Re: (スコア:0)
クライアントから送られてくるデータに不穏当なものがないか
検査する機能を提供すべきなのは、そのデータを受け付ける
プログラムでしょ。
そういう機能を提供せずに他の実行ファイルを呼び出すというと
いうのはバグというより無責任だな。
Re:bashのBugではあるんだけど… (スコア:0)
HTTPdが検査はまあできなくもないですが、事前情報が無い段階では「User-Agent: (){:;}; echo hoge」とかいうのは
「見かけないけど別におかしくはない」文字列に見えます。
bashが「よくわからないデータ」を「検査もせずに」「勝手に解釈」しなければ問題なかったんですよ。