AZL-113606: CVE-2026-97041 affecting package python-tensorboard 2.16.2-6
Building a malicious package containing "//go:cgo" compiler directives could inject arbitrary flags into the external linker invocation on ELF platforms. The compiler and linker did not reject commas in "//go:cgoimportdynamic", "//go:cgoexportdynamic", "//go:cgoexportstatic", "//go:cgoimportstatic", and "//go:cgodynamiclinker" directives, and the linker passed the dynamic linker path using "-Wl,--dynamic-linker,<path>". Furthermore, the two-argument form of "//go:cgoimportdynamic" (which is permitted in non-cgo Go source files) could overwrite the external symbol name of a symbol already marked for cgo export. A symbol name or dynamic linker path containing a comma or leading "@" could split "-Wl,--export-dynamic-symbol=" or "-Wl,--dynamic-linker," into arbitrary host linker flags or response file arguments. The compiler and linker now reject commas in "//go:cgo" symbol and dynamic linker directives, the linker passes "-Wl,--dynamic-linker=<path>", and "cgoimportdynamic" no longer overwrites symbols exported via "cgoexportdynamic" or "cgoexportstatic".
Affected Software
Event History
Frequently Asked Questions
Who is realistically exposed to this issue?
Systems that build untrusted or malicious Go packages for ELF targets are exposed. The issue is in Go compiler and linker handling of //go:cgo_* directives during package builds, rather than in TensorBoard runtime behavior.
What does an attacker need to exploit it?
An attacker needs to provide a Go package containing crafted //go:cgo_* compiler directives and have that package built. Crafted symbol names or dynamic linker paths containing commas or a leading @ can inject host linker flags or response-file arguments.
Are applications affected merely by using the package?
The provided information describes an exploitation path during compilation and external linker invocation. It does not indicate that simply running an already-built application is sufficient.
What mitigations are available if patching is delayed?
Do not build untrusted Go source packages, especially on ELF platforms, and review build inputs for //go:cgo_* directives. In particular, reject directives whose symbol names or dynamic linker paths contain commas or begin with @.