CVE-2020-29509 Authentication Bypass in github.com/russellhaering/gosaml2
Attackers can craft XML inputs that behave inconsistently during processing, potentially bypassing security checks in applications using the Go encoding/xml package.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2020-29509?
CVE-2020-29509 is a critical vulnerability in Golang Go, published on 14 Dec 2020. An attacker can exploit it over the internet without logging in, with no action from the victim.
Official description
The encoding/xml package in Go (all versions) does not correctly preserve the semantics of attribute namespace prefixes during tokenization round-trips, which allows an attacker to craft inputs that behave in conflicting ways during different stages of processing in affected downstream applications.
Weakness: CWE-115
Which versions are affected by CVE-2020-29509?
4 open source packages ship an affected version, including golang and github.com/russellhaering/gosaml2. It affects 2 products.
| Package | Affected | Fixed in |
|---|---|---|
golang Bitnami | All versions | 1.17.0 |
github.com/russellhaering/gosaml2 Go | All versions | 0.6.0 |
github.com/russellhaering/gosaml2 Go | All versions | 0.6.0 |
github.com/russellhaering/gosaml2 Go | All versions | 0.6.0 |
Products include Golang Go, Netapp Trident.
How do I fix CVE-2020-29509?
Upgrade golang to 1.17.0 or later.
Is CVE-2020-29509 being exploited?
There is no known exploitation of CVE-2020-29509 in the wild and no public exploit code.
Other vulnerabilities in Golang Go
- CVE-2020-0601 Microsoft Windows CryptoAPI Spoofing
- CVE-2026-27143 Missing bound checks can lead to memory corruption in safe Go in cmd/compile
- CVE-2024-24790 Unexpected behavior from Is methods for IPv4-mapped IPv6 addresses in net/netip
- CVE-2023-39320 Arbitrary code execution via go.mod toolchain directive in cmd/go
- CVE-2023-24540 Improper handling of JavaScript whitespace in html/template
Sources
Also known as AZL-6448, AZL-78900, BIT-golang-2020-29509, DEBIAN-CVE-2020-29509, GHSA-xhqq-x44f-9fgg, GO-2021-0060 and 2 more.