Description
Electron is a framework for writing cross-platform desktop applications using JavaScript, HTML and CSS. Prior to versions 38.8.6, 39.8.0, 40.7.0, and 41.0.0-beta.8, the select-usb-device event callback did not validate the chosen device ID against the filtered list that was presented to the handler. An app whose handler could be influenced to select a device ID outside the filtered set would grant access to a device that did not match the renderer's requested filters or was listed in exclusionFilters. The WebUSB security blocklist remained enforced regardless, so security-sensitive devices on the blocklist were not affected. The practical impact is limited to apps with unusual device-selection logic. This issue has been patched in versions 38.8.6, 39.8.0, 40.7.0, and 41.0.0-beta.8.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| electron | electron | < 38.8.6, >= 39.0.0-alpha.1, < 39.8.0, >= 40.0.0-alpha.1, < 40.7.0, >= 41.0.0-alpha.1, < 41.0.0-beta.8 | — |
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| npm | electron | < 38.8.6 | 38.8.6 | GHSA-9899-m83m-qhpj |
| npm | electron | >= 39.0.0-alpha.1, < 39.8.0 | 39.8.0 | GHSA-9899-m83m-qhpj |
| npm | electron | >= 40.0.0-alpha.1, < 40.7.0 | 40.7.0 | GHSA-9899-m83m-qhpj |
| npm | electron | >= 41.0.0-alpha.1, < 41.0.0-beta.8 | 41.0.0-beta.8 | GHSA-9899-m83m-qhpj |