CVE-2017-11427
Multiple SAML libraries may allow authentication bypass via incorrect XML canonicalization and DOM traversal
CVE-2017-11427 is a high vulnerability (CVSS 7.7) in Onelogin Pythonsaml, published April 17, 2019. Public exploit code exists. EPSS puts the chance of exploitation in the next 30 days at 4.37%, the 91st percentile. Fixed in python-saml 2.4.0.
OneLogin PythonSAML 2.3.0 and earlier may incorrectly utilize the results of XML DOM traversal and canonicalization APIs in such a way that an attacker may be able to manipulate the SAML data without invalidating the cryptographic signature, allowing the attack to potentially bypass authentication to SAML service providers.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- Low
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- None
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
7.7
Multiple SAML libraries may allow authentication bypass via incorrect XML canonicalization and DOM traversal
OneLogin PythonSAML 2.3.0 and earlier may incorrectly utilize the results of XML DOM traversal and canonicalization APIs in such a way that an attacker may be able to manipulate the SAML data without invalidating the cryptographic signature, allowing the attack to potentially bypass authentication to SAML service providers.
- Record
CVE-2017-11427- CVSS 3.0
- 7.7 High
CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N - Weakness
- CWE-287
- Updated
- 2026-11-02
EUVDEUVD-2019-0118
7.7
OneLogin PythonSAML 2.3.0 and earlier may incorrectly utilize the results of XML DOM traversal and canonicalization APIs in such a way that an attacker may be able to manipulate the SAML data without invalidating the cryptographic signature, allowing the attack to potentially bypass authentication to SAML service providers.
- Record
EUVD-2019-0118- CVSS 3.0
- 7.7 High
CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N - Updated
- 2026-11-03
GitHub AdvisoriesGHSA-j8j8-348v-wfm3
8.3
Python-saml allows manipulation of SAML data without invalidation of cryptographic signature
OneLogin PythonSAML 2.3.0 and earlier may incorrectly utilize the results of XML DOM traversal and canonicalization APIs in such a way that an attacker may be able to manipulate the SAML data without invalidating the cryptographic signature, allowing the attack to potentially bypass authentication to SAML service providers.
- Record
GHSA-j8j8-348v-wfm3- CVSS 4.0
- 8.3 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:H/SI:N/SA:N - CVSS 3.0
- 7.7 High
CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N - Weakness
- CWE-287
- Updated
- 2026-11-02
NVD
7.7
OneLogin PythonSAML 2.3.0 and earlier may incorrectly utilize the results of XML DOM traversal and canonicalization APIs in such a way that an attacker may be able to manipulate the SAML data without invalidating the cryptographic signature, allowing the attack to potentially bypass authentication to SAML service providers.
- Record
CVE-2017-11427- CVSS 3.0
- 7.7 High
CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N - CVSS 3.0
- 9.8 Critical
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - CVSS 2.0
- 7.5 High
AV:N/AC:L/Au:N/C:P/I:P/A:P - Weakness
- CWE-287
- Updated
- 2026-11-02
OSV
9.8
OneLogin PythonSAML 2.3.0 and earlier may incorrectly utilize the results of XML DOM traversal and canonicalization APIs in such a way that an attacker may be able to manipulate the SAML data without invalidating the cryptographic signature, allowing the attack to potentially bypass authentication to SAML service providers.
- Record
CVE-2017-11427- CVSS 3.0
- 9.8 Critical
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVGHSA-j8j8-348v-wfm3
8.3
Python-saml allows manipulation of SAML data without invalidation of cryptographic signature
OneLogin PythonSAML 2.3.0 and earlier may incorrectly utilize the results of XML DOM traversal and canonicalization APIs in such a way that an attacker may be able to manipulate the SAML data without invalidating the cryptographic signature, allowing the attack to potentially bypass authentication to SAML service providers.
- Record
GHSA-j8j8-348v-wfm3- CVSS 4.0
- 8.3 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:H/SI:N/SA:N - CVSS 3.0
- 7.7 High
CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N - Weakness
- CWE-287
- Updated
- 2026-11-02
Show 5 moreShow less
OSVopenSUSE-SU-2024:11262-1 No score
python36-python3-saml-1.11.0-1.2 on GA media
These are all security issues fixed in the python36-python3-saml-1.11.0-1.2 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2024:11262-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2024:14159-1 No score
python310-python3-saml-1.15.0-2.3 on GA media
These are all security issues fixed in the python310-python3-saml-1.15.0-2.3 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2024:14159-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:12034-1 No score
python313-python3-saml-1.16.0-2.4 on GA media
These are all security issues fixed in the python313-python3-saml-1.16.0-2.4 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:12034-1- Updated
- 2026-11-02
OSVPYSEC-2019-198 No score
OneLogin PythonSAML 2.3.0 and earlier may incorrectly utilize the results of XML DOM traversal and canonicalization APIs in such a way that an attacker may be able to manipulate the SAML data without invalidating the cryptographic signature, allowing the attack to potentially bypass authentication to SAML service providers.
- Record
PYSEC-2019-198- Updated
- 2026-11-02
OSVSUSE-SU-2021:0048-1 No score
Security update for python-defusedxml, python-freezegun, python-pkgconfig, python-python3-saml, python-xmlsec
This update for python-defusedxml, python-freezegun, python-pkgconfig, python-python3-saml, python-xmlsec fixes the following issues:
-
Update to 0.6.0
- Increase test coverage.
- Add badges to README.
- Test on Python 3.7 stable and 3.8-dev
- Drop support for Python 3.4
- No longer pass html argument to XMLParse. It has been deprecated and ignored for a long time. The DefusedXMLParser still takes a html argument. A deprecation warning is issued when the argument is False and a TypeError when it's True.
- defusedxml now fails early when pyexpat stdlib module is not available or broken.
- defusedxml.ElementTree.all now lists ParseError as public attribute.
- The defusedxml.ElementTree and defusedxml.cElementTree modules had a typo and used XMLParse instead of XMLParser as an alias for DefusedXMLParser. Both the old and fixed name are now available.
-
Remove superfluous devel dependency for noarch package
-
Update to 5.0
- Add compatibility with Python 3.6
- Drop support for Python 2.6, 3.1, 3.2, 3.3
- Fix lxml tests (XMLSyntaxError: Detected an entity reference loop)
-
Implement single-spec version.
-
Dummy changelog for bsc#1019074, FATE#322329
-
Add dependency on the full python (which is not pulled by setuptools anymore). Use %{pythons} macro now. (bsc#1177200)
-
Upgrade to 0.3.12:
- Refactor classes to functions
- Ignore Selenium
- Move to pytest
- Conditionally patch time.clock (removed in 3.8)
- Patch time.time_ns added in Python 3.7
-
Do not require python2 module for building python3 module
-
Update to 0.3.11:
- Performance improvements
- Fix nesting time.time
- Add nanosecond property
-
Remove superfluous devel dependency for noarch package
-
Add remove_dependency_on_mock.patch which removes dependency on python-mock for Python 3, where it is not required.
-
update to 0.3.10
- Performance improvements
- Coroutine support
- update to version 0.3.9
- If no time to be frozen, use current time
- Fix uuid1 issues
- Add support for python 3.6
update to version 0.3.8
- Improved unpatching when importing modules after freeze_time start()
- Add manual increment via tick method
- Fix bug with time.localtime not being reset. Closes #112.
- Fix test to work when current timezone is GMT-14 or GMT+14.
- Fixed #162 - allow decorating old-style classes.
- Add support to PyMySQL
- Assume the default time to freeze is 'now'.
- Register fake types in PyMySQL conversions
- Ignore threading and Queue modules. Closes #129.
- Lock down coverage version since new coverage doesnt support py3.2
- Fix or py3 astimezone and not passing tz. Closes #138.
- Add note about deafult arguments. Closes #140.
- Add license info. Closes #120.
-
Update to 0.3.5
- No upstream changelog
-
Remove unneeded freeze_hideDeps.patch
-
Use download Url as source
-
Use tarball provided by pypi
-
update to 1.5.1
- Use poetry instead of setuptools directly
- Fix #42: raise exception if package is missing
- Fix version parsing for openssl-like version numbers, fixes #32
- Add boolean static keyword to output private libraries as well
- Raise original OSError as well
-
Add missing test dependency pkgconfig
- Record
SUSE-SU-2021:0048-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
python-samlPyPI |
before 2.4.0 | 2.4.0 |
python-samlPyPI |
before 2.4.0, plus listed versions 2.0.02.0.12.0.22.1.02.1.1 Show 13 moreShow less2.1.22.1.32.1.42.1.52.1.62.1.72.1.82.1.92.2.02.2.12.2.22.2.32.3.0 |
2.4.0 |
python-defusedxmlSUSE:Enterprise Storage 6 |
before 0.6.0-1.5.1 | 0.6.0-1.5.1 |
python-freezegunSUSE:Enterprise Storage 6 |
before 0.3.12-1.5.1 | 0.3.12-1.5.1 |
python-isodateSUSE:Enterprise Storage 6 |
before 0.6.0-1.3.2 | 0.6.0-1.3.2 |
python-pkgconfigSUSE:Enterprise Storage 6 |
before 1.5.1-1.5.1 | 1.5.1-1.5.1 |
python-python3-samlSUSE:Enterprise Storage 6 |
before 1.9.0-1.5.2 | 1.9.0-1.5.2 |
python-xmlsecSUSE:Enterprise Storage 6 |
before 1.3.6-1.5.1 | 1.3.6-1.5.1 |
python-python3-samlopenSUSE:Tumbleweed |
before 1.15.0-2.3 | 1.15.0-2.3 |
python-python3-samlopenSUSE:Tumbleweed |
before 1.16.0-2.4 | 1.16.0-2.4 |
Public exploits
Links only. Every CVE stores no exploit code.
| Source | Link | Date |
|---|---|---|
| PoC in GitHub | CHYbeta/CVE-2017-11427-DEMO | 2018-03-03 |
History
| When | Changed | Sources |
|---|---|---|
| 2026-11-03 | aliases | EUVD |
| 2026-11-02 | created | CVE List, GitHub Advisories, NVD, OSV, PoC in GitHub |
References
duo.com/blog/duo-finds-saml-vulnerabilities-affecting-multiple-implementations
kb.cert.org/vuls/id/475445
nvd.nist.gov/vuln/detail/CVE-2017-11427
github.com/advisories/GHSA-j8j8-348v-wfm3
github.com/SAML-Toolkits/python-saml/commit/fad881b4432febea69d70691dfed51c93f0de10f
github.com/pypa/advisory-database/tree/main/vulns/python-saml/PYSEC-2019-198.yaml