Skip to main content

BrowserView window.open() 취약점 수정

· 2 min read

Node.js를 자식 윈도우에서 다시 활성화할 수 있는 코드 취약점이 발견되었다.

sandbox: true 또는 nativeWindowOpen: truenodeIntegration: 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로 이메일을 보낸다.