Medium · published August 5, 2026
Electron is a framework for writing cross-platform desktop applications using JavaScript, HTML and CSS. Prior to 39.8.6, 40.9.0, 41.1.1, and 42.0.0-beta.1, 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. This issue is fixed in versions 39.8.6, 40.9.0, 41.1.1, and 42.0.0-beta.1.
| Product | Versions | Fixed in |
|---|---|---|
| electronjs/electron | < 39.8.6 | 39.8.6 |
| electronjs/electron | ≥ 40.0.0, < 40.9.0 | 40.9.0 |
| electronjs/electron | ≥ 41.0.0, < 41.1.1 | 41.1.1 |
| electronjs/electron | all versions | — |
| electronjs/electron | all versions | — |
| electronjs/electron | all versions | — |
| electronjs/electron | all versions | — |
| electronjs/electron | all versions | — |
| electronjs/electron | all versions | — |
| electronjs/electron | all versions | — |