Debian セキュリティ勧告

DSA-2842-1 libspring-java -- サービス拒否

報告日時:
2014-01-13
影響を受けるパッケージ:
libspring-java
危険性:
あり
参考セキュリティデータベース:
Debian バグ追跡システム: バグ 720902.
Mitre の CVE 辞書: CVE-2013-4152.
詳細:

Alvaro Munoz さんが、Spring フレームワークに XML 外部エンティティ (XXE) インジェクションを発見しました。これを利用して他のサイトでの CSRF や DoS 攻撃を実施することが可能です。

Spring OXM ラッパーは JAXB unmarshaller 利用時にエンティティ解決を無効化する属性を何も用意していませんでした。 unmarshaller に渡す可能性のあるソースの実装は4つあります:

  • DOMSource
  • StAXSource
  • SAXSource
  • StreamSource

DOMSourceでは XML はユーザコードにより既に解析され、そのコードが XXE に対する防護を担当します。

StAXSource では XMLStreamReader がユーザコードにより既に作成され、そのコードが XXE に対する防護を担当します。

SAXSource と StreamSource では Spring がデフォルトで外部エンティティを処理していたために結果としてこの脆弱性が発生しました。

この問題は外部エンティティ処理をデフォルトで無効化し、 その機能を必要とするユーザには信頼できるソースから提供された XML を処理できるオプションを追加することで解決しています。

さらに、ユーザにより提供された XML を Spring MVC が外部エンティティ解決を無効化せずに JAXB と StAX XMLInputFactory を組み合わせて処理していることが確認されています。 この場合外部エンティティ解決は無効化されます。

安定版 (stable) ディストリビューション (wheezy) では、この問題はバージョン 3.0.6.RELEASE-6+deb7u1 で修正されています。

不安定版 (unstable) ディストリビューション (sid) では、この問題はバージョン 3.0.6.RELEASE-10 で修正されています。

直ちに libspring-java パッケージをアップグレードすることを勧めます。