Independent. Dynamic. Involved.
nlen

Kwetsbaarheden ontdekt in SAML Single-Sign-on Libraries

Door Mike van Laarhoven, Security Engineer Traxion Security BV.

Afgelopen week is door DUO Labs een kwetsbaarheid gevonden in een aantal SAML Single Sign On libraries welke gebruikt worden om applicaties te voorzien van het SAML protocol. De kwetsbaarheid bevindt zich in de volgende software libraries:

  • OneLogin – python-saml – CVE-2017-11427
  • OneLogin – ruby-saml – CVE-2017-11428
  • Clever – saml2-js – CVE-2017-11429
  • OmniAuth-SAML – CVE-2017-11430
  • Shibboleth – CVE-2018-0489
  • Duo Network Gateway – CVE-2018-7340

De kwetsbaarheid

Het SAML protocol heeft een beveiliging tegen het wijzigen van berichten voor het geval dat deze onderschept worden. Dit gebeurt middels een SAML-signature. De kwetsbaarheid zit hem in de manier waarop bovenstaande software libraries omgaan met XML comments in SAML berichten. Tevens blijven de SAML berichten geldig aangezien comments niet meegenomen worden in de signature berekening.

Hoe kan de kwetsbaarheid misbruikt worden?

Laten we stellen dat we de gebruikers John Doe en Jane Doe hebben. Wanneer men een naam conventie gebruikt waarbij de achternaam plus de eerste letter van de voornaam gebruikt wordt krijgen we twee keer DoeJ als gebruikersnaam. Soms wordt er dan voor gekozen om daar een nummer achter te plakken bij een gelijke gebruikersnaam. We krijgen dan DoeJ en DoeJ1. Voor de gebruiker DoeJ ziet een gedeelte van het SAML bericht er als volgt uit:

<Assertion ID=”12345678″>
<Subject>
<NameID>DoeJ</NameID>
</Subject>
</Assertion>

Stel dat gebruiker DoeJ1 malafide intenties heeft en wil inloggen als gebruiker DoeJ bij een kwetsbare applicatie. DoeJ1 configureert een proxy en onderschept het eigen SAML bericht. DoeJ1 past het SAML bericht vervolgens aan als volgt:

<Assertion ID=”12345678″>
<Subject>
<NameID>DoeJ<!–comment–>1</NameID>
</Subject>
</Assertion>

Omdat de kwetsbare libraries alles na het commentaar in het NameID veld niet meer lezen én de signature valide blijft omdat commentaar niet meegenomen wordt in de signature berekening is DoeJ1 nu ingelogd als DoeJ.

Oplossingen: beschermende maatregelen zodat kwetsbaarheid niet meer gebruikt kan worden

Applicaties welke gebruik maken van de kwetsbare libraries dienen zo snel mogelijk geüpdatet te worden om deze kwetsbaarheid te verhelpen.

Een andere oplossing is het versleutelen van de complete SAML-assertion, waardoor gebruik van bovenstaande kwetsbaarheid niet mogelijk is. De aanvaller kan bij een versleuteld bericht geen commentaar injecteren. Echter dient key management daarbij wel goed ingeregeld te worden.

Wilt u weten of uw applicaties deze of andere kwetsbaarheden bevatten?
Neem contact op met Traxion voor een penetratie test of security audit.