CVE-2022-32190 Failure to strip relative path components in net/url

High 7.5 Published Updated

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.

PackageAffectedFixed in
golang BitnamiFrom 1.19.0-01.19.1
stdlib GoFrom 1.19.0-01.19.1
Linux distribution packages (38)
atomic-openshift-service-idler Red Hat:openshift:4.12::el8All versions0:4.12.0-202301312133.p0.ga0f9090.assembly.stream.el8
bpftool Red Hat:openshift:4.12::el8All versions0:4.18.0-372.43.1.el8_6
bpftool-debuginfo Red Hat:openshift:4.12::el8All versions0:4.18.0-372.43.1.el8_6
buildah Red Hat:openshift:4.12::el8All versions1:1.23.4-3.rhaos4.12.el8
buildah-debuginfo Red Hat:openshift:4.12::el8All versions1:1.23.4-3.rhaos4.12.el8
buildah-debugsource Red Hat:openshift:4.12::el8All versions1:1.23.4-3.rhaos4.12.el8
buildah-tests Red Hat:openshift:4.12::el8All versions1:1.23.4-3.rhaos4.12.el8
buildah-tests-debuginfo Red Hat:openshift:4.12::el8All versions1:1.23.4-3.rhaos4.12.el8
containers-common Red Hat:openshift:4.12::el8All versions2:1-32.rhaos4.12.el8
kernel Red Hat:openshift:4.12::el8All versions0:4.18.0-372.43.1.el8_6
kernel-core Red Hat:openshift:4.12::el8All versions0:4.18.0-372.43.1.el8_6
kernel-cross-headers Red Hat:openshift:4.12::el8All versions0:4.18.0-372.43.1.el8_6
kernel-debug Red Hat:openshift:4.12::el8All versions0:4.18.0-372.43.1.el8_6
kernel-debug-core Red Hat:openshift:4.12::el8All versions0:4.18.0-372.43.1.el8_6
kernel-debug-debuginfo Red Hat:openshift:4.12::el8All versions0:4.18.0-372.43.1.el8_6
kernel-debug-devel Red Hat:openshift:4.12::el8All versions0:4.18.0-372.43.1.el8_6
kernel-debug-modules Red Hat:openshift:4.12::el8All versions0:4.18.0-372.43.1.el8_6
kernel-debug-modules-extra Red Hat:openshift:4.12::el8All versions0:4.18.0-372.43.1.el8_6
kernel-debug-modules-internal Red Hat:openshift:4.12::el8All versions0:4.18.0-372.43.1.el8_6
kernel-debuginfo Red Hat:openshift:4.12::el8All versions0:4.18.0-372.43.1.el8_6
kernel-debuginfo-common-aarch64 Red Hat:openshift:4.12::el8All versions0:4.18.0-372.43.1.el8_6
kernel-debuginfo-common-ppc64le Red Hat:openshift:4.12::el8All versions0:4.18.0-372.43.1.el8_6
kernel-debuginfo-common-s390x Red Hat:openshift:4.12::el8All versions0:4.18.0-372.43.1.el8_6
kernel-debuginfo-common-x86_64 Red Hat:openshift:4.12::el8All versions0:4.18.0-372.43.1.el8_6
kernel-devel Red Hat:openshift:4.12::el8All versions0:4.18.0-372.43.1.el8_6
kernel-doc Red Hat:openshift:4.12::el8All versions0:4.18.0-372.43.1.el8_6
kernel-headers Red Hat:openshift:4.12::el8All versions0:4.18.0-372.43.1.el8_6
kernel-ipaclones-internal Red Hat:openshift:4.12::el8All versions0:4.18.0-372.43.1.el8_6
kernel-modules Red Hat:openshift:4.12::el8All versions0:4.18.0-372.43.1.el8_6
kernel-modules-extra Red Hat:openshift:4.12::el8All versions0:4.18.0-372.43.1.el8_6
kernel-modules-internal Red Hat:openshift:4.12::el8All versions0:4.18.0-372.43.1.el8_6
kernel-rt Red Hat:openshift:4.12::el8All versions0:4.18.0-372.41.1.rt7.198.el8_6
kernel-rt-core Red Hat:openshift:4.12::el8All versions0:4.18.0-372.41.1.rt7.198.el8_6
kernel-rt-debug Red Hat:openshift:4.12::el8All versions0:4.18.0-372.41.1.rt7.198.el8_6
kernel-rt-debug-core Red Hat:openshift:4.12::el8All versions0:4.18.0-372.41.1.rt7.198.el8_6
kernel-rt-debug-debuginfo Red Hat:openshift:4.12::el8All versions0:4.18.0-372.41.1.rt7.198.el8_6
kernel-rt-debug-devel Red Hat:openshift:4.12::el8All versions0:4.18.0-372.41.1.rt7.198.el8_6
kernel-rt-debug-kvm Red Hat:openshift:4.12::el8All versions0: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.

All Golang Go vulnerabilities

Sources

Also known as BIT-golang-2022-32190, DEBIAN-CVE-2022-32190, GHSA-q856-gh5w-3vwg, GO-2022-0988, RHBA-2023:0568.

Is CVE-2022-32190 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free