Microsoft 于 2025 年 7 月 8 日 发布了 SQL Server 2016 SP3 的 GDR(General Distribution Release,核心安全补丁包)更新,针对多个高风险安全漏洞进行了修复:


🛡️ 更新详情

  • KB5058718:更新后 SQL Server 版本号为 13.0.6460.7,文件版本为 2015.130.6460.7 (微软支持)。
  • 修复了以下关键 CVE 漏洞:
    • CVE-2025‑49719:信息泄露漏洞
    • CVE-2024‑49000:原生客户端远程代码执行漏洞 (微软支持)。
  • 微软官方博客也确认本次 GDR 补丁涵盖之前所有 SP3 相关安全更新(包括 CVE‑2025‑49718)(TECHCOMMUNITY.MICROSOFT.COM)。

💥 漏洞影响分析

根据研究安全厂商 runZero 的报告,本次更新主要应对以下高危漏洞 (runZero):

  1. CVE‑2025‑49717:堆缓冲区溢出,允许授权攻击者逃逸 SQL Server 沙箱并执行任意代码,CVSS 8.5。
  2. CVE‑2025‑49718 & CVE‑2025‑49719:信息泄露漏洞,可能泄漏敏感内存数据,CVSS 分别为 7.5 和 7.5。

这些漏洞可能导致攻击者在数据库服务器上远程执行任意代码,或窃取敏感信息,因此被评定为 高风险


✅ 建议应对措施

  • 立即安装 KB5058718 更新,确保系统版本更新至 13.0.6460.7 或更新版本。
  • 如果你使用的是 SP2 GDR,建议升级至相同版本号以上以防止 CVE‑2025‑49719 (runZero)。
  • 按照微软建议,选择 GDR 发布的用户应始终保持 GDR 分支最新;如果已安装 CU(Cumulative Update),则应升级至最新 CU 包括相应补丁 (Database Administrators Stack Exchange)。

🔧 安装与获取资源

  • 可通过 Microsoft Download Center 或 Microsoft Update Catalog 获取补丁 (TECHCOMMUNITY.MICROSOFT.COM)。
  • 安装后,建议重启数据库服务以确保所有补丁生效。

🧾 总结

此次 GDR 更新是 SQL Server 2016 SP3 用户必须重视和立即部署的重要安全补丁,涵盖多个高危 CVE,显著提升服务器安全性。

如果你是想要检查 SQL Server 2016 SP3 是否已正确安装 KB5058718 安全补丁(GDR),或者通过 SQL 脚本方式检查当前补丁状态、服务版本等信息,以下是实用的 T-SQL 查询代码,以及 Windows 上 PowerShell 检测方式。


✅ 一、T-SQL:检查 SQL Server 版本和补丁(GDR)是否已安装

-- 检查当前 SQL Server 版本
SELECT 
    SERVERPROPERTY('ProductVersion') AS ProductVersion,
    SERVERPROPERTY('ProductLevel') AS ProductLevel,
    SERVERPROPERTY('Edition') AS Edition,
    SERVERPROPERTY('EngineEdition') AS EngineEdition,
    SERVERPROPERTY('ProductUpdateLevel') AS ProductUpdateLevel,
    SERVERPROPERTY('ProductUpdateReference') AS ProductUpdateReference;

对应版本号对照表:

  • 13.0.6460.7 ⇒ KB5058718(即:2025年7月GDR)
  • 若小于此版本,则尚未安装该安全补丁。

✅ 二、T-SQL:查询已安装的所有热修复补丁

-- 查看所有已安装的补丁信息(适用于 SQL Server 2012 及以上)
EXEC xp_readerrorlog 0, 1, N'Hotfix';

✅ 三、PowerShell:Windows 上检查 KB5058718 是否存在

# 检查系统中是否已安装 KB5058718 安全更新补丁
Get-HotFix -Id KB5058718

如返回安装信息,则说明补丁已应用成功。


✅ 四、SQL Server 安全审计建议(可选)

若希望检查是否有高危配置、审计日志建议,可运行如下示例安全配置检测(部分):

-- 检查是否启用 xp_cmdshell(高危建议禁用)
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC sp_configure 'xp_cmdshell';

-- 检查 SQL Server 登录失败尝试记录(近期是否有暴力破解)
SELECT 
    login_name, 
    COUNT(*) AS FailedCount
FROM sys.fn_get_audit_file('C:\AuditLogs\*.sqlaudit', DEFAULT, DEFAULT)
WHERE action_id = 'LGIF'  -- Login Failed
GROUP BY login_name
ORDER BY FailedCount DESC;

🛠️ 安装 KB5058718 补丁步骤(简略)

如果还没打补丁,建议这样操作:

  1. 下载地址(Microsoft 官方):
    https://www.catalog.update.microsoft.com/Search.aspx?q=KB5058718
  2. 根据操作系统和 SQL 架构选择对应版本(x64/x86);
  3. 关闭 SQL Server 服务(可选);
  4. 双击安装;
  5. 安装完成后重启服务或机器;
  6. 使用上述 SQL 检查版本是否更新到 13.0.6460.7