違いが全くわからない。Cygwinの4.1系でも脆弱性無さげだけど。test$ありだと上のようになるそうです。[redhat.com]ようです。適用済なのではと思います。ディストリビューションに付属のものはバージョン番号を上げずに脆弱性対策のパッチだけを当てることがあるので、バージョン番号のみで判断できないというのはまぁいつものことですね。対策済みのパッケージが配布されているみたいですね。[wikipedia.org]君がbash書いてればbashされることはなかっただろうに残念ですね。子プロセスに関数定義を引き継ぐためのなんだかんだと聞いたような。まあwebからアクセスできるとこで一切bashなんかinvokeしなけりゃいいんですよ。そんなことをしているつもりの人はごくごくごくごく一部だったんでしょうけど、まあ。Cowardこういう無謬主義こそソフトウェアの世界で最も忌み嫌われるべきものだと思うんだけど。Cowardバグを出したことがないやつだけだ。正しくは、自分の書いたバグにすぐきづける奴だけ、でないと。Cowardなんというか無産・搾取に徹したフリーライダー特有の傲慢さが滲み出てますよね。Cowardライ"ダ"ー?#プライドすらないという意味ではこれでもあながち間違いではないというのがなんとも。Cowardそんな話じゃない。Cowardローカル環境で完結するプログラムだと思ってると、無茶な曲芸やっちゃう事もあるかな。(#2682452)「(){~}」の部分は関数の定義の部分で、その関数定義を環境変数にセットされるところまでは良くて、環境変数にセットされただけだと、誰かがその環境変数に入っている関数を叩かないと実際の処理は発生しない。勝手に実行してしまう、というのが今回の脆弱性。実行する事が分かっている場合になります。実行する内容を知っている事が必要、という事になると思います。本来実行しようとしている内容にかかわらず、環境変数さえ設定できれば任意のコマンドが実行できます。hoge'」の部分すら必要ありません。本来、実行しようとしているコマンドを置き換える事が可能、という点は、条件がそろうと現実的な問題になりうると思います。見つかるコマンドや内部コマンドよりも優先順位が高いですが、環境変数経由で渡ってくる関数も、同様の優先順位で良いのか、という気がします。環境変数経由の関数が通常のコマンドよりも低い優先順位であれば、コマンドの置き換えは避けられるのでは、と思いました。Cowardその方法で攻撃するためには、攻撃対象が任意の環境変数を渡せるサービスでないとならない。他のサービスでもさすがに任意の環境変数を渡せるようなものは無いのでは。(断言はできないけど。agentみたいなどうでもいい変数をいじるだけでアタックできてしまうのがこの問題の怖さだろう。(←しょぼすぎるので、もっとましなの誰か作ってください、、、)とかして、ざっと調べてみたけど、すでにアタックの形跡があった。209.126.230.74"となってるアクセスで、pingが帰れば脆弱性ありと判定できる仕組みであるらしい。バグの影響を調査しているらしく、悪質なものではないようだ。ひとつ別のアクセス(同じくpingの実行を狙ったもの)があって、それは本当にアタックしてきたものらしい。うちの場合は404やら403のエラーになっていたので問題なかったけど、ちょっとぞっとした。速攻でbashをアップデートしたことは言うまでもない。hello`;みたいなのがあったら、sh呼び出されてアウトになるわけで、それくらいのことなら私(=趣味でプログラムをいじる程度の人)は余裕でやっちゃってます。