Bulletin d'alerte Debian

DSA-2842-1 libspring-java -- Déni de service

Date du rapport :
13 janvier 2014
Paquets concernés :
libspring-java
Vulnérabilité :
Oui
Références dans la base de données de sécurité :
Dans le système de suivi des bogues Debian : Bogue 720902.
Dans le dictionnaire CVE du Mitre : CVE-2013-4152.
Plus de précisions :

Alvaro Munoz a découvert une injection d'entité externe XML (XXE) dans le cadre d'application Spring qui peut être utilisé pour propager des contrefaçons de requête intersite et des attaques par déni de service sur d'autres sites.

L'encapsuleur OXM de Spring n'affiche pas de propriété pour désactiver la résolution d'entité quand on utilise le désérialisateur JAXB. Il y a quatre implémentations de source possibles passées au désérialisateur :

  • DOMSource
  • StAXSource
  • SAXSource
  • StreamSource

Pour la classe DOMSource, le XML a déjà été analysé par le code utilisateur et ce code est responsable de la protection contre les XXE.

Pour la classe StAXSource, le XMLStreamReader a déjà été créé par le code utilisateur et ce code est responsable de la protection contre les XXE.

Pour les instances de SAXSource et de StreamSource, Spring traite par défaut les entités externes et crée ainsi cette vulnérabilité.

Ce problème a été résolu en désactivant le traitement par défaut des entités externes et en ajoutant une option pour l'activer pour les utilisateurs qui ont besoin d'utiliser cette fonctionnalité quand ils traitent du XML provenant d'une source de confiance.

Spring MVC traite le XML fourni par l'utilisateur avec JAXB en combinaison avec la classe XMLInputFactory de StAX sans désactiver la résolution des entités externes. La résolution d'entité externe a été inactivée dans ce cas.

Pour la distribution stable (Wheezy), ce problème a été corrigé dans la version 3.0.6.RELEASE-6+deb7u1.

Pour la distribution unstable (Sid), ce problème a été corrigé dans la version 3.0.6.RELEASE-10.

Nous vous recommandons de mettre à jour vos paquets libspring-java.