Skip to content
OpenAdvisories
Unscored CVE-2026-97035 EUVD-2026-123110GHSA-6f8j-v7cw-qxppGO-2026-6856

Unexpected code execution and arbitrary file write via Clang -gen-* and GCC -gnat* flags in cgo in cmd/go

Published Nov 11, 2026 · Assigned by Go

Description

When using Clang or GCC, building a malicious package that uses cgo could cause unexpected code execution at build time or write files to arbitrary directories via "-gen-*" or "-gnat*" flags in "#cgo" directives. The "-g*" wildcard in the compiler and linker flag allowlists previously matched Clang's two-argument "-gen-cdb-fragment-path <dir>" flag and GCC's two-argument "-gnatO <file>" flag, permitting compilation database fragments and sidecar output files to be written to arbitrary directories and desynchronizing flag argument parsing between the go command and the compiler driver so that subsequent arguments could be passed as unvalidated positional inputs to the linker. "-gen-*" and "-gnat*" flags are now disallowed in "#cgo" compiler and linker flags.

Affected products

VendorProductAffectedFixed
Go toolchain cmd/go 0 <1.26.11 —
Go toolchain cmd/go 1.27.0-0 <1.27.4 —

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 golang-1.26 +1 No fix yet —
Debian 13 golang-1.24 No fix yet —
Debian 12 golang-1.19 No fix yet —
ReleasePackageFixed inAdvisory
openSUSE Tumbleweed go1.26 1.26.11-1.1 openSUSE-SU-2026:12529-1

Affected packages

EcosystemPackageAffectedFixedRecord
Go toolchain < 1.26.11 · >= 1.27.0-0, < 1.27.4 1.26.11, 1.27.4 GO-2026-6856

Advisories 2

References