部落格 RSS 訂閱

安全公告 CVE-2020-6506
作者:Jesse MacFadyen
2020 年 9 月 29 日

正式公開的公告

此漏洞是 Android WebView 中的一個通用跨網站指令碼(UXSS)漏洞,允許跨來源的 iframe 在頂層文件中執行任意 JavaScript。針對 Android 裝置建置的 Apache Cordova 應用程式,若允許載入不受其控制的網域中的 http 內容,可能會受到影響。理論上,這會發生在 iframe 中,或透過使用 InAppBrowser 外掛程式 (cordova-plugin-inappbrowser) 。

如果您的應用程式載入本地頁面(例如 Cordova 應用程式內的 index.html 從 malicious-example.com 載入 iframe),則此漏洞的利用不需要使用者互動。

此漏洞已在 Android WebView 版本 83.0.4103.106 中修復。使用者必須自行從 Google Play 商店更新其 Android WebView。

緩解措施

您可以採取一些預防措施來避免此漏洞。

  1. 盡可能使用嚴格的允許清單和內容安全政策 (CSP)。
  2. 一般而言,始終將本地程式碼載入到應用程式的主要 webview 中,並使用 InAppBrowser 來顯示任何遠端內容。
  3. 不要使用 iframe,如果必須使用,絕對不要在應用程式的主要 webview 中使用。使用 sandbox 屬性將可緩解此漏洞(最好使用空值)。 避免一起使用這些沙箱屬性 allow-popups allow-top-navigation allow-scripts,因為它們無法緩解此漏洞。

     <iframe sandbox='' src='http://untrusted-source' />
    

大多數這些預防措施一直是 Apache Cordova 的溫和建議,但並未反映在通常保持開放的預設值中。Apache Cordova 的提交者正在調查在框架層級防止此漏洞,以及加強預設值以防止意外暴露。同時,如果您懷疑您的應用程式存在漏洞,請遵循上述預防措施。

感謝 Alesandro Ortiz 發現此漏洞並引起我們的注意。

其他參考資料

編輯:修復了無法連結的連結 -JM