0.11.5以前1.0.0beta7以前のバージョンにXSS脆弱性が発見されています
RFC 3986に従っていない一部のブラウザ(Microsoft Internet Explorer 6,7)からのリクエストによりREQUEST_URIやQUERY_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') )などは除く