flawopen.com/Teardowns/cve-2026-102255-sonicwall-sma1000-workplace-ssrf
CVE-2026-102255:SonicWall SMA1000 WorkPlace 的 SSRF 漏洞
CVE-2026-102255 是 SonicWall SMA1000 WorkPlace 中 CVSS 10.0 的预认证 SSRF。10月12日,MS-ISAC 表示当时没有这份公告所列四个漏洞遭到现实环境利用的报告。公告还指出,如果该 SSRF 与 CVE-2026-102256(另一项需要已认证管理员权限的命令注入漏洞)形成链条,可能导致远程代码执行。公告没有说明链条机制或如何满足认证条件;这是有条件的风险评估,并非已证实的攻击链。10月9日曾有与 CVE-2026-102255 相符的蜜罐尝试报告,但未证实成功入侵。请升级到修复版平台热修复程序。[1], [2], [3], [4], [5], [6]
把设备想成一位可以在房间之间传递消息的前台接待员。这个缺陷让陌生人能让接待员把消息送进本应先验证身份才能进入的房间。SonicWall 已修复这条路径;公开公告没有披露内部路由或源码补丁。[1]
核心概念与专有名词
框架映射
- 本指南所述弱点的 CWE 参考: CWE-918
根本原因剖析 (Root Cause)
SonicWall 将问题描述为 SMA1000 Appliance WorkPlace 界面中的非预期替代访问路径。未认证的远程攻击者可能让设备代其发出请求、访问内部功能并执行未授权操作。SonicWall 的公告没有公开固件源码差异。BleepingComputer 引述研究员 Ryan Dewhurst 称,蜜罐检测到使用 OPTIONS、针对 WorkPlace Extraweb 并指向本地 CouchDB 服务的尝试。报道没有证实任何尝试成功入侵系统;本文将其表述为有来源归属的尝试报告,而非已确认的漏洞利用。本文不复现报道中的 payload 或凭据。SonicWall 给出的评分为 CVSS 10.0 Critical;CVE 记录列出 CWE-918。厂商称十月漏洞与其他已报告的 SonicWall 漏洞无关。不要将本 CVE 与此前 SMA1000 披露合并成攻击链。 SonicWall 10 月 6 日的公告称,当时没有证据显示漏洞在野外遭到利用。10 月 9 日,BleepingComputer 报道研究员 Ryan Dewhurst 称 Previdian 蜜罐检测到与该 CVE 特征一致的尝试;尚未证实这些尝试是否成功入侵系统。 2026年10月12日更新:MS-ISAC 表示当时没有这份公告中的四个漏洞遭到现实环境利用的报告。这与10月9日关于蜜罐尝试的报告并不矛盾:尝试不能证明利用成功,且 MS-ISAC 未指明受害者。同一公告评估称,预认证 SSRF CVE-2026-102255 若与 CVE-2026-102256(另一项需要已认证管理员权限的操作系统命令注入漏洞)形成链条,可能导致远程代码执行和系统完全失陷。公告没有解释如何满足认证前提,没有描述已证实的利用序列,也没有报告观察到该攻击链。应将其视为政府来源提出的有条件风险评估,而非已确认或可复现的攻击链。SonicWall 列出的修复版本为 12.4.3-03670+ 和 12.5.0-03082+;无论攻击链是否得到证实,都应安装更新。[1], [2], [3], [4], [6]
攻击执行流程分解
源代码对比:漏洞与安全实现
固件源码和补丁差异未公开。这个通用 Python 示例将调用方限制为选择固定服务标识,由应用控制来源和路径并禁用重定向。它不是 SonicWall 代码,不会复现该 CVE,也不是完整的 SSRF 防护。应安装 SonicWall 平台热修复。[1]
源码摘录: Generic SSRF defense illustration; not SonicWall source
# 通用示例;不是 SonicWall 源代码,也不复现该漏洞。
def fetch_health(user_supplied_url, session):
return session.get(user_supplied_url, timeout=3)
# 通用 SSRF 防御模式;不是 SonicWall 源代码,也不是完整补丁。
from urllib.parse import urljoin
SERVICE_PATHS = {"status": "/health"}
BASE_URLS = {"status": "https://status.example.internal"}
def fetch_health(service_id, session):
base = BASE_URLS.get(service_id)
path = SERVICE_PATHS.get(service_id)
if base is None or path is None:
raise ValueError("unknown service")
# 用户输入只能选择固定能力,不能指定 URL 或主机。
return session.get(urljoin(base, path), timeout=(2, 3), allow_redirects=False)
工程与系统安全加固清单
- ✓盘点 SMA1000 型号 6210、7210 和 8200v,包括虚拟设备,并记录完整平台热修复构建号。SMA 100 系列和 SonicWall 防火墙 SSL-VPN 不在此公告范围内。[1], [2], [4]
- ✓12.4.3 分支安装 12.4.3-03670 或更高版本;12.5.0 分支安装 12.5.0-03082 或更高版本。从 MySonicWall 获取更新并确认支持的升级路径。[1], [2]
- ✓SonicWall 未提供临时解决方案。如果无法立即打补丁,可暂时限制 WorkPlace 的公网访问或将其隔离以降低暴露风险;这不是厂商修复。保留相关日志并评估疑似失陷情况。报告中的尝试不代表已确认成功入侵。[1], [4], [5]
参考来源
- SonicWall Product Notice SNWLID-2026-0017
- CERT-FR advisory CERTFR-2026-AVI-1275
- NVD — CVE-2026-102255
- BleepingComputer — attempts consistent with CVE-2026-102255 reported
- SC Media — reported SonicWall SMA1000 exploitation attempts and response guidance
- Center for Internet Security MS-ISAC — SonicWall SMA1000 CVE-2026-102255–102258 advisory (October 12, 2026)