WordPress 4.7.0および4.7.1 に認証なしでコンテンツをアップロードできる深刻な脆弱性 33
ストーリー by hylom
すぐに更新しなくても大丈夫かなと思っていたらそんなことはなかった 部門より
すぐに更新しなくても大丈夫かなと思っていたらそんなことはなかった 部門より
あるAnonymous Coward 曰く、
WordPress 4.7.0および4.7.1に、認証無しで誰もがサイト上にコンテンツをアップロードできるという脆弱性が存在することが明らかになった。この脆弱性は1月26日にリリースされたWordPress 4.7.2で修正されたが、リリース時にはこの脆弱性については非公開とされていた(プレスリリース、IPA、ITmedia、Impress Watch)。
問題の脆弱性は、REST API経由でコンテンツを投稿する際に本来必要であるはずの認証をバイパスできるというもの。このREST API機能は以前からプラグインとして用意されていたが、バージョン4.7から本体に同梱、デフォルトで有効化されるようになったものだという。脆弱性の詳細についてはセキュリティエンジニアの徳丸氏のブログが詳しいが、「id=1A」のようなパラメータを指定した場合に、存在しないIDとみなされるはずがPHPの型変換により特定の処理が動いてしまうといことらしい。
WordPress.orgは通常すぐに脆弱性情報を公開するが、今回は危険性を鑑みて、自動アップデートやセキュリティ企業の対策の猶予期間を設けた上での発表という異例の対応となった。既に国内のサイトでもこの脆弱性を利用したとみられる改竄が確認されている事から、該当バージョンの利用者は至急アップデートを実施されたし。
余計なことするから.... (スコア:2, 興味深い)
>API機能は以前からプラグインとして用意されていたが、バージョン4.7から本体に同梱、デフォルトで有効化される
Re:余計なことするから.... (スコア:1)
プラグインの脆弱性だと「いつもの事か」で話題にならずにすんだのに、余計な事をするから……
Re: (スコア:0)
これほど広範に利用されてるんだから、もう機能拡張なしでただ脆弱性を消していくだけの安定版が欲しいところだ。
プラグインがあるんだし、新機能なんかもそちらで導入させれば。
実際、ほとんどのwordpress利用者は新機能なんか望んでないと思う。ブログなら書くだけだし、普通のサイトなら一度出来上がったらおしまい。
自分は自動で4.7.2にアップデートされたけど、念のためREST APIを無効にするプラグインを入れた。なんか本末転倒。
Re: (スコア:0)
コメントとか検索とかの動的な機能がいらないなら、
Simply StaticとかStaticPressを使って静的化するのがいい
Wordpress本体は外部からアクセスできない場所に置いとけば、
攻撃を受けることはまずないので、アップデートする必要もない
Re: (スコア:0)
Wordpress本体は外部からアクセスできない場所に置いとけば、
それができるくらいリテラシ高い顧客はMT買う。
Re: (スコア:0)
これほど広範に利用されてるんだから、もう機能拡張なしでただ脆弱性を消していくだけの安定版が欲しいところだ。
長期間サポートしてくれるエディションを出せばいいのだがそれだと高額のサポート料が必要になるでしょうな
Re: (スコア:0)
余計なAPIだけでなく、許可した種類以外のあらゆるURLを無効にするプラグインが欲しいな
スパムのBOTとかが負荷を掛けてくることもあるから、HTTPD側の機能でPHPを実行することなく404にして欲しい
Googleから勧告 (スコア:1)
この件について、なぜか全く無関係のGoogleから更新を促すメールが飛んできました。
これについては有り難かったのですが、Googleに監視されてるみたいで(実際そうなのでしょうが)少々気味が悪かったです。
…なんか登録したっけなぁ?
Re: (スコア:0)
Google Search Consoleから来た [hukugyolife.com]って話があったので、それでしょうか?過去に登録してると来るんですかね。
…全然無関係のサイトの管理者にまで送ってたら、ちょっと怖い。
# Googleさんこんな案内までしてるんだなぁ。
Re: (スコア:0)
これですねー。そういえば遥か昔(10年くらい前?)に登録した覚えが…。ただの検索エンジン登録っていう認識だったので、完全に失念してました。
こんなメール初めて見ましたが、今回はわざわざユーザの使用しているサービスプログラムを認識して、通知送ってくるぐらい緊急ってことなんですかね。
PHPの型変換により特定の処理が動いてしまう (スコア:0)
いやいやいや
どういう頭の構造してたら(int)"1A"が1になる言語設計しようと思うんだよ…
Re:PHPの型変換により特定の処理が動いてしまう (スコア:2, 参考になる)
どういう頭の構造してたら(int)"1A"が1になる言語設計しようと思うんだよ…
御三家で言うと、Pythonだけがまともな頭の構造してるということですね。わかります。
Re: (スコア:0)
atoi("1A")はいくらになるの!っと
Re: (スコア:0)
#!ruby
p "1A".to_i
Re: (スコア:0)
#!perl
print int("1A");
Re: (スコア:0)
#!ruby
p Integer("1A") #~> ArgumentError: invalid value for Integer(): "1A"
p Integer("1A", 16) #=> 26
Re: (スコア:0)
> どういう頭の構造してたら
先頭から見ていって、数字と解釈できなくなるところまで変換。
というところじゃなかろうか。
Re: (スコア:0)
ヘッダが"1"でトレーラが"A"という構造か
Re: (スコア:0)
Re: (スコア:0)
歴史的な経緯があるんですかね。
ちなみにPASCAL(といってもボーランド系からの流れ)では、例外を投げるStrToIntと、戻り値不定だがエラーがあったことが分かるValがあるようです。
#この15年くらい触ってなかったのでググった。
Re: (スコア:0)
PHPのキャストはどうなってるんだって読んで行ったら、C言語のstrtod関数も結構大胆なんだね。doubleに変換できない文字があったことはわかるけど、変換自体が失敗するわけじゃなくて、無視するだけなんだ…未知の単位がくっついていて、いちいち引き剥がさなくてもいいようにっていう親切心なのかな??
http://www9.plala.or.jp/sgwr-t/lib/strtod.html [plala.or.jp]
Re: (スコア:0)
そのリンク貼ってその感想に至る理由がわからない
Re: (スコア:0)
print "1A" + "1A"; #2
print "1A" * 1; #1
my $str = "1A";
print ++$str; #2
どこからどうみても1Aは1だよね。
Re: (スコア:0)
それも酷いが、urlの引数のidの書式のチェックをする気がない?
断じてis_numericは使わない?
モコウ…これでチェックメイト?
Re: (スコア:0)
あれ?って思ったけどPHP7からはis_numericで16進はエラーになったのか
でもほとんどのところはまだ7じゃないんじゃない?
1Aは数値としては妥当だから7以前だと通しちゃうんじゃないかな
Re: (スコア:0)
ああ、0xついてないとfalseになるね、失礼しました
2,3日前から騒がれだしたような (スコア:0)
公式が発表したのが2月1日、で日本語圏で騒がれだしたのが一昨日あたりからなイメージなので、ガチでクラッキングしてる奴らはもうとっくに一仕事終えてそう。
情報格差は常日頃からあるとはいえ、セキュリティ系はやばいな。
Re: (スコア:0)
某大学とか某五輪相とかも、この穴を突くれたんですかね?
Re: (スコア:0)
クラッカーどころか
観測者が一仕事終えてますね
http://izumino.jp/Security/def_jp.html [izumino.jp]
Re: (スコア:0)
げげ、個人サイトどころか企業サイトもガンガンやられてるとわ。こいつは大事になるわけです(汗
Re: (スコア:0)
観測サイトから、いくつかの企業サイトと、その公式ツイッター等をみてみたんだけど
改ざんされたってのを公表しているサイトが
(2~3個チェックした限りでは)見当たらなかったってのが怖い
メルクストーリアの公式では、サーバ障害ってことにして改ざんっての隠してるし
アニメージュは何もなし
4.7.1から4.7.2のアップデートがあまりに短期間だったので (スコア:0)
何かあると思ったら……うちは改ざんされていないと思います。
この攻撃に成功したら、どんなログが残るの? (スコア:0)
linux系で。痕跡を消されるケースは除く。