Protocol Handler Vulnerability Fix
Electron 앱의 커스텀 프로토콜 핸들러에서 원격 코드 실행 취약점이 발견되었다. 이 취약점은 CVE 식별자 CVE-2018-1000006로 지정되었다.
영향을 받는 플랫폼
Windows에서 실행되도록 설계된 Electron 앱 중 myapp://
과 같은 프로토콜의 기본 핸들러로 등록된 앱은 이 취약점에 노출될 수 있다.
이러한 앱은 프로토콜이 어떻게 등록되었는지와 상관없이 영향을 받을 수 있다. 예를 들어 네이티브 코드를 사용하거나, Windows 레지스트리를 통해, 혹은 Electron의 app.setAsDefaultProtocolClient API를 통해 등록된 경우 모두 해당된다.
macOS와 Linux는 이 이슈에 취약하지 않다.
취약점 완화
이 취약점을 해결한 새로운 버전의 Electron을 출시했다:
1.8.2-beta.5
,
1.7.12
,
그리고 1.6.17
.
모든 Electron 개발자가 즉시 최신 안정 버전으로 앱을 업데이트할 것을 강력히 권장한다.
어떤 이유로든 Electron 버전을 업그레이드할 수 없는 경우,
app.setAsDefaultProtocolClient를 호출할 때 마지막 인자로 --
를 추가하면 Chromium이 추가 옵션을 파싱하지 못하게 할 수 있다.
이중 대시 --
는 커맨드 옵션의 끝을 나타내며, 이후에는 위치 매개변수만 허용된다.
app.setAsDefaultProtocolClient(protocol, process.execPath, [
'--your-switches-here',
'--',
]);
자세한 내용은 app.setAsDefaultProtocolClient API를 참고한다.
Electron 앱의 보안을 유지하는 최선의 방법에 대해 더 알고 싶다면, security tutorial을 확인한다.
Electron에서 발견한 취약점을 보고하려면 security@electronjs.org로 이메일을 보낸다.