{"id":"GHSA-mq8j-3h7h-p8g7","summary":"Compromised child renderer processes could obtain IPC access without nodeIntegrationInSubFrames being enabled","details":"### Impact\nThis vulnerability allows a renderer with JS execution to obtain access to a new renderer process with `nodeIntegrationInSubFrames` enabled which in turn allows effective access to `ipcRenderer`.\n\nPlease note the misleadingly named `nodeIntegrationInSubFrames` option does not implicitly grant Node.js access rather it depends on the existing `sandbox` setting.  If your application is sandboxed then `nodeIntegrationInSubFrames` just gives access to the sandboxed renderer APIs (which includes `ipcRenderer`).\n\nIf your application then additionally exposes IPC messages without IPC `senderFrame` validation that perform privileged actions or return confidential data this access to `ipcRenderer` can in turn compromise your application / user even with the sandbox enabled.\n\n### Patches\nThis has been patched and the following Electron versions contain the fix:\n\n* `18.0.0-beta.6`\n* `17.2.0`\n* `16.2.6`\n* `15.5.5`\n\n### Workarounds\nEnsure that all IPC message handlers appropriately validate `senderFrame` as per our [security tutorial here](https://github.com/electron/electron/blob/main/docs/tutorial/security.md#17-validate-the-sender-of-all-ipc-messages).\n\n### For more information\n\nIf you have any questions or comments about this advisory, email us at [security@electronjs.org](mailto:security@electronjs.org).","aliases":["CVE-2022-29247"],"modified":"2023-11-08T04:09:12.104708Z","published":"2022-06-16T23:14:33Z","database_specific":{"github_reviewed":true,"github_reviewed_at":"2022-06-16T23:14:33Z","nvd_published_at":"2022-06-13T21:15:00Z","cwe_ids":["CWE-668"],"severity":"LOW"},"references":[{"type":"WEB","url":"https://github.com/electron/electron/security/advisories/GHSA-mq8j-3h7h-p8g7"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2022-29247"},{"type":"PACKAGE","url":"https://github.com/electron/electron"}],"affected":[{"package":{"name":"electron","ecosystem":"npm","purl":"pkg:npm/electron"},"ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"15.5.5"}]}],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2022/06/GHSA-mq8j-3h7h-p8g7/GHSA-mq8j-3h7h-p8g7.json"}},{"package":{"name":"electron","ecosystem":"npm","purl":"pkg:npm/electron"},"ranges":[{"type":"SEMVER","events":[{"introduced":"16.0.0"},{"fixed":"16.2.6"}]}],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2022/06/GHSA-mq8j-3h7h-p8g7/GHSA-mq8j-3h7h-p8g7.json"}},{"package":{"name":"electron","ecosystem":"npm","purl":"pkg:npm/electron"},"ranges":[{"type":"SEMVER","events":[{"introduced":"17.0.0"},{"fixed":"17.2.0"}]}],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2022/06/GHSA-mq8j-3h7h-p8g7/GHSA-mq8j-3h7h-p8g7.json"}},{"package":{"name":"electron","ecosystem":"npm","purl":"pkg:npm/electron"},"ranges":[{"type":"SEMVER","events":[{"introduced":"18.0.0-beta.1"},{"fixed":"18.0.0-beta.6"}]}],"database_specific":{"last_known_affected_version_range":"\u003c= 18.0.0-beta.5","source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2022/06/GHSA-mq8j-3h7h-p8g7/GHSA-mq8j-3h7h-p8g7.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:L/I:N/A:N"}]}