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.
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
| Ecosystem | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian:12 | golang-go.crypto | 1:0.0~git20220829.c86fa9a-1 | DEBIAN-CVE-2022-30636 |
| Debian:13 | golang-go.crypto | 1:0.0~git20220829.c86fa9a-1 | DEBIAN-CVE-2022-30636 |
| Debian:14 | golang-go.crypto | 1:0.0~git20220829.c86fa9a-1 | DEBIAN-CVE-2022-30636 |
| Go | golang.org/x/crypto | 0.0.0-20220525230936-793ad666bf5e | GO-2024-2961 |
Affected products (as reported)
| Vendor | Product | Versions |
|---|---|---|
| golang.org/x/crypto | golang.org/x/crypto/acme/autocert | 0 – before 0.0.0-20220525230936-793ad666bf5e |