Drupal 6.1 セキュリティアップグレード !
Drupal 6.0 に複数のクロスサイトスクリプティング脆弱性が見つかったということで、早速、この問題へのセキュリティフィクスといくつかのバグフィクスが行われた Drupal 6.1 がリリースされてました。
セキュリティリスクは Moderately critical (中程度)
で、Upgrading your existing Drupal 6 sites is strongly recommended. (アップグレードを強く推薦)
ということなので、Drupal 6.0 サイト運営中の方はぜひ。
今回のセキュリティ問題は drupal.js にある Drupal.checkPlain 関数が文字列の最初のインスタンスだけしかエスケープしていないということが関係しているらしいので、ついでにどう修正されてたのかを調査↓。
-
Drupal.checkPlain = function(str) {
-
str = String(str);
-
var replace = { '&': '&', '"': '"', '<': '<', '>': '>' };
-
for (var character in replace) {
-
str = str.replace(character, replace[character]);
-
}
-
return str;
-
};
のところの、str = str.replace(character, replace[character]); するところが、
-
var regex = new RegExp(character, 'g');
-
str = str.replace(regex, replace[character]);
となっていたので、RegExp のフラグに2番目以降の文字も検索するための 'g' を指定した新しいオブジェクト regex を定義して、その後で改めて regex を str.replace するような流れに変更...ということみたい。 なるほど。
drupal.js 以外では、とりあえず、同梱モジュールの .info ファイル全部 & system.module のバージョン表記と、CHANGELOG.txt の内容に変更があったのは置いといて... comon.inc, menu.inc, block.admin.inc, node.module, node.page.inc, system.module で変更を発見。(って言っても、menu.inc はコメントの Doxygen 表記が変更されただけっぽかったけど...)
- [参考]
- Drupal 6.1 fixing security issues released | drupal.org
drupal 6.1 | drupal.org
SA-2008-018 - Drupal core - Cross site scripting | drupal.org

