Every CVE Search/ Get API key

CVE-2023-39323

Arbitrary code execution during build via line directives in cmd/go

8.1 HighFix available

Line directives ("//line") can be used to bypass the restrictions on "//go:cgo_" directives, allowing blocked linker and compiler flags to be passed during compilation. This can result in unexpected execution of arbitrary code when running "go build". The line directive requires the absolute path of the file in which the directive lives, which makes exploiting this issue significantly more complex.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
High
Privileges needed
None
User interaction
None

What an attacker can affect

Confidentiality
High
Integrity
High
Availability
High

Exploit likelihood

1.91%Up 1.9 points since Oct 6, 2023
90%50%10%1%

What each source reports

NVD Score used 8.1

Line directives ("//line") can be used to bypass the restrictions on "//go:cgo_" directives, allowing blocked linker and compiler flags to be passed during compilation. This can result in unexpected execution of arbitrary code when running "go build". The line directive requires the absolute path of the file in which the directive lives, which makes exploiting this issue significantly more complex.

Record
CVE-2023-39323
CVSS 3.1
8.1 HighCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
CVE List 8.1

Arbitrary code execution during build via line directives in cmd/go

Line directives ("//line") can be used to bypass the restrictions on "//go:cgo_" directives, allowing blocked linker and compiler flags to be passed during compilation. This can result in unexpected execution of arbitrary code when running "go build". The line directive requires the absolute path of the file in which the directive lives, which makes exploiting this issue significantly more complex.

Record
CVE-2023-39323
CVSS 3.1
8.1 HighCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
EUVDEUVD-2023-43055 8.1

Line directives ("//line") can be used to bypass the restrictions on "//go:cgo_" directives, allowing blocked linker and compiler flags to be passed during compilation. This can result in unexpected execution of arbitrary code when running "go build". The line directive requires the absolute path of the file in which the directive lives, which makes exploiting this issue significantly more complex.

Record
EUVD-2023-43055
CVSS 3.1
8.1 HighCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
GitHub AdvisoriesGHSA-679v-hh23-h5jh 9.8

Line directives ("//line") can be used to bypass the restrictions on "//go:cgo_" directives,...

Line directives ("//line") can be used to bypass the restrictions on "//go:cgo_" directives, allowing blocked linker and compiler flags to be passed during compilation. This can result in unexpected execution of arbitrary code when running "go build". The line directive requires the absolute path of the file in which the directive lives, which makes exploiting this issue significantly more complex.

Record
GHSA-679v-hh23-h5jh
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVALPINE-CVE-2023-39323 8.1

Line directives ("//line") can be used to bypass the restrictions on "//go:cgo_" directives, allowing blocked linker and compiler flags to be passed during compilation. This can result in unexpected execution of arbitrary code when running "go build". The line directive requires the absolute path of the file in which the directive lives, which makes exploiting this issue significantly more complex.

Record
ALPINE-CVE-2023-39323
CVSS 3.1
8.1 HighCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-03
OSVAZL-31107 8.1

CVE-2023-39323 affecting package golang for versions less than 1.20.10-1

Line directives ("//line") can be used to bypass the restrictions on "//go:cgo_" directives, allowing blocked linker and compiler flags to be passed during compilation. This can result in unexpected execution of arbitrary code when running "go build". The line directive requires the absolute path of the file in which the directive lives, which makes exploiting this issue significantly more complex.

Record
AZL-31107
CVSS 3.1
8.1 HighCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
Show 23 moreShow less
OSVAZL-37358 8.1

CVE-2023-39323 affecting package golang for versions less than 1.21.6-1

Line directives ("//line") can be used to bypass the restrictions on "//go:cgo_" directives, allowing blocked linker and compiler flags to be passed during compilation. This can result in unexpected execution of arbitrary code when running "go build". The line directive requires the absolute path of the file in which the directive lives, which makes exploiting this issue significantly more complex.

Record
AZL-37358
CVSS 3.1
8.1 HighCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVAZL-37389 8.1

CVE-2023-39323 affecting package golang for versions less than 1.21.6-1

Line directives ("//line") can be used to bypass the restrictions on "//go:cgo_" directives, allowing blocked linker and compiler flags to be passed during compilation. This can result in unexpected execution of arbitrary code when running "go build". The line directive requires the absolute path of the file in which the directive lives, which makes exploiting this issue significantly more complex.

Record
AZL-37389
CVSS 3.1
8.1 HighCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVAZL-52845 8.1

CVE-2023-39323 affecting package golang for versions less than 1.20.10-1

Line directives ("//line") can be used to bypass the restrictions on "//go:cgo_" directives, allowing blocked linker and compiler flags to be passed during compilation. This can result in unexpected execution of arbitrary code when running "go build". The line directive requires the absolute path of the file in which the directive lives, which makes exploiting this issue significantly more complex.

Record
AZL-52845
CVSS 3.1
8.1 HighCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVAZL-78984 8.1

CVE-2023-39323 affecting package golang 1.25.7-1

Line directives ("//line") can be used to bypass the restrictions on "//go:cgo_" directives, allowing blocked linker and compiler flags to be passed during compilation. This can result in unexpected execution of arbitrary code when running "go build". The line directive requires the absolute path of the file in which the directive lives, which makes exploiting this issue significantly more complex.

Record
AZL-78984
CVSS 3.1
8.1 HighCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVAZL-98871 8.1

CVE-2023-39323 affecting package golang 1.27.1-1

Line directives ("//line") can be used to bypass the restrictions on "//go:cgo_" directives, allowing blocked linker and compiler flags to be passed during compilation. This can result in unexpected execution of arbitrary code when running "go build". The line directive requires the absolute path of the file in which the directive lives, which makes exploiting this issue significantly more complex.

Record
AZL-98871
CVSS 3.1
8.1 HighCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVBELL-CVE-2023-39323 8.1
Record
BELL-CVE-2023-39323
CVSS 3.1
8.1 HighCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSV 8.1

Arbitrary code execution during build via line directives in cmd/go

Line directives ("//line") can be used to bypass the restrictions on "//go:cgo_" directives, allowing blocked linker and compiler flags to be passed during compilation. This can result in unexpected execution of arbitrary code when running "go build". The line directive requires the absolute path of the file in which the directive lives, which makes exploiting this issue significantly more complex.

Record
CVE-2023-39323
CVSS 3.1
8.1 HighCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVDEBIAN-CVE-2023-39323 8.1

Line directives ("//line") can be used to bypass the restrictions on "//go:cgo_" directives, allowing blocked linker and compiler flags to be passed during compilation. This can result in unexpected execution of arbitrary code when running "go build". The line directive requires the absolute path of the file in which the directive lives, which makes exploiting this issue significantly more complex.

Record
DEBIAN-CVE-2023-39323
CVSS 3.1
8.1 HighCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVOESA-2023-1789 7.5

golang security update

.

Security Fix(es):

The html/template package does not properly handle HTML-like "" comment tokens, nor hashbang "#!" comment tokens, in <script> contexts. This may cause the template parser to improperly interpret the contents of <script> contexts, causing actions to be improperly escaped. This may be leveraged to perform an XSS attack.(CVE-2023-39318)

The html/template package does not apply the proper rules for handling occurrences of "<script", "<!--", and "</script" within JS literals in <script> contexts. This may cause the template parser to improperly consider script contexts to be terminated early, causing actions to be improperly escaped. This could be leveraged to perform an XSS attack.(CVE-2023-39319)

Line directives ("//line") can be used to bypass the restrictions on "//go:cgo_" directives, allowing blocked linker and compiler flags to be passed during compilation. This can result in unexpected execution of arbitrary code when running "go build". The line directive requires the absolute path of the file in which the directive lives, which makes exploiting this issue significantly more complex.(CVE-2023-39323)

A malicious HTTP/2 client which rapidly creates requests and immediately resets them can cause excessive server resource consumption. While the total number of requests is bounded by the http2.Server.MaxConcurrentStreams setting, resetting an in-progress request allows the attacker to create a new request while the existing one is still executing. With the fix applied, HTTP/2 servers now bound the number of simultaneously executing handler goroutines to the stream concurrency limit (MaxConcurrentStreams). New requests arriving when at the limit (which can only happen after the client has reset an existing, in-flight request) will be queued until a handler exits. If the request queue grows too large, the server will terminate the connection. This issue is also fixed in golang.org/x/net/http2 for users manually configuring HTTP/2. The default stream concurrency limit is 250 streams (requests) per HTTP/2 connection. This value may be adjusted using the golang.org/x/net/http2 package; see the Server.MaxConcurrentStreams setting and the ConfigureServer function.(CVE-2023-39325)

Record
OESA-2023-1789
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Updated
2026-11-02
OSVRHBA-2023:6928 8.1

Red Hat Bug Fix Advisory: go-toolset:rhel8 bug fix and enhancement update

Record
RHBA-2023:6928
CVSS 3.1
8.1 HighCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVUBUNTU-CVE-2023-39323 8.1

Line directives ("//line") can be used to bypass the restrictions on "//go:cgo_" directives, allowing blocked linker and compiler flags to be passed during compilation. This can result in unexpected execution of arbitrary code when running "go build". The line directive requires the absolute path of the file in which the directive lives, which makes exploiting this issue significantly more complex.

Record
UBUNTU-CVE-2023-39323
CVSS 3.1
8.1 HighCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVBIT-golang-2023-39323 No score

Arbitrary code execution during build via line directives in cmd/go

Line directives ("//line") can be used to bypass the restrictions on "//go:cgo_" directives, allowing blocked linker and compiler flags to be passed during compilation. This can result in unexpected execution of arbitrary code when running "go build". The line directive requires the absolute path of the file in which the directive lives, which makes exploiting this issue significantly more complex.

Record
BIT-golang-2023-39323
Updated
2026-11-02
OSVGO-2023-2095 No score

Arbitrary code execution during build via line directives in cmd/go

Line directives ("//line") can be used to bypass the restrictions on "//go:cgo_" directives, allowing blocked linker and compiler flags to be passed during compilation. This can result in unexpected execution of arbitrary code when running "go build". The line directive requires the absolute path of the file in which the directive lives, which makes exploiting this issue significantly more complex.

Record
GO-2023-2095
Updated
2026-11-02
OSVopenSUSE-SU-2023:0360-1 No score

Security update for go1.21

This update introduces go1.21, including fixes for the following issues:

  • go1.21.3 (released 2023-10-10) includes a security fix to the net/http package. Refs boo#1212475 go1.21 release tracking CVE-2023-39325 CVE-2023-44487

    • go#63427 go#63417 boo#1216109 security: fix CVE-2023-39325 CVE-2023-44487 net/http: rapid stream resets can cause excessive work
  • go1.21.2 (released 2023-10-05) includes one security fixes to the cmd/go package, as well as bug fixes to the compiler, the go command, the linker, the runtime, and the runtime/metrics package. Refs boo#1212475 go1.21 release tracking CVE-2023-39323

    • go#63214 go#63211 boo#1215985 security: fix CVE-2023-39323 cmd/go: line directives allows arbitrary execution during build
    • go#62464 runtime: 'traceback did not unwind completely'
    • go#62478 runtime/metrics: /gc/scan* metrics return zero
    • go#62505 plugin: variable not initialized properly
    • go#62506 cmd/compile: internal compiler error: InvertFlags should never make it to codegen v100 = InvertFlags v123
    • go#62509 runtime: scheduler change causes Delve's function call injection to fail intermittently
    • go#62537 runtime: 'fatal: morestack on g0' with PGO enabled on arm64
    • go#62598 cmd/link: issues with Apple's new linker in Xcode 15 beta
    • go#62668 cmd/compile: slow to compile 17,000 line switch statement?
    • go#62711 cmd/go: TestScript/gotoolchain_path fails if golang.org/dl/go1.21.1 is installed in the user's $PATH
  • go1.21.1 (released 2023-09-06) includes four security fixes to the cmd/go, crypto/tls, and html/template packages, as well as bug fixes to the compiler, the go command, the linker, the runtime, and the context, crypto/tls, encoding/gob, encoding/xml, go/types, net/http, os, and path/filepath packages. Refs boo#1212475 go1.21 release tracking CVE-2023-39318 CVE-2023-39319 CVE-2023-39320 CVE-2023-39321 CVE-2023-39322

    • go#62290 go#62266 boo#1215087 security: fix CVE-2023-39321 CVE-2023-39322 crypto/tls: panic when processing partial post-handshake message in QUICConn.HandleData
    • go#62394 go#62198 boo#1215086 security: fix CVE-2023-39320 cmd/go: go.mod toolchain directive allows arbitrary execution
    • go#62396 go#62196 boo#1215084 security: fix CVE-2023-39318 html/template: improper handling of HTML-like comments within script contexts
    • go#62398 go#62197 boo#1215085 security: fix CVE-2023-39319 html/template: improper handling of special tags within script contexts
    • go#61743 go/types: interface.Complete panics for interfaces with duplicate methods
    • go#61781 cmd/compile: internal compiler error: 'f': value .autotmp_1 (nil) incorrectly live at entry
    • go#61818 cmd/go: panic: runtime error: index out of range [-1] in collectDepsErrors
    • go#61821 runtime/internal/wasitest: TestTCPEcho is racy
    • go#61868 path/filepath: Clean on some invalid Windows paths can lose .. components
    • go#61904 net/http: go 1.20.6 host validation breaks setting Host to a unix socket address
    • go#61905 cmd/go: go get/mod tidy panics with internal error: net token acquired but not released
    • go#61909 cmd/compile: internal compiler error: missed typecheck
    • go#61910 os: ReadDir fails on file systems without File ID support on Windows
    • go#61927 cmd/distpack: release archives don't include directory members
    • go#61930 spec, go/types, types2: restore Go 1.20 unification when compiling for Go 1.20
    • go#61932 go/types, types2: index out of range panic in Checker.arguments
    • go#61958 cmd/compile: write barrier code is sometimes preemptible when compiled with -N
    • go#61959 go/types, types2: panic: infinite recursion in unification with go1.21.0
    • go#61964 os: ReadDir(\.\pipe) fails with go1.21 on Windows
    • go#61967 crypto/tls: add GODEBUG to control max RSA key size
    • go#61987 runtime: simple programs crash on linux/386 with go1.21 when build with -gcflags='all=-N -l'
    • go#62019 runtime: execution halts with goroutines stuck in runtime.gopark…
Record
openSUSE-SU-2023:0360-1
Updated
2026-11-02
OSVopenSUSE-SU-2024:13306-1 No score

go1.20-1.20.9-1.1 on GA media

These are all security issues fixed in the go1.20-1.20.9-1.1 package on the GA media of openSUSE Tumbleweed.

Record
openSUSE-SU-2024:13306-1
Updated
2026-11-02
OSVopenSUSE-SU-2024:13307-1 No score

go1.21-1.21.2-1.1 on GA media

These are all security issues fixed in the go1.21-1.21.2-1.1 package on the GA media of openSUSE Tumbleweed.

Record
openSUSE-SU-2024:13307-1
Updated
2026-11-02
OSVSUSE-SU-2023:4017-1 No score

Security update for go1.21

This update for go1.21 fixes the following issues:

  • Updated to version 1.21.2 (bsc#1212475):

    • CVE-2023-39323: Fixed an arbitrary execution issue during build time due to path directive bypass (bsc#1215985).
Record
SUSE-SU-2023:4017-1
Updated
2026-11-02
OSVSUSE-SU-2023:4018-1 No score

Security update for go1.20

This update for go1.20 fixes the following issues:

  • Updated to version 1.20.9 (bsc#1206346):

    • CVE-2023-39323: Fixed an arbitrary execution issue during build time due to path directive bypass (bsc#1215985).
Record
SUSE-SU-2023:4018-1
Updated
2026-11-02
OSVSUSE-SU-2023:4469-1 No score

Security update for go1.21-openssl

This update for go1.21-openssl fixes the following issues:

Update to version 1.21.4.1 cut from the go1.21-openssl-fips branch at the revision tagged go1.21.4-1-openssl-fips.

  • Update to go1.21.4

go1.21.4 (released 2023-11-07) includes security fixes to the path/filepath package, as well as bug fixes to the linker, the runtime, the compiler, and the go/types, net/http, and runtime/cgo packages.

  • security: fix CVE-2023-45283 CVE-2023-45284 path/filepath: insecure parsing of Windows paths (bsc#1216943, bsc#1216944)
  • spec: update unification rules
  • cmd/compile: internal compiler error: expected struct value to have type struct
  • cmd/link: split text sections for arm 32-bit
  • runtime: MADV_COLLAPSE causes production performance issues on Linux
  • go/types, x/tools/go/ssa: panic: type param without replacement encountered
  • cmd/compile: -buildmode=c-archive produces code not suitable for use in a shared object on arm64
  • net/http: http2 page fails on firefox/safari if pushing resources

Initial package go1.21-openssl version 1.21.3.1 cut from the go1.21-openssl-fips branch at the revision tagged go1.21.3-1-openssl-fips. (jsc#SLE-18320)

  • Go upstream merged branch dev.boringcrypto in go1.19+.
  • In go1.x enable BoringCrypto via GOEXPERIMENT=boringcrypto.
  • In go1.x-openssl enable FIPS mode (or boring mode as the package is named) either via an environment variable GOLANG_FIPS=1 or by virtue of booting the host in FIPS mode.
  • When the operating system is operating in FIPS mode, Go applications which import crypto/tls/fipsonly limit operations to the FIPS ciphersuite.
  • go1.x-openssl is delivered as two large patches to go1.x applying necessary modifications from the golang-fips/go GitHub project for the Go crypto library to use OpenSSL as the external cryptographic library in a FIPS compliant way.
  • go1.x-openssl modifies the crypto/* packages to use OpenSSL for cryptographic operations.
  • go1.x-openssl uses dlopen() to call into OpenSSL.
  • SUSE RPM packaging introduces a fourth version digit go1.x.y.z corresponding to the golang-fips/go patchset tagged revision.
  • Patchset improvements can be updated independently of upstream Go maintenance releases.
Record
SUSE-SU-2023:4469-1
Updated
2026-11-02
OSVSUSE-SU-2023:4472-1 No score

Security update for go1.20-openssl

This update for go1.20-openssl fixes the following issues:

Update to version 1.20.11.1 cut from the go1.20-openssl-fips branch at the revision tagged go1.20.11-1-openssl-fips.

  • Update to go1.20.11

go1.20.11 (released 2023-11-07) includes security fixes to the path/filepath package, as well as bug fixes to the linker and the net/http package.

  • security: fix CVE-2023-45283 CVE-2023-45284 path/filepath: insecure parsing of Windows paths (bsc#1216943, bsc#1216944)
  • cmd/link: split text sections for arm 32-bit
  • net/http: http2 page fails on firefox/safari if pushing resources

Update to version 1.20.10.1 cut from the go1.20-openssl-fips branch at the revision tagged go1.20.10-1-openssl-fips.

  • Update to go1.20.10

go1.20.10 (released 2023-10-10) includes a security fix to the net/http package.

  • security: fix CVE-2023-39325 CVE-2023-44487 net/http: rapid stream resets can cause excessive work (bsc#1216109)

go1.20.9 (released 2023-10-05) includes one security fixes to the cmd/go package, as well as bug fixes to the go command and the linker.

  • security: fix CVE-2023-39323 cmd/go: line directives allows arbitrary execution during build (bsc#1215985)
  • cmd/link: issues with Apple's new linker in Xcode 15 beta
Record
SUSE-SU-2023:4472-1
Updated
2026-11-02
OSVUSN-6574-1 No score

Go vulnerabilities

Takeshi Kaneko discovered that Go did not properly handle comments and special tags in the script context of html/template module. An attacker could possibly use this issue to inject Javascript code and perform a cross site scripting attack. This issue only affected Go 1.20 in Ubuntu 20.04 LTS, Ubuntu 22.04 LTS and Ubuntu 23.04. (CVE-2023-39318, CVE-2023-39319)

It was discovered that Go did not properly validate the "//go:cgo_" directives during compilation. An attacker could possibly use this issue to inject arbitrary code during compile time. (CVE-2023-39323)

It was discovered that Go did not limit the number of simultaneously executing handler goroutines in the net/http module. An attacker could possibly use this issue to cause a panic resulting into a denial of service. (CVE-2023-39325, CVE-2023-44487)

It was discovered that the Go net/http module did not properly validate the chunk extensions reading from a request or response body. An attacker could possibly use this issue to read sensitive information. (CVE-2023-39326)

It was discovered that Go did not properly validate the insecure "git://" protocol when using go get to fetch a module with the ".git" suffix. An attacker could possibly use this issue to bypass secure protocol checks. (CVE-2023-45285)

Record
USN-6574-1
Updated
2026-11-02
OSVUSN-7109-1 No score

golang-1.18 vulnerabilities

Philippe Antoine discovered that Go incorrectly handled crafted HTTP/2 streams. An attacker could possibly use this issue to cause a denial of service. (CVE-2022-41723)

Marten Seemann discovered that Go did not properly manage memory under certain circumstances. An attacker could possibly use this issue to cause a panic resulting in a denial of service. (CVE-2022-41724)

Ameya Darshan and Jakob Ackermann discovered that Go did not properly validate the amount of memory and disk files ReadForm can consume. An attacker could possibly use this issue to cause a panic resulting in a denial of service. (CVE-2022-41725)

Hunter Wittenborn discovered that Go incorrectly handled the sanitization of environment variables. An attacker could possibly use this issue to run arbitrary commands. (CVE-2023-24531)

Jakob Ackermann discovered that Go incorrectly handled multipart forms. An attacker could possibly use this issue to consume an excessive amount of resources, resulting in a denial of service. (CVE-2023-24536)

Juho Nurminen discovered that Go incorrectly handled certain special characters in directory or file paths. An attacker could possibly use this issue to inject code into the resulting binaries. (CVE-2023-29402)

Vincent Dehors discovered that Go incorrectly handled permission bits. An attacker could possibly use this issue to read or write files with elevated privileges. (CVE-2023-29403)

Juho Nurminen discovered that Go incorrectly handled certain compiler directives. An attacker could possibly use this issue to execute arbitrary code. (CVE-2023-29404)

Juho Nurminen discovered that Go incorrectly handled certain crafted arguments. An attacker could possibly use this issue to execute arbitrary code at build time. (CVE-2023-29405)

Bartek Nowotarski discovered that Go incorrectly validated the contents of host headers. A remote attacker could possibly use this issue to inject additional headers or entire requests. (CVE-2023-29406)

Takeshi Kaneko discovered that Go did not properly handle comments and special tags in the script context of html/template module. An attacker could possibly use this issue to inject Javascript code and perform a cross-site scripting attack. (CVE-2023-39318, CVE-2023-39319)

It was discovered that Go did not properly validate the "//go:cgo_" directives during compilation. An attacker could possibly use this issue to inject arbitrary code during compile time. (CVE-2023-39323)

It was discovered that Go did not limit the number of simultaneously executing handler goroutines in the net/http module. An attacker could possibly use this issue to cause a panic resulting in a denial of service. (CVE-2023-39325)

Bartek Nowotarski was discovered that the Go net/http module did not properly handle the requests when request's headers exceed MaxHeaderBytes. An attacker could possibly use this issue to cause a panic resulting into a denial of service. (CVE-2023-45288)

Bartek Nowotarski discovered that the Go net/http module did not properly validate the total size of the parsed form when parsing a multipart form. An attacker could possibly use this issue to cause a panic resulting into a denial of service. (CVE-2023-45290)

John Howard discovered that the Go crypto/x509 module did not properly handle a certificate chain which contains a certificate with an unknown public key algorithm. An attacker could possibly use this issue to cause a panic resulting into a denial of service. (CVE-2024-24783)

Juho Nurminen discovered that the Go net/mail module did not properly handle comments within display names in the ParseAddressList function. An attacker could possibly use this issue to cause a panic resulting into a denial of service. (CVE-2024-24784)

It was discovered that the Go html/template module did not validate errors returned from MarshalJSON methods. An attacker could possibly use this issue to inject arbitrary code into the Go template. (CVE-2024-24785)

Yufan You discovered that the Go archive/zip module…

Record
USN-7109-1
Updated
2026-11-02
OSVUSN-7111-1 No score

golang-1.17 vulnerabilities

Philippe Antoine discovered that Go incorrectly handled crafted HTTP/2 streams. An attacker could possibly use this issue to cause a denial of service. (CVE-2022-41723)

Marten Seemann discovered that Go did not properly manage memory under certain circumstances. An attacker could possibly use this issue to cause a panic resulting in a denial of service. (CVE-2022-41724)

Ameya Darshan and Jakob Ackermann discovered that Go did not properly validate the amount of memory and disk files ReadForm can consume. An attacker could possibly use this issue to cause a panic resulting in a denial of service. (CVE-2022-41725)

Jakob Ackermann discovered that Go incorrectly handled multipart forms. An attacker could possibly use this issue to consume an excessive amount of resources, resulting in a denial of service. (CVE-2023-24536)

It was discovered that Go did not properly validate the "//go:cgo_" directives during compilation. An attacker could possibly use this issue to inject arbitrary code during compile time. (CVE-2023-39323)

Bartek Nowotarski was discovered that the Go net/http module did not properly handle the requests when request's headers exceed MaxHeaderBytes. An attacker could possibly use this issue to cause a panic resulting into a denial of service. (CVE-2023-45288)

Bartek Nowotarski discovered that the Go net/http module did not properly validate the total size of the parsed form when parsing a multipart form. An attacker could possibly use this issue to cause a panic resulting into a denial of service. (CVE-2023-45290)

John Howard discovered that the Go crypto/x509 module did not properly handle a certificate chain which contains a certificate with an unknown public key algorithm. An attacker could possibly use this issue to cause a panic resulting into a denial of service. (CVE-2024-24783)

Juho Nurminen discovered that the Go net/mail module did not properly handle comments within display names in the ParseAddressList function. An attacker could possibly use this issue to cause a panic resulting into a denial of service. (CVE-2024-24784)

Yufan You discovered that the Go archive/zip module did not properly handle certain types of invalid zip files differs from the behavior of most zip implementations. An attacker could possibly use this issue to cause a panic resulting into a denial of service. (CVE-2024-24789)

Geoff Franks discovered that the Go net/http module did not properly handle responses to requests with an "Expect: 100-continue" header under certain circumstances. An attacker could possibly use this issue to cause a denial of service. (CVE-2024-24791)

It was discovered that the Go parser module did not properly handle deeply nested literal values. An attacker could possibly use this issue to cause a panic resulting in a denial of service. (CVE-2024-34155)

Md Sakib Anwar discovered that the Go encoding/gob module did not properly handle message decoding under certain circumstances. An attacker could possibly use this issue to cause a panic resulting in a denial of service. (CVE-2024-34156)

It was discovered that the Go build module did not properly handle certain build tag lines with deeply nested expressions. An attacker could possibly use this issue to cause a panic resulting in a denial of service. (CVE-2024-34158)

Record
USN-7111-1
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
go
Alpine:v3.18
1.21.0 up to 1.20.9-r0
1.20.9-r0
go
Alpine:v3.19
1.21.0 up to 1.21.2-r0
1.21.2-r0
go
Alpine:v3.20
1.21.0 up to 1.21.2-r0
1.21.2-r0
go
Alpine:v3.21
1.21.0 up to 1.21.2-r0
1.21.2-r0
go
Alpine:v3.22
1.21.0 up to 1.21.2-r0
1.21.2-r0
go
Alpine:v3.23
1.21.0 up to 1.21.2-r0
1.21.2-r0
go
Alpine:v3.24
1.21.0 up to 1.21.2-r0
1.21.2-r0
golang
Azure Linux:2
1.19.0 up to 1.20.10-1
1.20.10-1
golang
Azure Linux:2
before 1.21.6-1
1.21.6-1
golang
Azure Linux:2
1.18.0 up to 1.21.6-1
1.21.6-1
Show 63 moreShow less
Affected packages
PackageAffectedFixed
golang
Azure Linux:3
before 1.20.10-1
1.20.10-1
golang
Azure Linux:3
through 1.25.7-1 None known
golang
Azure Linux:3
1.27.0 to 1.27.1-1 None known
go
Alpaquita:23
1.19.9-r1 up to 1.21.7-r0
1.21.7-r0
go
Alpaquita:stream
1.20.5-r2 up to 1.21.2-r0
1.21.2-r0
go
BellSoft Hardened Containers:23
1.19.9-r1 up to 1.21.7-r0
1.21.7-r0
go
BellSoft Hardened Containers:stream
1.20.5-r2 up to 1.21.2-r0
1.21.2-r0
golang
Bitnami
before 1.20.9, 1.21.0 up to 1.21.2
1.20.91.21.2
golang-1.19
Debian:12
All versions, plus listed versions
1.19.10-11.19.10-21.19.11-11.19.12-11.19.12-2
Show 7 moreShow less
1.19.12-2~bpo11+11.19.12-2~bpo12+11.19.13-11.19.13-1~bpo11+11.19.13-1~bpo12+11.19.8-21.19.9-1
None known
toolchain
Go
before 1.20.9, 1.21.0-0 up to 1.21.2
1.20.91.21.2
golang
openEuler:20.03-LTS-SP1
From an advisory covering 4 CVEs
before 1.15.7-36.oe1
1.15.7-36.oe1
golang
openEuler:20.03-LTS-SP3
From an advisory covering 4 CVEs
before 1.15.7-36.oe1
1.15.7-36.oe1
golang
openEuler:22.03-LTS
From an advisory covering 4 CVEs
before 1.17.3-25.oe2203sp2
1.17.3-25.oe2203sp2
golang
openEuler:22.03-LTS-SP1
From an advisory covering 4 CVEs
before 1.17.3-25.oe2203sp1
1.17.3-25.oe2203sp1
golang
openEuler:22.03-LTS-SP2
From an advisory covering 4 CVEs
before 1.17.3-25.oe2203sp2
1.17.3-25.oe2203sp2
delve
Red Hat:enterprise_linux:8::appstream
From an advisory covering 5 CVEs
before 0:1.20.2-1.module+el8.9.0+18926+5193682d
0:1.20.2-1.module+el8.9.0+18926+5193682d
delve-debuginfo
Red Hat:enterprise_linux:8::appstream
From an advisory covering 5 CVEs
before 0:1.20.2-1.module+el8.9.0+18926+5193682d
0:1.20.2-1.module+el8.9.0+18926+5193682d
delve-debugsource
Red Hat:enterprise_linux:8::appstream
From an advisory covering 5 CVEs
before 0:1.20.2-1.module+el8.9.0+18926+5193682d
0:1.20.2-1.module+el8.9.0+18926+5193682d
go-toolset
Red Hat:enterprise_linux:8::appstream
From an advisory covering 5 CVEs
before 0:1.20.10-1.module+el8.9.0+20382+04f7fe80
0:1.20.10-1.module+el8.9.0+20382+04f7fe80
golang
Red Hat:enterprise_linux:8::appstream
From an advisory covering 5 CVEs
before 0:1.20.10-1.module+el8.9.0+20382+04f7fe80
0:1.20.10-1.module+el8.9.0+20382+04f7fe80
golang-bin
Red Hat:enterprise_linux:8::appstream
From an advisory covering 5 CVEs
before 0:1.20.10-1.module+el8.9.0+20382+04f7fe80
0:1.20.10-1.module+el8.9.0+20382+04f7fe80
golang-docs
Red Hat:enterprise_linux:8::appstream
From an advisory covering 5 CVEs
before 0:1.20.10-1.module+el8.9.0+20382+04f7fe80
0:1.20.10-1.module+el8.9.0+20382+04f7fe80
golang-misc
Red Hat:enterprise_linux:8::appstream
From an advisory covering 5 CVEs
before 0:1.20.10-1.module+el8.9.0+20382+04f7fe80
0:1.20.10-1.module+el8.9.0+20382+04f7fe80
golang-src
Red Hat:enterprise_linux:8::appstream
From an advisory covering 5 CVEs
before 0:1.20.10-1.module+el8.9.0+20382+04f7fe80
0:1.20.10-1.module+el8.9.0+20382+04f7fe80
golang-tests
Red Hat:enterprise_linux:8::appstream
From an advisory covering 5 CVEs
before 0:1.20.10-1.module+el8.9.0+20382+04f7fe80
0:1.20.10-1.module+el8.9.0+20382+04f7fe80
go1.21
SUSE:Linux Enterprise Module for Development Tools 15 SP4
before 1.21.2-150000.1.9.1
1.21.2-150000.1.9.1
go1.21
SUSE:Linux Enterprise Module for Development Tools 15 SP5
before 1.21.2-150000.1.9.1
1.21.2-150000.1.9.1
go1.21
openSUSE:Leap 15.4
before 1.21.2-150000.1.9.1
1.21.2-150000.1.9.1
go1.21
openSUSE:Leap 15.5
before 1.21.2-150000.1.9.1
1.21.2-150000.1.9.1
go1.20
SUSE:Linux Enterprise Module for Development Tools 15 SP4
before 1.20.9-150000.1.26.1
1.20.9-150000.1.26.1
go1.20
SUSE:Linux Enterprise Module for Development Tools 15 SP5
before 1.20.9-150000.1.26.1
1.20.9-150000.1.26.1
go1.20
openSUSE:Leap 15.4
before 1.20.9-150000.1.26.1
1.20.9-150000.1.26.1
go1.20
openSUSE:Leap 15.5
before 1.20.9-150000.1.26.1
1.20.9-150000.1.26.1
go1.21-openssl
SUSE:Linux Enterprise Module for Development Tools 15 SP4
From an advisory covering 10 CVEs
before 1.21.4.1-150000.1.5.1
1.21.4.1-150000.1.5.1
go1.21-openssl
SUSE:Linux Enterprise Module for Development Tools 15 SP5
From an advisory covering 10 CVEs
before 1.21.4.1-150000.1.5.1
1.21.4.1-150000.1.5.1
go1.21-openssl
openSUSE:Leap 15.4
From an advisory covering 10 CVEs
before 1.21.4.1-150000.1.5.1
1.21.4.1-150000.1.5.1
go1.21-openssl
openSUSE:Leap 15.5
From an advisory covering 10 CVEs
before 1.21.4.1-150000.1.5.1
1.21.4.1-150000.1.5.1
go1.20-openssl
SUSE:Linux Enterprise Module for Development Tools 15 SP4
From an advisory covering 5 CVEs
before 1.20.11.1-150000.1.14.1
1.20.11.1-150000.1.14.1
go1.20-openssl
SUSE:Linux Enterprise Module for Development Tools 15 SP5
From an advisory covering 5 CVEs
before 1.20.11.1-150000.1.14.1
1.20.11.1-150000.1.14.1
go1.20-openssl
openSUSE:Leap 15.4
From an advisory covering 5 CVEs
before 1.20.11.1-150000.1.14.1
1.20.11.1-150000.1.14.1
go1.20-openssl
openSUSE:Leap 15.5
From an advisory covering 5 CVEs
before 1.20.11.1-150000.1.14.1
1.20.11.1-150000.1.14.1
golang-1.18
Ubuntu:Pro:16.04:LTS
before 1.18.1-1ubuntu1~16.04.6+esm1, plus listed versions
1.18.1-1ubuntu1~16.04.6
1.18.1-1ubuntu1~16.04.6+esm1
golang-1.18
Ubuntu:Pro:18.04:LTS
before 1.18.1-1ubuntu1~18.04.4+esm1, plus listed versions
1.18.1-1ubuntu1~18.04.31.18.1-1ubuntu1~18.04.4
1.18.1-1ubuntu1~18.04.4+esm1
golang-1.18
Ubuntu:20.04:LTS
before 1.18.1-1ubuntu1~20.04.3, plus listed versions
1.18.1-1ubuntu1~20.04.11.18.1-1ubuntu1~20.04.2
1.18.1-1ubuntu1~20.04.3
golang-1.20
Ubuntu:20.04:LTS
before 1.20.3-1ubuntu0.1~20.04.1, plus listed versions
1.20.3-1ubuntu0.1~20.04
1.20.3-1ubuntu0.1~20.04.1
golang-1.21
Ubuntu:20.04:LTS
before 1.21.1-1~ubuntu20.04.2, plus listed versions
1.21.1-1~ubuntu20.04.1
1.21.1-1~ubuntu20.04.2
golang-1.17
Ubuntu:22.04:LTS
before 1.17.13-3ubuntu1.3, plus listed versions
1.17-1ubuntu21.17.3-1ubuntu11.17.3-1ubuntu21.17.13-3ubuntu11.17.13-3ubuntu1.2
1.17.13-3ubuntu1.3
golang-1.18
Ubuntu:22.04:LTS
before 1.18.1-1ubuntu1.2, plus listed versions
1.18~beta1-0ubuntu11.18~beta2-1ubuntu11.18~beta2-1ubuntu21.18~rc1-1ubuntu11.18-1ubuntu11.18.1-1ubuntu11.18.1-1ubuntu1.1
1.18.1-1ubuntu1.2
golang-1.20
Ubuntu:22.04:LTS
before 1.20.3-1ubuntu0.1~22.04.1, plus listed versions
1.20.3-1ubuntu0.1~22.04
1.20.3-1ubuntu0.1~22.04.1
golang-1.21
Ubuntu:22.04:LTS
before 1.21.1-1~ubuntu22.04.2, plus listed versions
1.21.1-1~ubuntu22.04.1
1.21.1-1~ubuntu22.04.2
golang-1.20
Ubuntu:20.04:LTS
From an advisory covering 7 CVEs
before 1.20.3-1ubuntu0.1~20.04.1, plus listed versions
1.20.3-1ubuntu0.1~20.04
1.20.3-1ubuntu0.1~20.04.1
golang-1.21
Ubuntu:20.04:LTS
From an advisory covering 7 CVEs
before 1.21.1-1~ubuntu20.04.2, plus listed versions
1.21.1-1~ubuntu20.04.1
1.21.1-1~ubuntu20.04.2
golang-1.20
Ubuntu:22.04:LTS
From an advisory covering 7 CVEs
before 1.20.3-1ubuntu0.1~22.04.1, plus listed versions
1.20.3-1ubuntu0.1~22.04
1.20.3-1ubuntu0.1~22.04.1
golang-1.21
Ubuntu:22.04:LTS
From an advisory covering 7 CVEs
before 1.21.1-1~ubuntu22.04.2, plus listed versions
1.21.1-1~ubuntu22.04.1
1.21.1-1~ubuntu22.04.2
golang-1.18
Ubuntu:Pro:16.04:LTS
From an advisory covering 25 CVEs
before 1.18.1-1ubuntu1~16.04.6+esm1, plus listed versions
1.18.1-1ubuntu1~16.04.6
1.18.1-1ubuntu1~16.04.6+esm1
golang-1.18
Ubuntu:Pro:18.04:LTS
From an advisory covering 25 CVEs
before 1.18.1-1ubuntu1~18.04.4+esm1, plus listed versions
1.18.1-1ubuntu1~18.04.31.18.1-1ubuntu1~18.04.4
1.18.1-1ubuntu1~18.04.4+esm1
golang-1.18
Ubuntu:20.04:LTS
From an advisory covering 25 CVEs
before 1.18.1-1ubuntu1~20.04.3, plus listed versions
1.18.1-1ubuntu1~20.04.11.18.1-1ubuntu1~20.04.2
1.18.1-1ubuntu1~20.04.3
golang-1.18
Ubuntu:22.04:LTS
From an advisory covering 25 CVEs
before 1.18.1-1ubuntu1.2, plus listed versions
1.18~beta1-0ubuntu11.18~beta2-1ubuntu11.18~beta2-1ubuntu21.18~rc1-1ubuntu11.18-1ubuntu11.18.1-1ubuntu11.18.1-1ubuntu1.1
1.18.1-1ubuntu1.2
golang-1.17
Ubuntu:22.04:LTS
From an advisory covering 14 CVEs
before 1.17.13-3ubuntu1.3, plus listed versions
1.17-1ubuntu21.17.3-1ubuntu11.17.3-1ubuntu21.17.13-3ubuntu11.17.13-3ubuntu1.2
1.17.13-3ubuntu1.3
go
SUSE:Package Hub 12
From an advisory covering 8 CVEs
before 1.21-41.1
1.21-41.1
go1.21
SUSE:Package Hub 12
From an advisory covering 8 CVEs
before 1.21.3-2.1
1.21.3-2.1
go1.20
openSUSE:Tumbleweed
before 1.20.9-1.1
1.20.9-1.1
go1.21
openSUSE:Tumbleweed
before 1.21.2-1.1
1.21.2-1.1

History

History
RecordedChangedSources
affected, facts
affected, aliases, referencesOSV
first indexedCVE List, EUVD, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2023-39323 is a high vulnerability (CVSS 8.1) in Go Toolchain Cmd/go, published October 5, 2023. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 1.91%, the 79th percentile. Fixed in go 1.20.9-r0.

References

Show 110 moreShow less
This page doesn't list everything

Left out here: the rest of 2 source descriptions. The JSON record has them.

MoveEnter Open