安全性布告欄

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 正確地編碼使用者輸入,藉此解決弱點。 如需弱點的詳細資訊,請參閱下一節弱點資訊下特定弱點專案的常見問題 (FAQ) 小節

建議。 

針對開發使用 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)。 如需詳細資訊,請參閱此公告的 <安全性更新部署>一節。
** **

非受影響的軟體

軟體和操作系統
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 版本?  
否。 更新會更新安裝在系統上的修補程式版本,但不會升級主要或次要版本。 截至本公告的發行,支援兩個主要版本的 ASP.NET SignalR(1.1.x 和 2.0.x 版)。 更新會將任何 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 SignalR永遠框架傳輸通訊協定可提供暫時性保護,防止弱點。

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

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

    // 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)、系統管理伺服器 (SMS) 和 System Center Configuration Manager 可協助系統管理員散發安全性更新。 
  • 應用程式相容性工具組隨附的更新相容性評估工具元件有助於簡化針對已安裝應用程式的 Windows 更新測試和驗證。 

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

安全性更新部署

受影響的軟體

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

ASP.NET SignalR (所有版本)

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

適用於 ASP.NET 已啟用 SignalR 功能的 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 計劃 (MAPP)

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

支援

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

免責聲明

Microsoft 知識庫中提供的資訊會「如實」提供,而不會提供任何類型的擔保。 Microsoft 不表示明示或隱含的所有擔保,包括適銷性及適合特定用途的擔保。 任何情況下,Microsoft Corporation 或其供應商都不得承擔任何損害責任,包括直接、間接、附帶、衍生性、業務利潤損失或特殊損害,即使 Microsoft Corporation 或其供應商已獲告知可能遭受此類損害。 某些州不允許排除或限制衍生性或附帶性損害的責任,因此可能不適用上述限制。

修訂記錄

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

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