goxmldsig projectのgoxmldsigにおける複数の脆弱性
タイトル goxmldsig projectのgoxmldsigにおける複数の脆弱性
概要

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にはこの問題を修正するパッチが含まれています。

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

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

公表日 2026年3月26日0:00
登録日 2026年4月21日10:48
最終更新日 2026年4月21日10:48
CVSS3.0 : 重要
スコア 7.5
ベクター CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
影響を受けるシステム
goxmldsig project
goxmldsig 1.6.0 未満
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
ベンダー情報
変更履歴
No 変更内容 変更日
1 [2026年04月21日]
  掲載
2026年4月21日10:48

NVD脆弱性情報
CVE-2026-33487
概要

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.

概要

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.

公表日 2026年3月27日3:16
登録日 2026年4月27日12:20
最終更新日 2026年4月20日23:15
影響を受けるソフトウェアの構成
構成1 以上 以下 より上 未満
cpe:2.3:a:goxmldsig_project:goxmldsig:*:*:*:*:*:*:*:* 1.6.0
関連情報、対策とツール
共通脆弱性一覧