BrowserView window.open() 취약점 수정
· 2 min read
Node.js를 자식 윈도우에서 다시 활성화할 수 있는 코드 취약점이 발견되었다.
sandbox: true
또는 nativeWindowOpen: true
와 nodeIntegration: false
옵션으로 BrowserView를 열면, window.open
을 호출할 수 있는 webContents가 생성된다. 이때 새로 열린 자식 윈도우에서는 nodeIntegration
이 활성화된다. 이 취약점은 현재 지원되는 모든 Electron 버전에 영향을 미친다.
취약점 완화
이 취약점을 해결한 새로운 버전의 Electron을 출시했다. 해당 버전은 다음과 같다:
2.0.17
,
3.0.15
,
3.1.3
,
4.0.4
, 그리고
5.0.0-beta.2
.
모든 Electron 개발자는 가능한 한 빨리 최신 안정 버전으로 앱을 업데이트할 것을 권장한다.
어떤 이유로든 Electron 버전을 업그레이드할 수 없는 경우, 모든 하위 웹 콘텐츠를 비활성화해 이 문제를 완화할 수 있다:
view.webContents.on('-add-new-contents', (e) => e.preventDefault());
추가 정보
이 취약점은 PalmerAL에 의해 발견되어 Electron 프로젝트에 책임감 있게 보고되었다.
Electron 애플리케이션의 보안을 유지하기 위한 모범 사례에 대해 더 알고 싶다면 보안 튜토리얼을 참고한다.
Electron에서 취약점을 발견하고 보고하려면 security@electronjs.org로 이메일을 보낸다.