1.4のキーワードハイライト機能にXSS脆弱性

  • ページ: BugTrack
  • 投稿者: hirofummy?
  • 優先順位: 緊急
  • 状態: 完了
  • カテゴリー: 本体バグ
  • 投稿日: 2003-02-26 (水) 22:38:12
  • バージョン: 1.4

メッセージ

1.4のキーワードハイライト機能にXSS脆弱性が存在します。 1.3.3にはこの機能がないため問題ありません。

http://pukiwiki.sourceforge.jp/dev/?word=%3Cscript%3Ealert%28%29%3C%2Fscript%3E

原因

キーワードの文字列がサニタイズされていないため。

対策案

html.phpの76行目あたりの

foreach ($keys as $key) {
  $to = "<strong class=\"word{$words[$key]}\">$key</strong>";
  $body = preg_replace("/(?:^|(?<=>))([^<]*)/e",'str_replace($key,$to,\'$1\')',$body);
  $search_word .= ' '.$to;
}

となっている部分を

foreach ($keys as $key) {
  $sanitized_key = htmlspecialchars($key);
  $to = "<strong class=\"word{$words[$key]}\">$sanitized_key</strong>";
  $body = preg_replace("/(?:^|(?<=>))([^<]*)/e",'str_replace($sanitized_key,$to,\'$1\')',$body);
  $search_word .= ' '.$to;
}

のように書き換えます。

副次効果

今まで正しくハイライトされていなかった<,>などを含む文字列が正しくハイライトされるようになります。


  • とりあえず書いてしまいましたが、開発版のバグ報告もここ(BugTrack)でよろしいのでしょうか? -- hirofummy? 2003-02-26 (水) 22:44:09
  • ここでいいです。他のページだと見落とすこともあります。 X( -- ぱんだ 2003-02-27 (木) 09:23:34
    • 了解です。 -- hirofummy? 2003-02-27 (木) 21:13:42
  • cvsに投入しました。cvs:html.php(rev 1.61) -- ぱんだ 2003-02-27 (木) 10:06:13
  • 確認しました。 -- hirofummy? 2003-02-27 (木) 21:13:28

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2003-02-27 (木) 21:14:05
Site admin: PukiWiki Development Team

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u7. HTML convert time: 0.194 sec.

OSDN