{"id":"CVE-2026-21715","state":"PUBLISHED","title":"A flaw in Node.js Permission Model filesystem enforcement leaves `fs.realpathSync.native()` without the required read permission checks, while all comparable filesystem functions c","description":"A flaw in Node.js Permission Model filesystem enforcement leaves `fs.realpathSync.native()` without the required read permission checks, while all comparable filesystem functions correctly enforce them.\r\n\r\nAs a result, code running under `--permission` with restricted `--allow-fs-read` can still use `fs.realpathSync.native()` to check file existence, resolve symlink targets, and enumerate filesystem paths outside of permitted directories.\r\n\r\nThis vulnerability affects **20.x, 22.x, 24.x, and 25.x** processes using the Permission Model where `--allow-fs-read` is intentionally restricted.","publishedAt":"2026-03-30T19:07:28.507Z","updatedAt":"2026-09-17T18:36:37.076Z","severity":{"score":3.3,"label":"Low","version":"3.0","vector":"CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N","source":"hackerone"},"assigner":"hackerone","products":["nodejs node"],"affected":[{"vendor":"nodejs","product":"node","defaultStatus":"unaffected","versions":[{"version":"20.20.1","status":"affected","lessThanOrEqual":"20.20.1","versionType":"semver"},{"version":"22.22.1","status":"affected","lessThanOrEqual":"22.22.1","versionType":"semver"},{"version":"24.14.0","status":"affected","lessThanOrEqual":"24.14.0","versionType":"semver"},{"version":"25.8.1","status":"affected","lessThanOrEqual":"25.8.1","versionType":"semver"},{"version":"4.0","status":"affected","lessThan":"4.*","versionType":"semver"},{"version":"5.0","status":"affected","lessThan":"5.*","versionType":"semver"},{"version":"6.0","status":"affected","lessThan":"6.*","versionType":"semver"},{"version":"7.0","status":"affected","lessThan":"7.*","versionType":"semver"},{"version":"8.0","status":"affected","lessThan":"8.*","versionType":"semver"},{"version":"9.0","status":"affected","lessThan":"9.*","versionType":"semver"},{"version":"10.0","status":"affected","lessThan":"10.*","versionType":"semver"},{"version":"11.0","status":"affected","lessThan":"11.*","versionType":"semver"},{"version":"12.0","status":"affected","lessThan":"12.*","versionType":"semver"},{"version":"13.0","status":"affected","lessThan":"13.*","versionType":"semver"},{"version":"14.0","status":"affected","lessThan":"14.*","versionType":"semver"},{"version":"15.0","status":"affected","lessThan":"15.*","versionType":"semver"},{"version":"16.0","status":"affected","lessThan":"16.*","versionType":"semver"},{"version":"17.0","status":"affected","lessThan":"17.*","versionType":"semver"},{"version":"18.0","status":"affected","lessThan":"18.*","versionType":"semver"},{"version":"19.0","status":"affected","lessThan":"19.*","versionType":"semver"}]}],"references":["https://nodejs.org/en/blog/vulnerability/march-2026-security-releases"],"weaknesses":["CWE-732"],"ingestedAt":"2026-10-29T20:11:10.572Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/21xxx/CVE-2026-21715.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-21715","state":"PUBLISHED","datePublished":"2026-03-30T19:07:28.507Z","dateUpdated":"2026-09-17T18:36:37.076Z","assignerShortName":"hackerone","assignerOrgId":"36234546-b8fa-4601-9d6f-f4e334aa8ea1","dateReserved":"2026-01-04T15:00:06.574Z"},"containers":{"cna":{"descriptions":[{"lang":"en","value":"A flaw in Node.js Permission Model filesystem enforcement leaves `fs.realpathSync.native()` without the required read permission checks, while all comparable filesystem functions correctly enforce them.\r\n\r\nAs a result, code running under `--permission` with restricted `--allow-fs-read` can still use `fs.realpathSync.native()` to check file existence, resolve symlink targets, and enumerate filesystem paths outside of permitted directories.\r\n\r\nThis vulnerability affects **20.x, 22.x, 24.x, and 25.x** processes using the Permission Model where `--allow-fs-read` is intentionally restricted."}],"affected":[{"vendor":"nodejs","product":"node","defaultStatus":"unaffected","versions":[{"version":"20.20.1","status":"affected","lessThanOrEqual":"20.20.1","versionType":"semver"},{"version":"22.22.1","status":"affected","lessThanOrEqual":"22.22.1","versionType":"semver"},{"version":"24.14.0","status":"affected","lessThanOrEqual":"24.14.0","versionType":"semver"},{"version":"25.8.1","status":"affected","lessThanOrEqual":"25.8.1","versionType":"semver"},{"version":"4.0","status":"affected","lessThan":"4.*","versionType":"semver"},{"version":"5.0","status":"affected","lessThan":"5.*","versionType":"semver"},{"version":"6.0","status":"affected","lessThan":"6.*","versionType":"semver"},{"version":"7.0","status":"affected","lessThan":"7.*","versionType":"semver"},{"version":"8.0","status":"affected","lessThan":"8.*","versionType":"semver"},{"version":"9.0","status":"affected","lessThan":"9.*","versionType":"semver"},{"version":"10.0","status":"affected","lessThan":"10.*","versionType":"semver"},{"version":"11.0","status":"affected","lessThan":"11.*","versionType":"semver"},{"version":"12.0","status":"affected","lessThan":"12.*","versionType":"semver"},{"version":"13.0","status":"affected","lessThan":"13.*","versionType":"semver"},{"version":"14.0","status":"affected","lessThan":"14.*","versionType":"semver"},{"version":"15.0","status":"affected","lessThan":"15.*","versionType":"semver"},{"version":"16.0","status":"affected","lessThan":"16.*","versionType":"semver"},{"version":"17.0","status":"affected","lessThan":"17.*","versionType":"semver"},{"version":"18.0","status":"affected","lessThan":"18.*","versionType":"semver"},{"version":"19.0","status":"affected","lessThan":"19.*","versionType":"semver"}]}],"references":[{"url":"https://nodejs.org/en/blog/vulnerability/march-2026-security-releases"}],"metrics":[{"cvssV3_0":{"version":"3.0","vectorString":"CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N","baseScore":3.3,"baseSeverity":"LOW"}}],"providerMetadata":{"shortName":"hackerone","orgId":"36234546-b8fa-4601-9d6f-f4e334aa8ea1","dateUpdated":"2026-03-30T19:07:28.507Z"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2026-04-01T14:55:13.031405Z","id":"CVE-2026-21715","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-732","type":"CWE","lang":"en","description":"CWE-732 Incorrect Permission Assignment for Critical Resource"}]}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-09-17T18:36:37.076Z"}}]}}}