製品・ソフトウェアに関する情報
goxmldsig projectのgoxmldsigにおける複数の脆弱性
Title goxmldsig projectのgoxmldsigにおける複数の脆弱性
Summary

goxmlsigはGoで実装されたXMLデジタル署名機能を提供します。バージョン1.6.0以前では、`validate.go`の`validateSignature`関数が`SignedInfo`ブロック内の参照を順にチェックし、署名された要素のIDと一致するものを探していました。Goのバージョン1.22未満、または`go.mod`で古いバージョンを使用している場合、ループ変数のキャプチャに問題があります。コードはループ変数`_ref`の値ではなくそのアドレスを取得しているため、複数の参照がIDと一致したりループのロジックが誤った場合、`ref`ポインタはループ終了後常に`SignedInfo.References`スライスの最後の要素を指してしまいます。goxmlsigバージョン1.6.0にはこの問題を修正するパッチが含まれています。

Possible impacts 当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 また、当該ソフトウェアが扱う全ての情報が書き換えられる可能性があります。 さらに、当該ソフトウェアは停止しません。 そして、この脆弱性を悪用した攻撃の影響は、他のソフトウェアには及びません。 
Solution

正式な対策が公開されています。ベンダ情報を参照して適切な対策を実施してください。

Publication Date March 26, 2026, midnight
Registration Date April 21, 2026, 10:48 a.m.
Last Update April 21, 2026, 10:48 a.m.
CVSS3.0 : 重要
Score 7.5
Vector CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
Affected System
goxmldsig project
goxmldsig 1.6.0 未満
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
ベンダー情報
Change Log
No Changed Details Date of change
1 [2026年04月21日]
  掲載
April 21, 2026, 10:48 a.m.

NVD Vulnerability Information
CVE-2026-33487
Summary

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.

Summary

goxmlsig proporciona Firmas Digitales XML implementadas en Go. Antes de la versión 1.6.0, la función 'validateSignature' en 'validate.go' recorre las referencias en el bloque 'SignedInfo' para encontrar una que coincida con el ID del elemento firmado. En versiones de Go anteriores a la 1.22, o cuando 'go.mod' utiliza una versión anterior, existe un problema de captura de variable de bucle. El código toma la dirección de la variable de bucle '_ref' en lugar de su valor. Como resultado, si más de una referencia coincide con el ID o si la lógica del bucle es incorrecta, el puntero 'ref' siempre terminará apuntando al último elemento en el slice 'SignedInfo.References' después del bucle. goxmlsig versión 1.6.0 contiene un parche.

Publication Date March 27, 2026, 3:16 a.m.
Registration Date April 27, 2026, 12:20 p.m.
Last Update April 20, 2026, 11:15 p.m.
Affected software configurations
Configuration1 or higher or less more than less than
cpe:2.3:a:goxmldsig_project:goxmldsig:*:*:*:*:*:*:*:* 1.6.0
Related information, measures and tools
Common Vulnerabilities List