Exfiltration of hashed SMB credentials on Windows via file:// redirect
Published 10 Nov 2022 · Updated 8 Nov 2023
Affected packages
- Affected
- <18.3.7
- Fixed in
- 18.3.7
npm install electron@18.3.7- Affected
- >=20.0.0-beta.1 <20.0.1
- Fixed in
- 20.0.1
npm install electron@20.0.1- Affected
- >=19.0.0-beta.1 <19.0.11
- Fixed in
- 19.0.11
npm install electron@19.0.11Details
Impact
When following a redirect, Electron delays a check for redirecting to file:// URLs from other schemes. The contents of the file is not available to the renderer following the redirect, but if the redirect target is a SMB URL such as file://some.website.com/, then in some cases, Windows will connect to that server and attempt NTLM authentication, which can include sending hashed credentials.
Patches
This issue has been fixed in all current stable versions of Electron. Specifically, these versions contain the fixes:
- 21.0.0-beta.1
- 20.0.1
- 19.0.11
- 18.3.7
We recommend all apps upgrade to the latest stable version of Electron.
Workarounds
If upgrading isn't possible, this issue can be addressed without upgrading by preventing redirects to file:// URLs in the WebContents.on('will-redirect') event, for all WebContents:
app.on('web-contents-created', (e, webContents) => {
webContents.on('will-redirect', (e, url) => {
if (/^file:/.test(url)) e.preventDefault()
})
})For more information
If you have any questions or comments about this advisory, email us at [security@electronjs.org](mailto:security@electronjs.org).
Credit
Thanks to user @coolcoolnoworries for reporting this issue.
Is GHSA-p2jh-44qj-pf2v in any of your client repos?
Checking one package by hand is fine. Checking it across forty client projects is not. NPMscan reads the lockfiles in every GitHub repo you pick, finds each project with an affected electron, and gives you the command that fixes it.
References
Advisory data from OSV.dev (opens OSV.dev in a new tab), refreshed daily.