CVE-2022-32190 Failure to strip relative path components in net/url
The Go net/url library fails to strip relative path components, potentially allowing path traversal in applications using JoinPath.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2022-32190?
CVE-2022-32190 is a high-severity path traversal vulnerability in Golang Go, published on 13 Sep 2022. An attacker can exploit it over the internet without logging in, with no action from the victim.
Official description
JoinPath and URL.JoinPath do not remove ../ path elements appended to a relative path. For example, JoinPath("https://go.dev", "../go") returns the URL "https://go.dev/../go", despite the JoinPath documentation stating that ../ path elements are removed from the result.
Weakness: CWE-22
Which versions are affected by CVE-2022-32190?
2 open source packages ship an affected version, including golang and stdlib. It affects 1 product.
| Package | Affected | Fixed in |
|---|---|---|
golang Bitnami | From 1.19.0-0 | 1.19.1 |
stdlib Go | From 1.19.0-0 | 1.19.1 |
Linux distribution packages (38)
atomic-openshift-service-idler Red Hat:openshift:4.12::el8 | All versions | 0:4.12.0-202301312133.p0.ga0f9090.assembly.stream.el8 |
bpftool Red Hat:openshift:4.12::el8 | All versions | 0:4.18.0-372.43.1.el8_6 |
bpftool-debuginfo Red Hat:openshift:4.12::el8 | All versions | 0:4.18.0-372.43.1.el8_6 |
buildah Red Hat:openshift:4.12::el8 | All versions | 1:1.23.4-3.rhaos4.12.el8 |
buildah-debuginfo Red Hat:openshift:4.12::el8 | All versions | 1:1.23.4-3.rhaos4.12.el8 |
buildah-debugsource Red Hat:openshift:4.12::el8 | All versions | 1:1.23.4-3.rhaos4.12.el8 |
buildah-tests Red Hat:openshift:4.12::el8 | All versions | 1:1.23.4-3.rhaos4.12.el8 |
buildah-tests-debuginfo Red Hat:openshift:4.12::el8 | All versions | 1:1.23.4-3.rhaos4.12.el8 |
containers-common Red Hat:openshift:4.12::el8 | All versions | 2:1-32.rhaos4.12.el8 |
kernel Red Hat:openshift:4.12::el8 | All versions | 0:4.18.0-372.43.1.el8_6 |
kernel-core Red Hat:openshift:4.12::el8 | All versions | 0:4.18.0-372.43.1.el8_6 |
kernel-cross-headers Red Hat:openshift:4.12::el8 | All versions | 0:4.18.0-372.43.1.el8_6 |
kernel-debug Red Hat:openshift:4.12::el8 | All versions | 0:4.18.0-372.43.1.el8_6 |
kernel-debug-core Red Hat:openshift:4.12::el8 | All versions | 0:4.18.0-372.43.1.el8_6 |
kernel-debug-debuginfo Red Hat:openshift:4.12::el8 | All versions | 0:4.18.0-372.43.1.el8_6 |
kernel-debug-devel Red Hat:openshift:4.12::el8 | All versions | 0:4.18.0-372.43.1.el8_6 |
kernel-debug-modules Red Hat:openshift:4.12::el8 | All versions | 0:4.18.0-372.43.1.el8_6 |
kernel-debug-modules-extra Red Hat:openshift:4.12::el8 | All versions | 0:4.18.0-372.43.1.el8_6 |
kernel-debug-modules-internal Red Hat:openshift:4.12::el8 | All versions | 0:4.18.0-372.43.1.el8_6 |
kernel-debuginfo Red Hat:openshift:4.12::el8 | All versions | 0:4.18.0-372.43.1.el8_6 |
kernel-debuginfo-common-aarch64 Red Hat:openshift:4.12::el8 | All versions | 0:4.18.0-372.43.1.el8_6 |
kernel-debuginfo-common-ppc64le Red Hat:openshift:4.12::el8 | All versions | 0:4.18.0-372.43.1.el8_6 |
kernel-debuginfo-common-s390x Red Hat:openshift:4.12::el8 | All versions | 0:4.18.0-372.43.1.el8_6 |
kernel-debuginfo-common-x86_64 Red Hat:openshift:4.12::el8 | All versions | 0:4.18.0-372.43.1.el8_6 |
kernel-devel Red Hat:openshift:4.12::el8 | All versions | 0:4.18.0-372.43.1.el8_6 |
kernel-doc Red Hat:openshift:4.12::el8 | All versions | 0:4.18.0-372.43.1.el8_6 |
kernel-headers Red Hat:openshift:4.12::el8 | All versions | 0:4.18.0-372.43.1.el8_6 |
kernel-ipaclones-internal Red Hat:openshift:4.12::el8 | All versions | 0:4.18.0-372.43.1.el8_6 |
kernel-modules Red Hat:openshift:4.12::el8 | All versions | 0:4.18.0-372.43.1.el8_6 |
kernel-modules-extra Red Hat:openshift:4.12::el8 | All versions | 0:4.18.0-372.43.1.el8_6 |
kernel-modules-internal Red Hat:openshift:4.12::el8 | All versions | 0:4.18.0-372.43.1.el8_6 |
kernel-rt Red Hat:openshift:4.12::el8 | All versions | 0:4.18.0-372.41.1.rt7.198.el8_6 |
kernel-rt-core Red Hat:openshift:4.12::el8 | All versions | 0:4.18.0-372.41.1.rt7.198.el8_6 |
kernel-rt-debug Red Hat:openshift:4.12::el8 | All versions | 0:4.18.0-372.41.1.rt7.198.el8_6 |
kernel-rt-debug-core Red Hat:openshift:4.12::el8 | All versions | 0:4.18.0-372.41.1.rt7.198.el8_6 |
kernel-rt-debug-debuginfo Red Hat:openshift:4.12::el8 | All versions | 0:4.18.0-372.41.1.rt7.198.el8_6 |
kernel-rt-debug-devel Red Hat:openshift:4.12::el8 | All versions | 0:4.18.0-372.41.1.rt7.198.el8_6 |
kernel-rt-debug-kvm Red Hat:openshift:4.12::el8 | All versions | 0:4.18.0-372.41.1.rt7.198.el8_6 |
Products include Golang Go.
How do I fix CVE-2022-32190?
Upgrade golang to 1.19.1 or later.
Upgrade, and resolve every user-supplied path against an allowed base folder before opening it. More about Path traversal.
Is CVE-2022-32190 being exploited?
There is no known exploitation of CVE-2022-32190 in the wild and no public exploit code.
Other vulnerabilities in Golang Go
- CVE-2020-0601 Microsoft Windows CryptoAPI Spoofing
- CVE-2026-27143 Missing bound checks can lead to memory corruption in safe Go in cmd/compile
- CVE-2024-24790 Unexpected behavior from Is methods for IPv4-mapped IPv6 addresses in net/netip
- CVE-2023-39320 Arbitrary code execution via go.mod toolchain directive in cmd/go
- CVE-2023-24540 Improper handling of JavaScript whitespace in html/template
Sources
Also known as BIT-golang-2022-32190, DEBIAN-CVE-2022-32190, GHSA-q856-gh5w-3vwg, GO-2022-0988, RHBA-2023:0568.