Skip to content
OpenAdvisories
Unscored GO-2026-6909

Nil-pointer panic in validateAssertion and namespace-blind Subject.NameID in github.com/crewjam/saml

Published Nov 5, 2026 · Updated Nov 5, 2026 · Assigned by GO

Description

github.com/crewjam/saml through v0.5.1 contains two vulnerabilities in SAML assertion processing:

1. ServiceProvider.validateAssertion dereferences assertion.Issuer without a nil check when ExpectedIDPEntityID is non-empty. A signed SAML assertion that omits the optional <saml:Issuer> element causes a nil-pointer dereference panic after signature verification.

2. Subject uses the bare XML struct tag xml:"NameID", which matches <NameID> elements in any XML namespace. When a signed assertion omits <saml:NameID> and includes a <NameID> element in a foreign namespace inside <saml:Subject>, encoding/xml populates Subject.NameID from the foreign element, allowing an authenticated principal to spoof Subject.NameID.Value.

Affected packages

EcosystemPackageAffectedFixedRecord
Go github.com/crewjam/saml all versions — GO-2026-6909

References