GHSA-5c9j-mhmv-5xgx
Electron: shell.openPath path validation bypass via embedded null byte
En bref
- Publiée
- Mise à jour
- CVE
- CVE-2026-70603
- CVSS_V3
- CVSS:3.1/AV:L/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:N
Description
### Impact `shell.openPath()` did not reject paths containing embedded null bytes. Apps that perform string-only validation of file paths (for example, checking the file extension) before passing them to `shell.openPath()` could be bypassed, allowing an attacker-controlled path to open a different file than the one that passed validation. Apps are only affected if they pass paths derived from untrusted input to `shell.openPath()` and rely on string-based validation without a filesystem check. Node's `fs` APIs already reject paths containing null bytes, so apps that call `fs.existsSync()`, `fs.stat()`, or similar before `shell.openPath()` are not affected. Apps that do not call `shell.openPath()` with untrusted input are not affected. ### Workarounds Reject any path containing a null byte before passing it to `shell.openPath()`: ```js if (filePath.includes('\0')) throw new Error('invalid path'); ``` ### Fixed Versions * `42.0.0-beta.1` * `41.1.1` * `40.9.0` * `39.8.6` ### For more information If you have any questions or comments about this advisory, email us at [security@electronjs.org](mailto:security@electronjs.org)
Paquets affectés
| Paquet | Versions |
|---|---|
| npm · electron | introduced 42.0.0-alpha.1, fixed 42.0.0-beta.1 |
| npm · electron | introduced 41.0.0-alpha.1, fixed 41.1.1 |
| npm · electron | introduced 40.0.0-alpha.1, fixed 40.9.0 |
| npm · electron | introduced 0, fixed 39.8.6 |
Références
- https://github.com/electron/electron/security/advisories/GHSA-5c9j-mhmv-5xgx WEB
- https://github.com/electron/electron PACKAGE
Sources
| Source | Licence |
|---|---|
| OSV.dev | CC-BY 4.0 — GitHub Advisory Database |