# CVE-2026-97043: Unexpected code execution via escaped quotes in //go:cgo_ldflag in cmd/go and cmd/compile

Status: published. Published: 2026-11-11. Updated: 2026-11-11.

Building a malicious package that uses cgo could bypass "#cgo LDFLAGS" validation and cause unexpected code execution at build time, or cause the go command to panic, via crafted quoting in "//go:cgo_ldflag" directives. When "cmd/cgo" generates "_cgo_gotypes.go", it quotes each "#cgo LDFLAGS" argument with strconv.Quote in a "//go:cgo_ldflag" directive, but "cmd/compile" and "cmd/go" parsed those directives by splitting on raw quote characters without handling backslash escapes or unquoting the string. This mismatch allowed disallowed linker flags or unvalidated linker search paths to be smuggled past the go command's flag checks and passed to the external linker. In addition, deduplicating LDFLAGS in the go command could panic with an out-of-bounds slice index when a prefix of the flag list matched near the end of the slice. "cmd/compile" and "cmd/go" now properly handle backslash-escaped quotes and unquote "//go:cgo_*" pragma strings with strconv.Unquote, and the slice bounds check in processCgoOutputs has been fixed.

## Remediation

No remediation reported in collected sources

## Affected products and versions

- Go toolchain / cmd/go (cmd/go): ≥ 0; < 1.26.11 (affected, semver); ≥ 1.27.0-0; < 1.27.4 (affected, semver). Source: CNA: Go
- Go toolchain / cmd/compile (cmd/compile): ≥ 0; < 1.26.11 (affected, semver); ≥ 1.27.0-0; < 1.27.4 (affected, semver). Source: CNA: Go

## Severity and prioritization

- CISA KEV: No listing in collected sources

- EPSS: Not available

- SSVC: Not available

- Weaknesses: CWE-88

## Exploit evidence

No exploit evidence in collected sources. This is not proof of no exploitation.

## References

- https://go.dev/cl/862156 (CNA: Go)

- https://go.dev/issue/82567 (CNA: Go)

- https://groups.google.com/g/golang-announce/c/iY8TY0wWgbM (CNA: Go)

- https://pkg.go.dev/vuln/GO-2026-6848 (CNA: Go)

## Provenance

- CNA: Go: https://www.cve.org/CVERecord?id=CVE-2026-97043; retrieved 2026-11-11; source updated 2026-11-11

Revision: 35643d68c2566039f0d6b2b6d361ec9087bd35b5da1cfdd7b100e4a0b20f69ea

Canonical: https://y2.dev/cve/CVE-2026-97043

## Agent and API access

Public CVE pages, Markdown, and JSON are free to read without an account or API key.

- Public catalog: https://y2.dev/cve/index.json. Follow nextCursor with the same search, filters, sort, and limit (1–100). A null cursor marks the end.

- WebMCP: search_cve_disclosures, get_cve_disclosure, get_cve_page_markdown, get_y2_cve_access. Available in compatible browsers.

- Cyber API: https://api.y2.dev/api/v2/cyber/cves and https://api.y2.dev/api/v2/cyber/cves/{cveId}.

- Y2 Pro or Elite: create a workspace API key with the intel:cyber scope and send Authorization: Bearer <Y2_API_KEY>. Setup: https://y2.dev/docs/api/create-key.

- x402: Pay per request without an account or API key. Omit Authorization, read the HTTP 402 PAYMENT-REQUIRED challenge, validate its current requirements, and retry with PAYMENT-SIGNATURE through an authorized payment client. These browser tools never make payments. Guide: https://y2.dev/docs/api/x402.

- OpenAPI: https://y2.dev/api/openapi.yaml. Agent access metadata: https://y2.dev/cve/agent.json.

Collected public records only. Check source status for coverage and freshness.