Unsafe behavior in setuid/setgid binaries in runtime
Key facts
- Attack vector
- Local
- Privileges required
- None
- User interaction
- Required
- Attack complexity
- Low
- Impact type
- —
- Confidentiality · integrity · availability
- High · High · High
- Fix status
- Partial Red Hat: 4 fixed, 2 without a fix
Attack profile from CVSS 3.1 · CISA ADP. Fix status from CNA and Red Hat.
Summary
On Unix platforms, the Go runtime does not behave differently when a binary is run with the setuid/setgid bits. This can be dangerous in certain cases, such as when dumping memory state, or assuming the status of standard i/o file descriptors. If a setuid/setgid binary is executed with standard I/O file descriptors closed, opening any files can result in unexpected content being read or written with elevated privileges. Similarly, if a setuid/setgid program is terminated, either via panic or signal, it may leak the contents of its registers.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| Go standard library | runtime | before 1.19.10; 1.20.0-0 to before 1.20.5 | 1.19.10, 1.20.5 | Patch available | CNA |
- runtime VendorGo standard library Affected before 1.19.10; 1.20.0-0 to before 1.20.5 Fixed in 1.19.10, 1.20.5 Patch available CNA
CPE configurations NVD · 2
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:golang:go:*:*:*:*:*:*:*:* | before 1.19.10; 1.20.0 to before 1.20.5 | Vulnerable | Go standard library |
| cpe:2.3:o:fedoraproject:fedora:38:*:*:*:*:*:*:* | 38 | Vulnerable | Fedoraproject |
- cpe:2.3:a:golang:go:*:*:*:*:*:*:*:* Versions before 1.19.10; 1.20.0 to before 1.20.5 Vulnerable ·Go standard library
- cpe:2.3:o:fedoraproject:fedora:38:*:*:*:*:*:*:* Versions 38 Vulnerable ·Fedoraproject
Remediation
- Fix · CNA runtime (Go standard library) Fixed in 1.19.10, 1.20.5
Red Hat 3 advisories
- RHSA-2023:3923 Released 2023-06-29 · Red Hat rating Criticalgo-toolset and golang security update
- Red Hat Enterprise Linux AppStream (v. 9) go-toolset-1.19.10-1.el9_2, golang-1.19.10-1.el9_2, golang-bin-1.19.10-1.el9_2 +5
- RHSA-2023:3922 Released 2023-06-29 · Red Hat rating Criticalgo-toolset:rhel8 security update
- Red Hat Enterprise Linux AppStream (v. 8) delve-1.9.1-1.module+el8.8.0+16778+5fbb74f5.src::go-toolset:rhel8, delve-1.9.1-1.module+el8.8.0+16778+5fbb74f5.x86_64::go-toolset:rhel8, go-toolset-1.19.10-1.module+el8.8.0+19203+782922b7.aarch64::go-toolset:rhel8 +18
- RHSA-2023:3920 Released 2023-06-29 · Red Hat rating Criticalgo-toolset-1.19 and go-toolset-1.19-golang security update
- Red Hat Developer Tools for Red Hat Enterprise Linux Server (v. 7) go-toolset-1.19-1.19.10-1.el7_9, go-toolset-1.19-build-1.19.10-1.el7_9, go-toolset-1.19-golang-1.19.10-1.el7_9 +8
- Red Hat Developer Tools for Red Hat Enterprise Linux Workstation (v. 7) go-toolset-1.19-1.19.10-1.el7_9, go-toolset-1.19-build-1.19.10-1.el7_9, go-toolset-1.19-golang-1.19.10-1.el7_9 +8
Vendor assessments
Red Hat
Red Hat rating: Important. Red Hat's page for this CVE →
| Product | Status | Plan or fix |
|---|---|---|
| Red Hat Ceph Storage 3 | Affected | No fix yet |
| Red Hat Storage 3 | Affected | No fix yet |
| Red Hat Developer Tools for Red Hat Enterprise Linux Server (v. 7) | Fixed | RHSA-2023:3920 |
| Red Hat Developer Tools for Red Hat Enterprise Linux Workstation (v. 7) | Fixed | RHSA-2023:3920 |
| Red Hat Enterprise Linux AppStream (v. 8) | Fixed | RHSA-2023:3922 |
| Red Hat Enterprise Linux AppStream (v. 9) | Fixed | RHSA-2023:3923 |
Not affected: 1 product
- Red Hat OpenShift GitOps
Timeline
- 2026-10-02 Threatist record created from CVE-2023-29403
- 2026-10-03 Alias added: GHSA-rxx3-4978-3cc9
References
Patch 1
Advisory 1
Other 5
- https://go.dev/issue/60272
- https://groups.google.com/g/golang-announce/c/q5135a9d924/m/j0ZoAJOHAwAJ
- https://lists.fedoraproject.org/archives/list/[email protected]/message/XBS3IIK6ADV24C5ULQU55QLT2UE762ZX/
- https://lists.fedoraproject.org/archives/list/[email protected]/message/NZ2O6YCO2IZMZJELQGZYR2WAUNEDLYV6/
- https://security.gentoo.org/glsa/202311-09
More Go standard library Go vulnerabilities
- TI-2020-00578 Improper certificate validation in Microsoft Windows KEVCVSS 3.1HIGH 8.1
- TI-2023-23979 The HTTP/2 protocol allows a denial of service (server resource consumption) because… KEVCVSS 3.1HIGH 7.5
- TI-2018-05208 The "go get" implementation in Go 1.9.4, when the -insecure command-line option is used… CVSS 3.1HIGH 8.8
- TI-2018-12083 Improper input validation in [UNKNOWN] golang CVSS 3.1HIGH 8.1
- TI-2024-16306 Mishandling of corrupt central directory record in archive/zip CVSS 3.1MEDIUM 5.5
- TI-2021-15910 Go before 1.16.9 and 1.17.x before 1.17.2 has a Buffer Overflow via large arguments in a… CVSS 3.1CRITICAL 9.8
Sources
- CVE-2023-29403 · CVE Program
- CVE-2023-29403 · NVD
- FIRST EPSS
- GHSA-rxx3-4978-3cc9 · GitHub Advisory Database · CC BY 4.0
- CVE-2023-29403 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences