安全性佈告欄

Microsoft 安全性佈告欄 MS13-103 - 重要

ASP.NET SignalR 中的弱點可能會允許提高許可權 (2905244)

發行日期:2013 年 12 月 10 日

版本: 1.0

一般資訊

執行摘要

此安全性更新可解決 ASP.NET SignalR 中私下回報的弱點。 如果攻擊者反映特製 JavaScript 回到目標使用者的瀏覽器,此弱點可能會允許提高許可權。

此安全性更新已針對 ASP.NET SignalR 1.1.0、1.1.1、1.1.2、1.1.3 和 2.0.0 版評等,以及 Microsoft Visual Studio Team Foundation Server 2013 的所有支援版本。 如需詳細資訊,請參閱本節中的小節: 受影響的和非受影響的軟體

安全性更新可確保 ASP.NET SignalR 正確編碼使用者輸入,藉此解決弱點。 如需弱點的詳細資訊,請參閱下一節弱點 資訊下特定弱點專案的常見問題 (常見問題) 小節。

建議。 

針對開發使用ASP.NET SignalR的 Web 應用程式的客戶
建議開發使用 ASP.NET SignalR 功能之 Web 應用程式的客戶遵循本公告 的安全性更新 一節中的更新指引,以取得有關如何在其環境中更新 ASP.NET SignalR 的詳細指示。

針對執行Microsoft Visual Studio Team Foundation Server2013安裝的客戶
對於已啟用自動更新且執行 Microsoft Visual Studio Team Foundation Server 2013 的客戶,將會自動下載並安裝更新。 尚未啟用自動更新的客戶必須檢查更新,並手動安裝此更新。 如需自動更新中特定組態選項的相關資訊,請參閱 Microsoft 知識庫文章294871

對於系統管理員和企業安裝,或想要手動安裝此安全性更新的終端使用者,Microsoft 建議客戶使用更新管理軟體最早的機會套用更新,或使用 Microsoft Update 服務檢查更新。

請參閱本公告稍後的 偵測和部署工具和指引一節。

知識庫文件

知識庫文件 2905244
檔案資訊 Yes
SHA1/SHA2 雜湊 Yes
已知問題

受影響的和非受影響的軟體

下列軟體已經過測試,以判斷哪些版本或版本受到影響。 其他版本或版本已超過其支援生命週期,或不會受到影響。 若要判斷軟體版本或版本的支援生命週期,請參閱Microsoft 支援服務生命週期

受影響的軟體 

開發人員工具 安全性影響上限 匯總嚴重性評等 更新已取代
ASP.NET SignalR 1.1.x[1] \ (2903919) 提高權限 重要
ASP.NET SignalR 2.0.x[1] \ (2903919) 提高權限 重要
Microsoft Visual Studio Team Foundation Server 2013 \ (2903566) 提高權限 重要

[1]適用于裝載支援 ASP.NET SignalR 功能的 Web 應用程式的 Windows 伺服器。 更新僅適用于下載版本 1.1.0、1.1.1、1.1.2 和 1.1.3 和 2.0.0 版,到最新支援的版本 (1.1.4 和 2.0.1 版) 。 See the Security Update Deployment section of this bulletin for more information.
** **

不受影響的軟體

軟體和作業系統
ASP.NET SignalR 1.0.0
ASP.NET SignalR 1.0.1
Microsoft Visual Studio .NET 2003 Service Pack 1
Microsoft Visual Studio 2005 Service Pack 1
Microsoft Visual Studio Team Foundation Server 2005 Service Pack 1
Microsoft Visual Studio 2008 Service Pack 1
Microsoft Visual Studio Team Foundation Server 2008 Service Pack 1
Microsoft Visual Studio 2010 Service Pack 1
Microsoft Visual Studio Team Foundation Server 2010 Service Pack 1
Microsoft Visual Studio LightSwitch 2011
Microsoft Visual Studio 2012
Microsoft Visual Studio Team Foundation Server 2012

更新常見問題

什麼是ASP.NET SignalR? 
ASP.NET SignalR 是 ASP.NET 開發人員的程式庫,可簡化即時 Web 功能的開發。 ASP.NET SignalR 允許透過 JavaScript 在伺服器與用戶端之間進行雙向通訊,讓伺服器能夠立即將內容推送至已連線的用戶端,因為 (推送功能) 。 如需 ASP.NET SignalR 的詳細資訊,請參閱 瞭解 ASP.NET SignalR

如何?判斷安裝在系統上ASP.NET SignalRare的版本 
若要判斷部署在系統上的 ASP.NET SignalR 版本,請針對 「SignalR」 執行系統硬碟的搜尋。 檢視搜尋中傳回之任何 Microsoft.AspNet.SignalR.Core.dll 檔案的屬性,以顯示其版本號碼。 任何早于 1.1.4 版的 1.1.x 版本都是易受攻擊的,而且應該更新。 任何早于 2.0.1 版的 2.0.x 版本都是易受攻擊的,而且應該更新。 找到的任何 1.0.x 版本都不會易受攻擊。

如何?升級我的 ASP.NET SignalR 版本嗎?
隨 Visual Studio Team Foundation Server 2013 一起安裝的 ASP.NET SignalR 實例將會透過 Microsoft Update 更新。 不過,在開發人員系統和 Web 應用程式伺服器上 ASP.NET SignalR 的其他實例,必須使用此佈告欄的 [安全性更新部署 ] 區段中定義的程式來更新。

此更新是否會升級我的 ASP.NET SignalR 版本?  
不會。 更新會更新安裝在系統上的修補程式版本,但不會升級主要或次要版本。 自此公告發行起, (1.1.x 版和 2.0.x 版) 支援兩個主要版本的 ASP.NET SignalR。 更新會將任何 1.1.x 版本更新為 1.1.4,並將任何 2.0.x 版本更新為 2.0.1。

我使用此安全性佈告欄所討論的舊版軟體。我該怎麼做? 
此佈告欄中列出的受影響軟體已經過測試,以判斷哪些版本受到影響。 其他版本已超過其支援生命週期。 如需產品生命週期的詳細資訊,請參閱Microsoft 支援服務 生命週期網站。

對於具有較舊版軟體的客戶而言,它應該是一個優先順序,可遷移至支援的版本,以防止潛在的弱點暴露。 若要判斷軟體版本的支援生命週期,請參閱 選取生命週期資訊的產品。 如需這些軟體版本 Service Pack 的詳細資訊,請參閱 Service Pack 生命週期支援原則

需要舊版軟體自訂支援的客戶必須連絡其 Microsoft 帳戶小組代表、其技術帳戶管理員,或適當的 Microsoft 合作夥伴代表以取得自訂支援選項。 沒有聯盟、頂級或授權合約的客戶可以連絡其當地 Microsoft 銷售辦公室。 如需連絡資訊,請參閱 Microsoft 全球資訊 網站,選取 [連絡資訊] 清單中的國家/地區,然後按一下 [ 移至 ] 以查看電話號碼清單。 當您撥打電話時,請洽詢當地頂級支援銷售經理。 如需詳細資訊,請參閱Microsoft 支援服務生命週期原則常見問題

弱點資訊

嚴重性評等和弱點識別碼

下列嚴重性評等假設弱點的潛在最大影響。 如需此安全性佈告欄發行的 30 天內,弱點的惡意探索性與其嚴重性評等和安全性影響有關的資訊,請參閱 12 月公告摘要中的惡意探索索引。 如需詳細資訊,請參閱 Microsoft 惡意探索索引

受影響的軟體 SignalR XSS 弱點 - CVE-2013-5042 匯總嚴重性評等
開發人員工具
ASP.NET SignalR 1.1.x (2903919) 重要 提高許可權 重要
ASP.NET SignalR 2.0.x (2903919) 重要 提高許可權 重要
Microsoft Visual Studio Team Foundation Server 2013 (2903566) 重要 提高許可權 重要

SignalR XSS 弱點 - CVE-2013-5042

許可權提升弱點存在於 ASP.NET SignalR 中,可讓攻擊者存取目標使用者內容中的資源。

若要將此弱點視為常見弱點和暴露清單中的標準專案,請參閱 CVE-2013-5042

緩和因素

Microsoft 尚未識別此弱點的任何緩和因素。

因應措施

因應措施是指未修正基礎弱點的設定或設定變更,但有助於在套用更新之前封鎖已知的攻擊媒介。 Microsoft 已在討論中測試下列因應措施,並說明因應措施是否可降低功能:

  • 對於使用ASP.NET SignalR 功能裝載 Web 應用程式的 Windows 伺服器關閉 ASP.NET SignalRForever Frame傳輸通訊協定會暫時保護弱點。

    在程式碼中完成停用用戶端和伺服器端上的 ASP.NET SignalR Forever Frame 傳輸通訊協定。 請參閱下列範例作為在您的環境中停用通訊協定的指引。

    從用戶端停用受影響傳輸的程式碼範例:

    // If using the default hub connection
    $.connection.hub.start({ transport: ["webSockets", "serverSentEvents", "longPolling"] });
    
    // If using a manually-created connection
    var connection = $.connection("https://sample.com/signalr");
    connection.start({ transport: ["webSockets", "serverSentEvents", "longPolling"] });
    

    使用預設全域相依性解析程式時,停用伺服器端受影響傳輸的程式碼範例:

    using Microsoft.AspNet.SignalR;
    using Microsoft.AspNet.SignalR.Transports;
    using Owin;
    namespace MyApplication
    {
        public static class Startup
        {
            public static void ConfigureSignalR(IAppBuilder app)
            {
                // If using the global dependency resolver
                TurnOfForeverFrame(GlobalHost.DependencyResolver);
                app.MapSignalR();
            }
            public static void TurnOfForeverFrame(IDependencyResolver resolver)
            {
                var transportManager = resolver.Resolve<itransportmanager>() as TransportManager;
                transportManager.Remove("foreverFrame");
            }
        }
    }
    
    
    Code example to disable the affected transport on the server side when using a custom dependency resolver:
    
    using Microsoft.AspNet.SignalR;
    using Microsoft.AspNet.SignalR.Transports;
    using Owin;
    namespace MyApplication
    {
        public static class Startup
        {
            public static void ConfigureSignalR(IAppBuilder app)
            {
                // If using a custom dependency resolver
                var resolver = GetCustomResolver();
                TurnOfForeverFrame(resolver);
                app.MapSignalR(new HubConfiguration
                {
                    Resolver = resolver
                });
            }
            private static IDependencyResolver GetCustomResolver()
            {
                return new DefaultDependencyResolver();
            }
            public static void TurnOfForeverFrame(IDependencyResolver resolver)
            {
                var transportManager = resolver.Resolve</itransportmanager><itransportmanager>() as TransportManager;
                transportManager.Remove("foreverFrame");
            }
        }
    }
    

    因應措施的影響。 實作因應措施之後,Internet Explorer 用戶端可能會向 SignalR 應用程式呈現較慢的通訊速度。

  • 針對已安裝 Microsoft Visual Studio Team Foundation Server 2013 的系統,Microsoft 尚未識別任何因應措施。

常見問題集

弱點的範圍為何?
這是權限提高弱點。

造成弱點的原因為何?
ASP.NET SignalR 不正確地編碼使用者輸入時,就會造成弱點。

攻擊者可能會使用弱點來執行哪些動作?
在網頁流覽案例中,攻擊者可以將特製的 JavaScript 反映回使用者的瀏覽器,這可讓攻擊者修改頁面內容、進行網路釣魚,或代表目標使用者執行動作。

攻擊者如何利用弱點?
在攻擊案例中,攻擊者可能會引入目標使用者特製內容的瀏覽器,其中包含惡意 JavaScript,其設計目的是要讓攻擊者存取目標使用者可用的資源。

哪些系統主要有弱點的風險?
在網頁流覽案例中,成功惡意探索此弱點需要使用者登入並流覽裝載 ASP.NET SignalR 的網站。 因此,經常使用網頁瀏覽器的任何系統,例如工作站或終端機伺服器,都是此弱點的最大風險。 如果系統管理員允許使用者在伺服器上流覽和讀取電子郵件,伺服器可能會有更大的風險。 不過,最佳做法強烈建議您不允許這樣做。

更新有何用途?
更新可確保 ASP.NET SignalR 正確編碼使用者輸入,以解決弱點。

發出此安全性佈告欄時,是否公開此弱點?
不會。 Microsoft 透過協調的弱點洩漏收到此弱點的相關資訊。

發出此安全性佈告欄時,Microsoft 是否收到任何遭到惡意探索此弱點的報告?
不會。 Microsoft 未收到任何資訊,指出此弱點在最初發出此安全性佈告欄時,已公開用來攻擊客戶。

更新資訊

偵測和部署工具和指引

有數個資源可用來協助系統管理員部署安全性更新。 

  • Microsoft Baseline Security Analyzer (MBSA) 可讓系統管理員掃描本機和遠端系統是否有遺漏的安全性更新和常見的安全性設定錯誤。 
  • Windows Server Update Services (WSUS) 、Systems Management Server (SMS) ,以及 System Center Configuration Manager協助系統管理員散發安全性更新。 
  • 應用程式相容性工具組隨附的更新相容性評估工具元件可協助簡化針對已安裝應用程式的 Windows 更新測試和驗證。 

如需這些工具和其他可用工具的相關資訊,請參閱 適用于 IT 專業人員的安全性工具。 

安全性更新部署

受影響的軟體

如需受影響軟體之特定安全性更新的相關資訊,請按一下適當的連結:

ASP.NET SignalR (所有版本)

視您的部署案例而定,有數個可用的更新選項。 為您的案例選擇最佳選項:

適用于已啟用 SignalR 的 ASP.NET Web 應用程式的開發人員

  • 選項 1:使用 NuGet 更新 Visual Studio 專案套件、重新編譯您的應用程式,以及部署

    1. 在 Visual Studio 中開啟方案。
    2. 在 方案總管中,以滑鼠右鍵按一下 [參考]節點,然後按一下 [管理 NuGet 套件]。
    3. 選取[更新] 索引標籤。具有更新的套件清單會出現在中央窗格中。
    4. 選取 Microsoft.AspNet.SignalR 套件,然後按一下 [ 更新]。
    5. 編譯及部署 Web 應用程式。

    如需使用 NuGet 對話方塊管理 NuGet 套件的詳細資訊,請參閱 使用對話方塊管理 NuGet 套件

  • 選項 2:使用套件管理員主控台 UI 更新 Visual Studio 專案套件、重新編譯您的應用程式,以及部署

    1. 在 Visual Studio 中開啟方案。
    2. 按一下 [ 工具] 功能表,選取 [ 程式庫套件管理員],然後按一下 [ 套件管理員主控台]。
    3. 在套件管理員視窗中,輸入 Update-Package Microsoft.AspNet.SignalR
    4. 編譯及部署 Web 應用程式。

    如需使用套件管理員主控台的詳細資訊,請參閱使用 套件管理員主控台

對於無法重新編譯 ASP.NET 啟用 SignalR 的 Web 應用程式的系統管理員

  • 在系統管理員系統上更新 ASP.NET SignalR

    若要在更新專案和重新部署 Web 應用程式之前保護伺服器,請使用下表中提供的連結來安裝更新。 這應該視為 IT 系統管理員的暫時保護,直到部署使用 ASP.NET SignalR 的應用程式可以更新為止。

    更新檔案 SignalR-KB2903919.msi
    安裝參數 請參閱 Microsoft 知識庫文章262841
    更新記錄檔 不適用
    重新啟動需求 不需要重新開機系統;不過,IIS 將會重新開機。
    移除資訊 在 主控台中使用[新增或移除程式]。
    檔案資訊 請參閱 Microsoft 知識庫文章2903919

Microsoft Visual Studio Team Foundation Server 2013 (所有版本)

參考資料表

下表包含此軟體的安全性更新資訊。

安全性更新檔案名 針對 Microsoft Visual Studio Team Foundation Server 2013:\ TFS2013-KB2903566.exe
安裝參數 請參閱 Microsoft 知識庫文章262841
更新記錄檔 不適用
重新啟動需求 如果檔案正在使用中,此更新可能需要重新開機。
移除資訊 在 主控台中使用[新增或移除程式]。
檔案資訊 請參閱 Microsoft 知識庫文章2903566
登錄機碼驗證 針對 Microsoft Visual Studio Team Foundation Server 2013:\ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DevDiv\tfs\Servicing\12.0

其他資訊

Microsoft Active Protections Program (MAPP)

為了改善客戶的安全性保護,Microsoft 會在每個每月安全性更新版本之前,為主要安全性軟體提供者提供弱點資訊。 安全性軟體提供者接著可以使用此弱點資訊,透過其安全性軟體或裝置為客戶提供更新的保護,例如防毒、網路型入侵偵測系統或主機型入侵防護系統。 若要判斷是否可從安全性軟體提供者取得主動式保護,請移至計畫合作夥伴所提供的主動保護網站,列在 Microsoft Active Protections 計畫 (MAPP) Partner中。

支援

如何取得此安全性更新的說明和支援

免責聲明

Microsoft 知識庫中提供的資訊是以「原樣」提供,不含任何種類的保固。 Microsoft 會明確或隱含地拒絕所有擔保,包括適適性與適合特定用途的擔保。 任何情況下,Microsoft Corporation 或其供應商都對任何損害負責,包括直接、間接、間接、衍生性、業務收益損失或特殊損害,即使 Microsoft Corporation 或其供應商已獲得這類損害的可能性。 某些狀態不允許排除或限制衍生性或附帶損害的責任,因此可能不適用上述限制。

修訂記錄

  • V1.0 (2013 年 12 月 10 日) :佈告欄發佈。

建置於 2014-04-18T13:49:36Z-07:00