Lucene search

K
osvGoogleOSV:GO-2023-1841
HistoryJun 08, 2023 - 8:15 p.m.

Improper handling of non-optional LDFLAGS in go command with cgo in cmd/go

2023-06-0820:15:47
Google
osv.dev
16
cgo handling
go command
build time
malicious module
untrusted code
ldflags sanitization
gc compiler
gccgo compiler
security issue

CVSS3

9.8

Attack Vector

NETWORK

Attack Complexity

LOW

Privileges Required

NONE

User Interaction

NONE

Scope

UNCHANGED

Confidentiality Impact

HIGH

Integrity Impact

HIGH

Availability Impact

HIGH

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

AI Score

9.7

Confidence

High

EPSS

0.007

Percentile

81.1%

The go command may execute arbitrary code at build time when using cgo. This may occur when running โ€œgo getโ€ on a malicious module, or when running any other command which builds untrusted code. This is can by triggered by linker flags, specified via a โ€œ#cgo LDFLAGSโ€ directive.

The arguments for a number of flags which are non-optional are incorrectly considered optional, allowing disallowed flags to be smuggled through the LDFLAGS sanitization. This affects usage of both the gc and gccgo compilers.

CVSS3

9.8

Attack Vector

NETWORK

Attack Complexity

LOW

Privileges Required

NONE

User Interaction

NONE

Scope

UNCHANGED

Confidentiality Impact

HIGH

Integrity Impact

HIGH

Availability Impact

HIGH

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

AI Score

9.7

Confidence

High

EPSS

0.007

Percentile

81.1%