A newly discovered vulnerability lets attackers take advantage of single sign-on (SSO) systems relying on Security Assertion Markup Language (SAML) and authenticate as another user without knowing his or her password.
Duo Security's Duo Labs discovered the flaw and coordinated with the CERT/CC on disclosures from the affected vendors, which include Duo Security. The CERT/CC published an advisory on the flaw today.
SAML is an XML markup language used to authenticate to third-party applications. When a user authenticates to an application such as Office 365 or Salesforce, SAML redirects the browser to a company login page. After a successful login, the browser redirects to the third-party app and grants the user access. SAML is popular among SSO services.
Step one of SSO authentication is via the Identity Provider (IdP), which checks usernames and passwords, verifies account status, and prompts two-factor authentication. The IdP generates a signed SAML response, which it forwards to the service provider for validation. If the signature is valid, a string identifier in the SAML response identifies which user to authenticate.
Researchers at Duo Labs discovered many open-source libraries incorrectly use the results of XML DOM traversal and canonicalization APIs. An attacker can change SAML responses without altering the cryptographic signature and authenticate to applications as a legitimate user.
"Single sign-on simplifies authentication by letting you log into one service which, in turn, grants access to multiple services," explains Kelby Ludwig, senior application security engineer at Duo. "If an attacker has access to one of the single sign-on systems, they can tamper with SAML in such a way they can log in as different users."
The vulnerability is in the XML comments inserted into SAML response requests. In most cases, the XML canonicalization algorithm will remove comments while validating the signature. This means any attacker can add comments to a SAML response without invalidating the signature.
All an attacker needs is an account on the same network as the target. They can change the content of their own SAML requests so a different user's name appears as their own and bypass the primary authentication for the affected SAML provider.
Duo Labs identified the following affected vendors. CVEs have been assigned for:
- 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
This vulnerability affects each service relying on SAML in different ways. SAML IdPs and service providers are very configurable and there's room for greater or lesser impact. For example, service providers that use email addresses and validate their domain against a whitelist are less likely to be exploited than those allowing arbitrary strings to identify users, researchers explain.
It's important to emphasize this flaw doesn't only affect IdPs but SAML libraries. In the case a vendor wants to add single sign-on, they may add one of these libraries, which would increase the number of people affected. Anyone who uses one of these libraries should check whether they're affected, says Steve Manzuik, director of security research at Duo Labs.
"Enterprises running products will have patches to install and vendors using affected libraries will have to issue patches as well," says Manzuik. Remediation depends on the type of relationship a business has with SAML.
This vulnerability only lets an attacker bypass the first factor of authentication, so it helps if your SAML service provider uses two-factor authentication. However, if your IdP handles both first- and second-factor authentication, the flaw likely bypasses both.
Black Hat Asia returns to Singapore with hands-on technical Trainings, cutting-edge Briefings, Arsenal open-source tool demonstrations, top-tier solutions and service providers in the Business Hall. Click for information on the conference and to register.