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; }
のように書き換えます。
今まで正しくハイライトされていなかった<,>などを含む文字列が正しくハイライトされるようになります。