0.11.5以前1.0.0beta7以前のバージョンにXSS脆弱性が発見されています

RFC 3986に従っていない一部のブラウザ(Microsoft Internet Explorer 6,7)からのリクエストによりREQUEST_URIQUERY_STRINGが汚染される問題により、下記のメソッドの戻り値が汚染される問題が判明しました。

  • AgaviWebRouting::gen(null)*1
  • AgaviWebRequest::getRequestUri()
  • AgaviWebRequest::getUrlPath()
  • AgaviWebRequest::getUrlQuery()
  • AgaviWebRequest::getUrl()

最新の0.11.6および1.0.0beta8ではこの問題が修正されていますが、以前のバージョンをお使いの方は最新のものにアップデートするか下記のいずれかの対策を行う必要があります。

  • Ticket #1019で配布されているパッチを適応する
  • Suhosin version 0.9.21以降を導入する
  • 上記メソッドの結果をHTMLとして出力する箇所でhtmlspecialcharsによるエスケープ処理を行う
  • 関連する$_SERVERの変数をAgaviContext::getInstance()が呼ばれる前にサニタイズする

この問題に関する詳しい情報はTicket #1019を参照してください。

*1:gen('routename') や gen(null, array('foo' => 'bar') )などは除く