Vulnerability · Published Jul 2, 2024 · Assigned by Go

CVE-2022-30636Limited directory traversal vulnerability on Windows in golang.org/x/crypto

High 7.5

In plain English

A high-severity security flaw in golang.org/x/crypto/acme/autocert from golang.org/x/crypto. Proof-of-concept exploit code is public. The chance it is exploited in the next 30 days is estimated at 0.6% (higher than 51% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.

Severity (CVSS 3.1)7.5High
Exploit odds (30 days)0.6%top 49.3% of all CVEs
Exploited in the wildNo reportsCISA SSVC: poc
Attack toolingNoneno public tooling known

Official description

httpTokenCacheKey uses path.Base to extract the expected HTTP-01 token value to lookup in the DirCache implementation. On Windows, path.Base acts differently to filepath.Base, since Windows uses a different path separator (\ vs. /), allowing a user to provide a relative path, i.e. .well-known/acme-challenge/..\..\asd becomes ..\..\asd. The extracted path is then suffixed with +http-01, joined with the cache directory, and opened. Since the controlled path is suffixed with +http-01 before opening, the impact of this is significantly limited, since it only allows reading arbitrary files on the system if and only if they have this suffix.

Affected packages & fixed versions

EcosystemPackageFixed inAdvisory
Debian:12golang-go.crypto1:0.0~git20220829.c86fa9a-1DEBIAN-CVE-2022-30636
Debian:13golang-go.crypto1:0.0~git20220829.c86fa9a-1DEBIAN-CVE-2022-30636
Debian:14golang-go.crypto1:0.0~git20220829.c86fa9a-1DEBIAN-CVE-2022-30636
Gogolang.org/x/crypto0.0.0-20220525230936-793ad666bf5eGO-2024-2961

Affected products (as reported)

VendorProductVersions
golang.org/x/crypto golang.org/x/crypto/acme/autocert 0 – before 0.0.0-20220525230936-793ad666bf5e

References