newbb由来のバグ

Date 2006-05-10 13:09:04 | Category: XOOPS

in englishin japanese
xhnewbbのモデレータ権限についてのバグを取ろうとソースを追っていたら、newbb由来の大きなバグが次々と見つかりました。

- あるモデレータが、全フォーラムを編集できてしまう
- ロックトピックでも自由に投稿できてしまう
- プライベートフォーラムの中身をメンバー以外が自由に閲覧できてしまう

これは、いわゆる「脆弱性」とは違うのですが、*newbb*のアクセスコントロール機能に依存しているサイトでは問題となり得るでしょう。

他にも数多くのバグがみつかったのですが、一応、xhnewbbでは頑張って一通り修正しました。

http://www.peak.ne.jp/xoops/md/mydownloads/singlefile.php?lid=68

ただ、要修正箇所があまりにも広範囲であったため、エンバグしている可能性もあります。一応このサイトも1.17に上げて、しばらく運用してみます。

今回私が見つけた一連の不具合は、*newbb*のアクセスコントロール機能を使っていなければ問題ありませんので、あわててバージョンアップなどを行う必要はないかもしれません。

なお、newbb をベースとした各種モジュールがこれらの不具合に気づいている可能性は低く、いわゆるnewbb系のモジュールの作者は、一応チェックしておいた方が良いでしょう。

あなたがプログラマーなら、このバグの原因にはビックリさせられるでしょう。

newbbの構造は、
forum - topic_id - post_id
となっていて、投稿などの権限チェックは、forum単位で行われます。

ところが、newbbでは、そのforumを、リクエスト変数から取得しているのです。だから、権限で守られているpost_idやtopic_idについても、守られていないforumをリクエストすれば、守られていないforumと同じ権限が得られるわけです。


topic_idやpost_idが指定されている以上、forum番号は冗長情報であることは明らかで、それを無視するというのは、プログラミングの初歩の初歩だと思うのですが…

こんな初歩的なミスが誰からの指摘も受けずに放置され、多数のサイトで運用されてきた「標準モジュール」。
「目玉の数」がいかにあてにならないかの証明でもあるでしょう




You can read more news at PEAK XOOPS.
http://xoops.peak.ne.jp

The URL for this story is:
http://xoops.peak.ne.jp/md/news/index.php?page=article&storyid=98