Wins blog

글로벌 정보보안 파트너! Global Security  No.1 윈스는 국가대표 정보보안 기업에서 글로벌 강소기업으로 도약합니다.

보안 정보

앞 내용 보기 다음 내용 보기
취약점 정보[CVE-2018-1000136] Electron nodeIntegration Bypass
작성일 2018-05-17 조회 979

 

이번에 공개된 [CVE-2018-1000136] Electron Webview nodeIntegration enable RCE 취약점은 Skype, Slack, GitHub Desktop, Twitch, WordPress.com 및 기타인기있는 데스크톱 응용 프로그램잠재적으로 영향을 줍니다.



Electron는 개발자가 JavaScript, HTML 및 CSS와 같은 웹 기술을 사용하여 데스크톱 응용 프로그램을 만들 수있게 해주는 node.js, V8 및 Chromium 오픈 소스 프레임 워크입니다.
Electron 프레임 워크를 기반으로 어플리케이션을 개발할 때 개발자는 Electron API 또는 Node.js API와 모듈을 선택할 수 있습니다.
Node.js API 및 내장 모듈은 개발자가 OS와 더 넓은 통합을 제공하고 더 많은 OS 기능에 액세스 할 수있게합니다.

 

Electron 프레임 워크는 다양한 보안 매커니즘을 가지고 있는데 그중 XSS공격을 차단하는 메커니즘도 보유하고 있습니다.

데스크탑에서 HTML 및 JS 코드를 실행하는 어플리케이션은 기본적으로 nodeIntegration옵션이 Disable되외 있습니다.("nodeIntegration : false")
이는 Node.js API 및 모듈에 대한 액세스가 기본적으로 비활성화되어 있음을 의미합니다.

 

// Security options that child windows will always inherit from parent windows
const inheritedWebPreferences = new Map([
 ['contextIsolation', true],
 ['javascript', false],
 ['nativeWindowOpen', true],
 ['nodeIntegration', false],
 ['sandbox', true],
 ['webviewTag', false]
]);

 

WebView Tag기능은 개발자가 Electron응용프로그램으로, 웹페이지에서 OS 내부의 Process를 실행할 수 있습니다.
WebView Tag를 사용할 때 nodeIntegration을 비롯한 여러 속성을 전달할 수도 있습니다
WebView 컨테이너에는 기본적으로 nodeIntegration false로 설정되어 있습니다.

 

webPreferences 설정 파일에서 webviewTag를 false로 설정하면 nodeIngration도 false로 설정되지만 개발자가 webviewTag를 선언하지 않으면 Electron 어플리케이션은 nodeIntegration을 false로 설정합니다.

 

공격 스크립트 [https://www.trustwave.com/Resources/SpiderLabs-Blog/CVE-2018-1000136---Electron-nodeIntegration-Bypass/]

 

이렇게 Default nodeIntegration false 어플리케이션은 악의적인 공격자가 심어놓은 nodeIntegration true 스크립트로 인해 임의코드 취약점이 직면하게 됩니다.
즉 개발자의 고의이건 실수이건 nodeIntegration 설정값을 지정해 주지 않은 문제는 공격자에게는 임의코드가 가능케 하는 좋은 먹잇감이 됩니다.

 

 

 

Sniper 제품군 대응방안

Sniper-IPS

[4277] Electron Webview nodeIntegration enable RCE

Sniper-UTM

[805374554] Electron Webview nodeIntegration enable RCE

Sniper-APTX

[3529] Electron Webview nodeIntegration enable RCE

 


참조
https://www.electronjs.org/blog/webview-fix
https://github.com/brave/browser-laptop/issues/14112

첨부파일 첨부파일이 없습니다.
태그 CVE-2018-1000136  nodeIntegration