Fnet 雲網安梳理五起安全事件,聚焦信任撤銷與第三方風險
Fnet 云网安 261026
Fnet 雲網安本期梳理五起安全事件:Oracle Java 撤銷 eMudhra 根證書、Nextcloud 文檔服務命令注入、AI 編碼工具受下載目錄説明檔影響、302.ai 公開雲端儲存桶暴露資料,以及 Quest Diagnostics 停用 Quanum LSM。

🛡️NSOC(网络·安全·云一体化运营中心)
7×24 主动监控与专家值守,网络可用性 99.99%,安全事件 百分百全 闭环,云资源一站式管理
今日热点 Top 5
S1 Java 紧急公告:把信任清单里的八张证书移出去
核心内容
Oracle 在十月二十四日发出 Java 安全公告 CVE-2026-114820,动作只有一个——把与 eMudhra 相关的一组根证书从 Java 的信任清单里移出去。
受影响的是全部在支持期内的版本:Java SE 8u511-b32、8u511-perf-b32、11.0.33.0.2、17.0.21.0.2、21.0.13.0.2、25.0.5.0.2、27.0.1.0.2,以及 GraalVM for JDK 的 17.0.21.0.2 与 21.0.13.0.2、GraalVM Enterprise Edition 的 21.3.20.0.2。
CVSS 3.1 评分 9.1,向量是可从外部触达、低复杂度、无需特权与交互,保密性与完整性均为高而可用性无影响。
需要留意的是,官方评分里没有把可用性列入——它要表达的不是「服务会不会停」,而是「被加密保护的内容还信不信得过」。
这不是 Java 自身写错了代码,而是十八个月前的一次密钥仪式出错后,撤销指令向下传递的一次落地:研究员在十月十七日指出八张证书的密钥数值过小,其中一张的数值就是 4,两小时内即可反推;
Google、Apple、微软先后停止信任;
Python 也要求研发者把工具链与相关证书库升到指定版本并重新构建容器。
而这已经是 Oracle 就同一事件发出的第二份 Java 公告——十月二十二日的 CVE-2026-91403 处理的是中间证书,十月二十四日这一份处理的是根证书,同一批缺陷被拆成了两次撤销、分批到达。
据估算,约三万张合法站点证书需要重签,eMudhra 同时宣布退出全球信任证书业务。
Oracle Java SEGraalVMCVE-2026-114820信任库eMudhra
为什么重要
受影响的是信任清单而不是代码。这一颗不会出现在依赖扫描的结果里,也不会触发补丁管理流程,因为要改的不是组件版本而是「这份清单里还有谁」。
同一批缺陷被拆成两次撤销。中间证书的公告在十月二十二日,根证书的公告在十月二十四日,只做了一次核对的组织会以为这件事已经结束。
每一层有各自的清单、各自的生效时刻与各自的确认人。浏览器、操作系统、Go、Python、Java、容器基础镜像互不替代,而证书体系恰恰是服务之间互相认证的地基。
覆盖面远不止浏览器。服务之间的双向证书校验、接口网关、消息队列、备份与监控采集组件都在用各自的信任库,而它们往往没有自动更新机制。
处置分成两件互不替代的事。更新信任库只回答了「我们不认它了」,而自有证书若签发在受影响体系之下,还需要走重签与替换,这一件不会因为前者完成而自动完成。
顾问金句
这一起要纠的不是 Java 写错了什么,而是「撤销」这件事在企业里的存在形式。
撤销常被当成一次动作:上面说不再信任,下面就算完成。
而真实情况是它是一次传递——同一份指令要穿过浏览器、系统、Go、Python、Java 与每一个容器基础镜像,每一层有各自的清单、各自的生效时刻与各自的确认人;
而这一次,连签发方自己都是分批送达的。
建议企业做五件事。
首先,把运行时与它的信任库做成独立资产台账:Java、Python、Go、容器基础镜像的证书库版本各自单列,升级时逐条比对,不以操作系统打过补丁为准。
其次,把核对动作产物化:用 keytool 一类工具导出当前信任清单,与官方给出的撤销清单逐条比对,记录核对时间、执行人与差异项,而不是凭印象回答「应该更新过了」。
再者,把自有证书单独排一次重签计划:若签发链落在受影响体系之下,更新信任库并不改变自己那张证书的状态,这一件要单独派工单独验收。
而后,把非浏览器侧的信任库一起纳入:服务间双向证书校验、接口网关、消息队列、备份与监控采集组件所用的信任库,往往是此前容易被漏掉的那一批。
另外,把「同一次撤销、不同时间到达」作为设计前提:灰度期内对仍停留在旧清单下的服务加强出方向观察,重点看新出现的证书是否指向此前未见过的颁发者。
S2 Nextcloud 上的文档服务被种马,而危险条件是它没在跑
核心内容
美国信息系统安全局在十月二十三日把 CVE-2026-110447 收入已知被利用目录,期限就在今天——十月二十六日。
这颗是 Nextcloud 上那个自建文档服务(应用名 richdocumentscode)里的操作系统命令注入,CVSS v4.0 评分 9.2,无需认证、无需交互,以 Web 服务账号的权限执行。
真正反常的是触发条件:CWE-78 的注入点位于 proxy.php,而它只在本地文档服务没有运行时才成立——重启、升级或崩溃之后,脚本要构造一条启动命令,拼进去的请求内容就成了命令的一部分。
26.4.303 及更高版本已修,但官方公告写得毫不含糊:禁用这个应用不够,必须升级或移除。
Nextcloud 29 及更早版本已结束支持,需要升级 Nextcloud 或移除该应用;
独立部署的 Collabora Online、容器镜像、系统包、一体化镜像,以及装了办公室应用却没装内置组件的部署,都不在范围内。
官方同时说明这与 2025 年的 CVE-2025-66208 不是同一条路径,那一次的修复挡不住这一颗。
时间线是这一起真正值得记住的部分:九月十日有管理员报告在应用目录里发现 PHP 后门文件;
九月十一日 26.4.303 发布,而发布说明里没有写那是安全修复;
十月十四日公告与编号才公开,距头一次利用记录已过去三十四天;
十月二十三日入已知被利用目录,给联邦机构的处置期限是三天。
攻击请求形如 proxy.php?status 后接编码的路径穿越、命令替换与 base64 片段,落下来的是 shx 开头的单行 PHP 文件;
已报告的两个来源地址是 139.28.18.122 与 89.38.98.50;
日志里没看到打包或拷贝,但研究者提醒,Web 服务账号读得到的都应按已暴露对待。
应用商店对这个组件的说明写的是本地试用与非生产用途。
NextcloudCollaboraCVE-2026-110447命令注入KEV
为什么重要
禁用不等于移除,这是官方公告的原话,而恰恰是很容易被读成「先禁用就行」的一句。
危险窗口是服务没在跑的那几分钟。重启、升级、崩溃都会把它打开,而这几类动作恰恰是运维反复在做的、也恰恰不会被当成风险的动作。
修复发布不等于修复到达。九月十一日就有修完版本,而编号与公告十月十四日才公开,中间三十四天里使用者手里的「已修复」是看不见的。
升级不清除此前留下的东西。后门文件不会因为版本升上去而消失,排查必须排在升级之后而不是之前。
风险计量单位不是一台服务器。能改文件的那台机器上往往还放着凭据库、配置文件与已被打通的内网路径,而随附组件通常不在主产品清单里。
顾问金句
这一起要纠的不是命令注入这个类型,而是「已修复」与「已知晓」之间的那道缝。
修复在九月十一日就发布了,可发布说明里没有写那是安全修复,于是在使用者这一侧,它和没修没有区别;
等到编号与公告出来,已经过去三十四天,而目录给出的处置期限只有三天——时间不是在发现时用掉的,是在认知与流程时用掉的。
建议企业做五件事。
首先,把自建文档服务清点一遍:找 Nextcloud 实例,包括部门与供应商自建的那些,确认这个应用装没装、装的是哪个版本、当前是否启用,三项分开记。
其次,把处置写成升级或移除二选一,禁用不算完成;
Nextcloud 29 及更早的先升级 Nextcloud 本身,否则装不上修完版本。
再者,把排查排在升级之后:在应用目录与数据目录里按文件名与文件时间找 PHP 文件,在访问日志里找带编码字符的路径、命令替换与 base64 片段,命中就按已失陷处理,因为升级不会移除此前落下的东西。
而后,把用途与等级对齐:应用商店对这个组件的说明写的是本地试用与非生产用途,若生产环境的文档编辑依赖它,就改用独立部署的文档服务,并把这条写进架构标准而不是留给使用者自行判断。
另外,把升级路径上的回退纳入管理:新版本改写了启动命令,有管理员遇到启动问题后退回旧版本,退回动作应当走变更流程并附带临时收敛措施。
A3 AI 编码工具被一份说明文件带走:它读到的不是命令,是说明书
核心内容
安全公司 Forever Security 在一家客户的设备上发现,一个 AI 编码工具试图安装名为 function-color 的恶意包,追下去发现问题出在该工具的下载目录里的一份说明文件。
这类文件只是纯文本的项目说明,不是可执行程序,但编码工具启动时会从工作目录自动加载同类文件,并按其中的内容行动。
研究员的判断很直接:这不是模型厂商可以修补的东西,一个按目录里的说明行动的工具,做的正是它被设计成的行为,处置责任完全落在使用者这一侧。
落盘这一步几乎不需要用户配合:访问一个页面就能把文件静默保存进下载目录,Chrome、Edge、Firefox 默认直接保存而不询问位置,只有 Brave 会提示确认。
研究员做了两组复现。
对 Codex 用只打开计算器的无害载荷,成功率约九成;
另一组用恶意说明文件把 Claude Code 的接口流量改道到自建服务器,令牌随之暴露,服务器冒充模型返回工具调用,在约半数的测试中完成了代码执行。
内部统计显示,数百家客户的编码工具会从下载目录启动,仅 Claude Code 在该位置启动的会话就超过一千三百次。
两家厂商给出的建议一致:只在对应的项目目录里启动编码工具。
AI编码工具AGENTS.mdOAuth令牌执行上下文供应链
为什么重要
危险不在执行权限而在可读性。文件不需要可执行位,也不需要被打开,只要能被读到,就会被当成指示。
下载目录是网页能自行写入的地方,而这个前提由浏览器默认行为提供。用户什么都没做,攻击面就已经成立。
没有补丁可打,厂商明说没有可修补的地方。处置只能落在目录规范与凭据范围这两处,而这两处过去都不在安全台账里。
这不是理论风险而是普遍做法。内部统计里数百家客户的编码工具从该目录启动,仅一款工具在该位置的会话就超过一千三百次。
被带走的不是代码而是身份。流量改道之后暴露的是令牌,拿到它的一方可以冒充模型返回工具调用,后续动作在系统里看起来仍然像正常使用。
顾问金句
这一起要纠的不是模型或工具出了错,而是执行上下文的定义权在谁手里。
工具会读它所在目录里的任何东西并按其中的内容行动,而下载目录是网页能自行写入的位置——这两条都是设计使然,没有一条是缺陷。
于是「我们审核过这个工具」这句话回答不了「它在哪里被启动」这个问题。
建议企业做五件事。
首先,把工作目录写进使用规范:明确禁止从下载目录启动 AI 编码工具,只允许在对应的项目目录里启动,并把这条做成终端基线检查项而不是一页倡议。
其次,把下载目录的自动清理纳入基线,缩短文件停留时间,让需要「恰好有一份文件在」才能成立的攻击难以稳定复现。
再者,清点编码工具手里的凭据范围并按需授予:仓库、云资源与接口的访问分别给了哪些、有效期多长、谁能撤销;
接口改道这类异常一经发现立即撤销并重签。
而后,把浏览器下载行为收进终端基线:统一设置需要确认的下载策略,关闭静默保存,并把下载目录从编码工具的默认工作位置中排除。
另外,把「模型流量是否经过预期出口」作为一项监测项:改道这类异常在终端上不产生告警,但在链路上是能看见的。
A4 AI 中间平台把近 23TB 放在一个公开桶里,暴露的是提问方式
核心内容
研究团队在十月二十二日公布,AI 中间平台 302.ai 把一个未加密、无口令、可公开访问的云存储桶留在了公网上,里面有 1760 万个文件、共 22.72TB。
构成是近 9TB 图片、7.7TB 视频、5.6TB 音频,约 500GB 是聊天记录——14.4 万余条以 json 存放,内容包括提问内容、助手回复、所用模型、token 消耗与时间戳。
部分记录里,用户主动提供了姓名、出生日期、性别、住址与联系方式。
研究团队还发现了企业客户的数据,其中包括一家知名厂商的客服对话记录;
另有超过 2.6 万个压缩包装着对话数据。
研究团队在八月初发现,联系对方一个月后数据才下线,公司未作回应,暴露持续了多久也没有说明;
目前没有证据表明有人恶意访问或下载,但研究团队也提醒,他们能找到的,别有用心的人同样能找到。
这类中间平台的特殊之处在于位置:它把 ChatGPT、Claude、Grok、DeepSeek、Gemini 等多个主流模型接到同一个界面与同一份订阅之下,也因此把多家企业的提示词、文件与身份信息汇集在同一个地方。
AI中间平台云存储暴露对话记录第三方委托数据分级
为什么重要
委托在这里分成了两层:任务委托给模型,存放委托给中间平台,而第二层往往从未被单独评估过。
这不是入侵而是配置状态。没有攻击者、没有告警、没有异常登录,只有一个可公开访问的状态,因此也不会出现在任何事件流程里。
从发现到下线中间隔了一个月,而这段时间里有没有人来过,没有人能回答,包括平台自己。
聊天记录泄露的不只是字段。提问内容会带出提问者在什么地方不确定、寻求什么帮助、用什么语气描述问题,这类信息的针对性远超一份邮箱清单。
我们的数据出现在别人的暴露里这件事,我们自己发现不了。没有日志、没有告警,只能等对方或研究员告知。
顾问金句
这一起要纠的不是云存储配置这个知识点,而是委托与确认在企业里被当成了一件事。
把任务交给一个平台是决定,而这份决定里同时含着一次存放的委托——数据落在哪个账户、哪个区域、谁能访问、保留多久——后一半从来没有单独被拿出来确认过。
建议企业做五件事。
首先,把 AI 中间平台从普通 SaaS 里分出来单列:这类服务同时握着身份信息、对话内容与文件,一旦出事影响面与单点 SaaS 不在一个量级。
其次,把存放确认变成采购前置项:在签约前要求供应商书面回答存放的账户与区域、谁能访问、保留多久,并把答复作为附件留存,而不是口头确认。
再者,把对话内容默认按敏感数据对待:禁止在对外服务中提交未脱敏的客户信息与内部文件,这条要写进使用规范并做成终端侧提示。
而后,对已经用过这类平台且涉及客户信息的场景做一次回溯:确认需要通知的对象、依据与时限,把口径准备好再等字段范围确定。
另外,把影子数据出口当作独立监测对象:出方向流量里出现的未知 AI 服务域名,是这一类委托为数不多能在自己这一侧看到的痕迹。
A5 实验室平台被侵入之后,先停的是你的下单通道
核心内容
Quest Diagnostics 在十月二十一日发现其 Quanum LSM 系统遭到未授权访问,随后启动应急响应,并于十月二十三日向美国证券交易委员会报备、同时在官网发布提示。
这个平台是医生、医院与诊所人员用来下单、查报告、跟踪状态与订购耗材的日常通道。
Quest 在北美有 7,700 个服务点、6.5 万名员工、年营收超过 110 亿美元,每年服务约三分之一的美国成年人。
公司称调查仍在进行,已确认部分患者记录可能暴露,但涉及哪些字段尚未确定,外部专家与执法机关已介入。
作为预防性措施,公司暂停了包括 Essential Insights 与 LabHQ 在内的其他系统访问,Quanum LSM 本身也已停止,建议客户改用纸质申请单或另一条电子通道下单取报告。
目前客户直连的实验室接口与电子病历不受影响,对外营业未中断,也没有威胁组织声称负责。
这家公司在 2019 年曾因账单催收服务商失守,牵出约 1,190 万条患者记录。
Quest Diagnostics第三方停机业务连续性医疗数据降级预案
为什么重要
委托出去的不只是数据,还有可用性。供应商一句预防性停机,落到自己这里就是业务中断,而且没有协商余地。
降低风险的动作会造成我的中断。停机是为控制风险,但风险被转移到了使用方,而这一点在合同与应急预案里通常没有对应条款。
恢复时间由对方提供。停机由对方决定、触发条件不向我公开,于是「什么时候恢复」这个问题自己回答不了。
回退能力的成本高于停机本身。这类平台不是边缘系统而是日常通道,停用之后要走纸质流程;若从未演练,那几天的混乱会超过系统中断本身。
字段范围由对方调查后确定。通知义务与通知时限都挂在对方的调查进度上,因此对外说明的时间表并不完全在自己手里。
顾问金句
这一起要纠的不是这家公司做错了什么,而是委托的边界被默认在了数据上。
把业务放到外部平台时,评估问的是合规、加密与审计;
而先一步到来的后果往往不是数据,是可用性——通道被单方面停掉,回退动作却在自己手上,而这套动作从来没有演练过。
建议企业做五件事。
首先,对关键业务画一张供应商停机应对图:每个外部系统标注降级方式、切换时间与责任人,并像演练电力中断那样定期走一遍。
其次,把委托链条里的字段范围、通知时限与存放责任写进合同与应急预案,明确对方在多长时间内必须给出哪些信息。
再者,把外部系统的降级入口纳入日常运营:备用联系方式、临时流程、纸质通道放在能立刻找到的地方,而不是事发时才去翻文档。
而后,为供应商事件单设一条通知渠道,让对外的预警能直达一线操作人员而不必等正式公告。
另外,在等待对方确定字段范围的同时,内部先按「可能涉及身份信息与业务项目」准备口径与对外说明模板,把能自己决定的部分先定下来。
趋势分析
本周期五条热点讲的是同一件事:信任的撤销,正在从一次动作变成一次传递。
八张证书的密钥在十八个月前的一次仪式里就出错了,两次独立审计都没看出来;
撤销从十月十七日起分批出发,浏览器、系统、Go、Python 各在各自的时间点上收到,而 Java 的根证书这一层到十月二十四日才发出安全公告,同一批缺陷被拆成中间证书与根证书两次撤销。
Nextcloud 上那个自建文档服务的修复在九月十一日就发布了,只是发布说明里没有写那是安全修复,于是「已修复」与「已知晓」在使用者这一侧并不重合。
编码工具读的是它所在目录里的说明文件,而下载目录是网页能自行写入的地方。
中间平台把近 23TB 放在一个公开桶里,从发现到下线中间隔了一个月。
委托给外部实验室平台之后,对方一句预防性停机,回退就落在了纸面上。
來源:阿里雲開發者社區 AI · developer.aliyun.com