{"attribution":"This product uses data from the NVD API but is not endorsed or certified by the NVD.","cve":{"id":"CVE-2026-21715","sourceIdentifier":"support@hackerone.com","published":"2026-03-30T20:16:19.703","lastModified":"2026-08-19T13:32:49.980","vulnStatus":"Analyzed","cveTags":[],"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."},{"lang":"es","value":"Una falla en la aplicación del modelo de permisos del sistema de archivos de Node.js deja a 'fs.realpathSync.native()' sin las comprobaciones de permisos de lectura requeridas, mientras que todas las funciones comparables del sistema de archivos las aplican correctamente.\n\nComo resultado, el código que se ejecuta bajo '--permission' con '--allow-fs-read' restringido aún puede usar 'fs.realpathSync.native()' para verificar la existencia de archivos, resolver destinos de enlaces simbólicos y enumerar rutas del sistema de archivos fuera de los directorios permitidos.\n\nEsta vulnerabilidad afecta a los procesos 20.x, 22.x, 24.x y 25.x que utilizan el Modelo de Permisos donde '--allow-fs-read' está restringido intencionalmente."}],"affected":[{"source":"support@hackerone.com","affectedData":[{"vendor":"nodejs","product":"node","defaultStatus":"unaffected","versions":[{"version":"20.20.1","lessThanOrEqual":"20.20.1","versionType":"semver","status":"affected"},{"version":"22.22.1","lessThanOrEqual":"22.22.1","versionType":"semver","status":"affected"},{"version":"24.14.0","lessThanOrEqual":"24.14.0","versionType":"semver","status":"affected"},{"version":"25.8.1","lessThanOrEqual":"25.8.1","versionType":"semver","status":"affected"},{"version":"4.0","lessThan":"4.*","versionType":"semver","status":"affected"},{"version":"5.0","lessThan":"5.*","versionType":"semver","status":"affected"},{"version":"6.0","lessThan":"6.*","versionType":"semver","status":"affected"},{"version":"7.0","lessThan":"7.*","versionType":"semver","status":"affected"},{"version":"8.0","lessThan":"8.*","versionType":"semver","status":"affected"},{"version":"9.0","lessThan":"9.*","versionType":"semver","status":"affected"},{"version":"10.0","lessThan":"10.*","versionType":"semver","status":"affected"},{"version":"11.0","lessThan":"11.*","versionType":"semver","status":"affected"},{"version":"12.0","lessThan":"12.*","versionType":"semver","status":"affected"},{"version":"13.0","lessThan":"13.*","versionType":"semver","status":"affected"},{"version":"14.0","lessThan":"14.*","versionType":"semver","status":"affected"},{"version":"15.0","lessThan":"15.*","versionType":"semver","status":"affected"},{"version":"16.0","lessThan":"16.*","versionType":"semver","status":"affected"},{"version":"17.0","lessThan":"17.*","versionType":"semver","status":"affected"},{"version":"18.0","lessThan":"18.*","versionType":"semver","status":"affected"},{"version":"19.0","lessThan":"19.*","versionType":"semver","status":"affected"}]}]}],"metrics":{"cvssMetricV30":[{"source":"support@hackerone.com","type":"Secondary","cvssData":{"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","attackVector":"LOCAL","attackComplexity":"LOW","privilegesRequired":"LOW","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"LOW","integrityImpact":"NONE","availabilityImpact":"NONE"},"exploitabilityScore":1.8,"impactScore":1.4}],"ssvcV203":[{"source":"134c704f-9b21-4f2e-91b3-4a467353bcc0","ssvcData":{"timestamp":"2026-04-01T14:55:13.031405Z","id":"CVE-2026-21715","options":[{"exploitation":"none"},{"automatable":"no"},{"technicalImpact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}]},"weaknesses":[{"source":"134c704f-9b21-4f2e-91b3-4a467353bcc0","type":"Secondary","description":[{"lang":"en","value":"CWE-732"}]}],"configurations":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:a:nodejs:node.js:*:*:*:*:-:*:*:*","versionEndIncluding":"20.20.1","matchCriteriaId":"42C896A4-ABB4-4DF3-8F8B-320C8E8E6AA3"},{"vulnerable":true,"criteria":"cpe:2.3:a:nodejs:node.js:*:*:*:*:-:*:*:*","versionStartIncluding":"22.0.0","versionEndIncluding":"22.22.1","matchCriteriaId":"5317F856-6549-4E7C-B6B8-811DE991E7A7"},{"vulnerable":true,"criteria":"cpe:2.3:a:nodejs:node.js:*:*:*:*:-:*:*:*","versionStartIncluding":"24.0.0","versionEndIncluding":"24.14.0","matchCriteriaId":"DD9D3210-E42B-4584-817D-DAC5F1234234"},{"vulnerable":true,"criteria":"cpe:2.3:a:nodejs:node.js:*:*:*:*:-:*:*:*","versionStartIncluding":"25.0.0","versionEndIncluding":"25.8.1","matchCriteriaId":"89D03065-041A-4A59-95C4-B2AE7EE36439"}]}]}],"references":[{"url":"https://nodejs.org/en/blog/vulnerability/march-2026-security-releases","source":"support@hackerone.com","tags":["Vendor Advisory"]}]}}