Debians sikkerhedsbulletin

DSA-2842-1 libspring-java -- lammelsesangreb

Rapporteret den:
13. jan 2014
Berørte pakker:
libspring-java
Sårbar:
Ja
Referencer i sikkerhedsdatabaser:
I Debians fejlsporingssystem: Fejl 720902.
I Mitres CVE-ordbog: CVE-2013-4152.
Yderligere oplysninger:

Alvaro Munoz opdagede en XML External Entity-indsprøjtning (XXE) i Spring Framework, hvilket kunne anvendes til at iværksætte CSRF- og DoS-angreb mod andre websteder.

Spring OXM-wrapper'en udstillede ingen property til deaktivering af entitetsopløsning, når JAXB-unmarshaller'en benyttes. Der er fire mulige kildeimplementeringer, som kan overføres til unmarshaller'en:

  • DOMSource
  • StAXSource
  • SAXSource
  • StreamSource

Ved en DOMSource er XML'et allerede fortolket af brugerkode, og den kode er ansvarlig for at beskytte mod XXE.

Ved en StAXSource er XMLStreamReader'en allerede blevet oprettet af brugerkode, og den kode er ansvarlig for at beskytte mod XXE.

Ved SAXSource- og StreamSource-instancerne, behandler Spring eksterne entiteter som standard, og dermed opstår sårbarheden.

Problemet blev løst ved at deaktivere behandling af eksterne entiteter som standard, samt tilføje en indstillingsmulighed, som kan aktivere det for de brugere, der har behov for funktionen, når der behandles XML fra en kilde, der er tillid til.

Man har også fundet ud af, at Spring MVC behandlede brugerleveret XML med JAXB i kombination med en StAX-XMLInputFactory, uden at deaktivere ekstern entitetsopløsning. Ekstern entitetsopløsning er blevet deaktiveret i denne situation.

I den stabile distribution (wheezy), er dette problem rettet i version 3.0.6.RELEASE-6+deb7u1.

I den ustabile distribution (sid), er dette problem rettet i version 3.0.6.RELEASE-10.

Vi anbefaler at du opgraderer dine libspring-java-pakker.