安全公告

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 应用程序的客户遵循本公告的安全更新Deployment 部分中的更新指南,获取有关如何在其环境中更新 ASP.NET SignalR 的详细说明。

对于运行Microsoft Visual Studio Team Foundation Server2013 安装的客户:
对于已启用自动更新且正在运行 Microsoft Visual Studio Team Foundation Server 2013 的客户,将自动下载并安装更新。 未启用自动更新的客户需要检查更新并手动安装此更新。 有关自动更新中的特定配置选项的信息,请参阅 Microsoft 知识库文章294871

对于管理员和企业安装,或想要手动安装此安全更新的最终用户,Microsoft 建议客户尽早使用更新管理软件应用更新,或者检查使用 Microsoft 更新服务进行更新。

另请参阅本公告后面的“检测和部署工具和指南”部分

知识库文章

知识库文章 2905244
文件信息
SHA1/SHA2 哈希
已知问题

受影响的和非受影响的软件

以下软件已经过测试,以确定受影响的版本。 其他版本或版本要么超过其支持生命周期,要么不受影响。 若要确定软件版本或版本的支持生命周期,请参阅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.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 的详细信息,请参阅 Learn About ASP.NET SignalR

如何实现确定哪些版本ASP.NETSignalRare安装在我的系统上? 
若要确定系统上部署的 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 更新进行更新。 但是,需要使用本公告的安全更新部署部分中定义的流程更新驻留在开发人员系统和 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 月公告摘要中的 Exploitability Index。 有关详细信息,请参阅 Microsoft Exploitability Index

受影响的软件 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 永远帧传输协议。 请参阅以下示例,获取有关在环境中禁用协议的指导。

    从客户端禁用受影响的传输的代码示例:

    // 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 错误地编码用户输入时,会导致漏洞。

攻击者可能使用漏洞执行哪些操作?
在 Web 浏览方案中,攻击者可以将特制的 JavaScript 反映回用户的浏览器,从而允许攻击者修改页面内容、进行钓鱼或代表目标用户执行操作。

攻击者如何利用漏洞?
在攻击方案中,攻击者可能会引入目标用户的浏览器,该内容包含恶意 JavaScript,旨在使攻击者能够访问目标用户可用的资源。

哪些系统主要面临漏洞的风险?
在 Web 浏览方案中,成功利用此漏洞需要用户登录并访问托管 ASP.NET SignalR 的网站。 因此,经常使用 Web 浏览器的任何系统(例如工作站或终端服务器)都面临此漏洞的最大风险。 如果管理员允许用户浏览和读取服务器上的电子邮件,服务器可能会面临更大的风险。 但是,最佳做法强烈建议不要允许这样做。

更新的作用是什么?
此更新通过确保 ASP.NET SignalR 正确编码用户输入来解决漏洞。

发布此安全公告后,是否已公开披露此漏洞?
否。 Microsoft 通过协调的漏洞泄露收到了有关此漏洞的信息。

发布此安全公告后,Microsoft 是否收到了有关此漏洞被利用的任何报告?
否。 当最初发布此安全公告时,Microsoft 未收到任何信息,表明此漏洞已公开用于攻击客户。

更新信息

检测和部署工具和指南

多个资源可用于帮助管理员部署安全更新。 

  • Microsoft 基线安全分析器(MBSA)允许管理员扫描本地和远程系统,以查找缺少安全更新和常见安全配置错误。 
  • Windows Server Update Services (WSUS)、系统管理服务器(SMS)和 System Center Configuration Manager 可帮助管理员分发安全更新。 
  • 应用程序兼容性工具包随附的更新兼容性计算器组件有助于简化针对已安装应用程序的 Windows 更新测试和验证。 

有关这些工具和可用的其他工具的信息,请参阅 适用于 IT 专业人员的安全工具。 

安全更新部署

受影响的软件

有关受影响软件的特定安全更新的信息,请单击相应的链接:

ASP.NET SignalR (所有版本)

根据部署方案,可以使用多个更新选项。 为方案选择最佳选项:

面向已启用 SignalR 的 web 应用程序的 ASP.NET 开发人员

  • 选项 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 应用程序的系统管理员

  • 更新管理员系统上的 signalR ASP.NET

    若要在更新项目和重新部署 Web 应用程序之前保护服务器,请使用下表中提供的链接安装更新。 这应该被视为 IT 管理员的临时保护,直到可以更新使用 ASP.NET SignalR 的已部署应用程序。

    更新文件 SignalR-知识库(KB)2903919.msi
    安装开关 请参阅 Microsoft 知识库文章262841
    更新日志文件 不适用
    重启要求 不需要系统重启;但是,IIS 将重启。
    删除信息 在 控制面板 中使用添加或删除程序
    文件信息 请参阅 Microsoft 知识库文章2903919

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

引用表

下表包含此软件的安全更新信息。

安全更新文件名 对于 Microsoft Visual Studio Team Foundation Server 2013:\ TFS2013-知识库(KB)2903566.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