{"id":"GHSA-4c8g-jvcx-v4hv","revision":"228527dc6d014210b8fc1c4263deb746","records":[{"revision":"228527dc6d014210b8fc1c4263deb746","observedAt":"2026-10-24T13:19:54.901+00:00","statement":{"source":"osv","id":"GHSA-4c8g-jvcx-v4hv","aliases":["CVE-2026-49983"],"title":"Deno: process.loadEnvFile() bypasses env permission checks and mutates process.env with only read access","description":"## Summary\n\nIn Deno, environment access is gated by the `env` permission. You can deny it\nwith `--deny-env`, or restrict it to a specific allowlist with\n`--allow-env=FOO,BAR`. The expectation is that a program running without `env`\npermission cannot change `process.env`.\n\n`process.loadEnvFile()` (the Node-compatible API for loading variables from a\n`.env` file) does **not** honor this. It only checks that the program has\n**read** permission for the dotenv file, then writes every key in that file\ninto the process environment — even when `env` access is denied.\n\nIn effect, **`--allow-read` plus a writable or attacker-controlled `.env` file\nis enough to defeat `--deny-env`.**\n\n## Am I affected?\n\nYou are potentially affected if **all** of the following are true:\n\n1. You run Deno **v2.3.0 or newer**.\n2. Your program (or any dependency it imports) calls `process.loadEnvFile()`\n   from `node:process`.\n3. You rely on Deno's permission model — specifically `--deny-env`, an\n   `--allow-env=…` allowlist, or running without granting `env` — as a\n   security boundary.\n4. The `.env` path passed to `loadEnvFile()` can be controlled or modified by\n   a less-trusted party (untrusted input, user-writable directory, third-party\n   dependency, etc.) and is covered by your `--allow-read` grant.\n\nIf your program does not use `process.loadEnvFile()` at all, or if it already\ngrants full `env` access, this advisory does not change your risk.","state":0,"publishedAt":"2026-06-16T19:04:57+00:00","modifiedAt":"2026-07-20T21:15:26.0088031+00:00","affected":[{"ecosystem":"crates.io","name":"deno","ranges":[{"type":"SEMVER","events":[{"kind":"introduced","version":"0"},{"kind":"fixed","version":"2.8.1"}]}],"versions":[],"rawVersionEvidence":null}],"metrics":[{"system":"CVSS_V3","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N","score":null,"severity":null},{"system":"Publisher rating","vector":null,"score":null,"severity":"MODERATE"}],"references":["https://github.com/denoland/deno/security/advisories/GHSA-4c8g-jvcx-v4hv","https://nvd.nist.gov/vuln/detail/CVE-2026-49983","https://github.com/denoland/deno"],"sourceUrl":"https://github.com/advisories/GHSA-4c8g-jvcx-v4hv","license":"GitHub Advisory Database · CC-BY-4.0","key":"osv:GHSA-4c8g-jvcx-v4hv","identifiers":["GHSA-4c8g-jvcx-v4hv","CVE-2026-49983"]},"retained":false,"historicalAffected":[]}],"coverage":[]}