更新:2014-08-06 (CVE-2014-3502 的文字在發布此文章後已更改,以更好地解釋問題的範圍和減輕問題的方法)
Cordova 的 Android 平台中發現了安全性問題。我們正在發布 Cordova Android 3.5.1 版本,以解決這些安全性問題。我們建議所有使用 Cordova 建置的 Android 應用程式都升級到使用 Cordova Android 3.5.1 版本。其他 Cordova 平台(例如 iOS)不受影響,並且沒有更新。
當使用 Cordova CLI 時,使用 Cordova Android 3.5.1 的指令是
cordova platform add android@3.5.1 --usenpm
安全性問題包括 CVE-2014-3500、CVE-2014-3501 和 CVE-2014-3502。
為了您的方便,此處包含這些 CVE 的文字。
CVE-2014-3500:Cordova 透過 Android intent URL 進行跨應用程式腳本攻擊
嚴重性:高
供應商:Apache 軟體基金會
受影響的版本:Cordova Android 版本至 3.5.0
描述:使用 Cordova 框架建置的 Android 應用程式可以透過特殊的 intent URL 啟動。一個精心設計的 URL 可能會導致基於 Cordova 的應用程式以與開發人員預期的不同的啟動頁面啟動,包括儲存在 Android 裝置上的其他 HTML 內容。這種情況在所有已發布的 Cordova 版本(至 3.5.0)中都存在,並且已在最新版本 (3.5.1) 中修復。我們建議受影響的專案將其應用程式更新到最新版本。
升級途徑:關心此問題的開發人員應使用 Cordova Android 3.5.1 重建其應用程式。
致謝:此問題由 IBM 安全系統的 David Kaplan 和 Roee Hay 發現。
CVE-2014-3501:Cordova 非 HTTP URL 的白名單繞過
嚴重性:中
供應商:Apache 軟體基金會
受影響的版本:所有已發布的 Cordova Android 版本
描述:使用 Cordova 框架建置的 Android 應用程式使用 WebView 元件來顯示內容。Cordova 應用程式可以指定一個 URL 白名單,該應用程式將允許顯示或透過 XMLHttpRequest 與之通訊。但是,當 WebView 元件透過 JavaScript 指示透過非 http 通道進行通訊時,不使用此白名單。
具體來說,可以從應用程式 JavaScript 開啟 WebSocket 連線,該連線將連接到網際網路上任何可連線的伺服器。如果攻擊者能夠在應用程式中執行任意 JavaScript,則該攻擊者可以導致連線開啟到任何伺服器,繞過 HTTP 白名單。
這是一般 Android 混合應用程式架構的限制,而不是 Apache Cordova 特有的。
可以透過在應用程式中的所有 HTML 頁面新增 CSP meta 標籤來緩解此攻擊向量,以允許僅連線到受信任的來源。應用程式開發人員也應升級到 Cordova Android 3.5.1,以減少針對其應用程式的 XAS 攻擊的風險,這些攻擊可能會使用此機制來連接到非預期的伺服器。有關可能的 XAS 漏洞的更多資訊,請參閱 CVE-2014-3500。
升級途徑:關心此問題的開發人員應使用 Cordova Android 3.5.1 重建其應用程式,並考慮在其應用程式 HTML 中新增 CSP meta 標籤。
致謝:此問題由 IBM 安全系統的 David Kaplan 和 Roee Hay 發現。
CVE-2014-3502:Cordova 應用程式可能會透過 URL 加載將資料洩漏給其他應用程式
嚴重性:中
供應商:Apache 軟體基金會
受影響的版本:Cordova Android 版本至 3.5.0
描述:使用 Cordova 框架建置的 Android 應用程式可以透過使用錨點標籤或將 webview 重新導向到 Android intent URL 來啟動其他應用程式。可以操縱 Cordova 應用程式 HTML 內容的攻擊者可以建立連結,這些連結會開啟其他應用程式並將任意資料傳送給這些應用程式。可以在 Cordova 應用程式的上下文中執行任意 JavaScript 程式碼的攻擊者也可以將文件位置設定為此類 URL。透過將此方法與第二個易受攻擊的應用程式結合使用,攻擊者可能可以使用此方法將資料從 Cordova 應用程式傳送到網路。
最新版本的 Cordova Android 採取措施阻止明確的 Android intent url,使其不再可以用於啟動裝置上的任意應用程式。
預設情況下,仍然可以使用隱含的 intent(包括具有諸如 "tel"、"geo" 和 "sms" 等 scheme 的 URL)來開啟外部應用程式,但此行為可以被外掛程式覆蓋。
升級途徑:關心此問題的開發人員應使用 Cordova Android 3.5.1 重建其應用程式。
致謝:此問題由 IBM 安全系統的 David Kaplan 和 Roee Hay 發現。
(此通知最初的內容如下:)
CVE-2014-3502:Cordova 應用程式可能會透過 Android intent URL 將資料洩漏給其他應用程式
嚴重性:中
供應商:Apache 軟體基金會
受影響的版本:Cordova Android 版本至 3.5.0
描述:使用 Cordova 框架建置的 Android 應用程式可以透過使用錨點標籤或將 webview 重新導向到 Android intent URL 來啟動其他應用程式。可以操縱 Cordova 應用程式 HTML 內容的攻擊者可以建立連結,這些連結會開啟其他應用程式並將任意資料傳送給這些應用程式。可以在 Cordova 應用程式的上下文中執行任意 JavaScript 程式碼的攻擊者也可以將文件位置設定為此類 URL。透過將此方法與第二個易受攻擊的應用程式結合使用,攻擊者可能可以使用此方法將資料從 Cordova 應用程式傳送到網路。
最新版本的 Cordova Android 採取措施阻止明確的 Android intent url,使其不再可以用於啟動裝置上的任意應用程式。
升級途徑:關心此問題的開發人員應使用 Cordova Android 3.5.1 重建其應用程式。
致謝:此問題由 IBM 安全系統的 David Kaplan 和 Roee Hay 發現。