Ohhnews

分类导航

$ cd ..
foojay原文

Jackson一日七漏洞:AI辅助安全研究的真实写照

#jackson#jackson-databind#漏洞#ai辅助安全研究#cve

快速版本检查:全部七个漏洞的影响范围大致为 >=2.10.0 =2.19.0 =3.0.0 <3.1.4 —— 部分 CVE 影响更窄的范围。如果你使用的是受支持的版本,请升级到 2.18.8、2.21.4 或 3.1.4。如果你使用的是 EOL(生命周期结束)版本线 —— 2.13.x、2.14.x、2.15.x —— 请跳至页面底部查看详情,或访问 HeroDevs Jackson Support


这不是推销

认识我的人都知道我不做推销。在这里,我向你推荐 HeroDevs 是因为 Jackson 的问题很严重,HeroDevs 有一个极其易用的解决方案,而且我了解背后修复漏洞的工程师。创造出安全修复需要特殊类型的工程师,我知道他们具备这种技能。请自行调研。

发生了什么

2026 年 6 月 22 日,jackson-databind 中发布了七个漏洞。均在 6 月 4 日的同一个版本更新中修复,全部归功于一位研究员。两个严重级别的远程代码执行漏洞。另外五个访问控制和反序列化问题。一次研究努力、一个代码库、七个发现。

听起来像天方夜谭?

近期的一篇文章 中,我论证了四种汇聚的力量正在打破旧有的软件安全平衡:CVE 数量、AI 辅助发现、不堪重负的维护者社区,以及失去耐心的监管机构。

这一批漏洞正是该论点在现实中的体现。

此类发现如今是如何产生的

简而言之:给一个强大的 AI 模型提供适当的上下文,移除为防止滥用而设置的限制,并将其指向一个代码库。它会像一位资深安全工程师那样推理信任边界、校验器假设和边缘情况。但更快,而且不会感到无聊或分心。

这已是主流

Anthropic 和 OpenAI 目前都针对此类场景运行正式项目。Anthropic 的 网络验证计划 为具有资质证书的专业人士解锁双重用途安全能力。OpenAI 的 可信网络安全访问 已扩展到数千名经过验证的防御者。两者均有文档记录、公开且不断增长。

结果,当它奏效时,不止一个发现,而是多个。

FIRST 的 年中漏洞预测(6 月 15 日发布)将 2026 年的预测上调至约 66,000 个 CVE。比 仅四个月前 的预测高出 46%,部分原因在于 AI 辅助发现。

七个漏洞

所有七个漏洞均在 jackson-databind 2.18.8、2.21.4 和 3.1.4 中修复。全部于 6 月 16 日作为 GHSA 发布。对于 EOL 版本(2.13.x、2.14.x、2.15.x),HeroDevs NES 现已提供两个关键 RCE 的修复,其余五个修复将后续推出。

严重级别 RCE

CVE-2026-54512GHSA-j3rv-43j4-c7qm)—— CVSS v4 9.2(严重),EPSS 44%

PolymorphicTypeValidator 允许列表检查容器类名,但从未验证其内部的泛型类型参数。提供 java.util.ArrayList —— ArrayList 通过检查,攻击类顺利混入。如果类路径中存在可触发的攻击类,则会导致未认证的 RCE。影响 >=2.10.0。需要启用多态类型并配置 PTV 允许列表。

CVE-2026-54513GHSA-rmj7-2vxq-3g9f)—— CVSS v4 9.3(严重)

BasicPolymorphicTypeValidator.allowIfSubTypeIsArray() 仅基于 clazz.isArray() 批准任何数组——它从不检查元素类型是否在允许列表中。提供 EvilType[],验证器便放行。与 CVE-2026-54512 属于同一类攻击,入口点不同。影响 >=2.10.0。同样需要多态类型。

两者在 CVSS v4 下均为严重级别。CVSS v3.1 评分均为 8.1(高危),原因是攻击复杂度高,前提是必须启用多态反序列化。

访问控制与反序列化绕过

CVE-2026-54514GHSA-hgj6-7826-r7m5)—— CVSS 5.3(中危)

InetSocketAddress 反序列化会在构造时触发一次积极的 DNS 查找——在所有应用层验证之前。JSON 中攻击者控制的主机名会导致出站 DNS 查询。SSRF。影响 >=2.0.0。无需多态类型。

CVE-2026-54515GHSA-5jmj-h7xm-6q6v)—— CVSS 5.3(中危)

不区分大小写的反序列化(@JsonFormat(ACCEPT_CASE_INSENSITIVE_PROPERTIES))会从未经过滤的映射重建 _beanProperties,而非上下文相关的映射,导致 @JsonIgnoreProperties 刚刚移除的属性被恢复。批量赋值绕过。仅影响 >=3.1.0

CVE-2026-54516GHSA-9fxm-vc8v-hj55)—— CVSS 5.3(中危)

在 getter 上具有 @JsonProperty("renamed") 且在 setter 上具有 @JsonIgnore 的属性会被重命名而非丢弃。启用了 INFER_PROPERTY_MUTATORS(默认启用)时,私有后备字段会被保留并可写。攻击者提供重命名的键,字段被直接设置,从而绕过 @JsonIgnore。属性篡改。影响 >=2.21.0>=3.0.0

CVE-2026-54517GHSA-5hh8-q8hv-fr38)—— CVSS 5.3(中危)

@JsonView 过滤器仅应用于 _deserializeUsingPropertyBased 中的创建器属性;未设置 setter 的集合路径完全绕过了该过滤器。一个带有受限 @JsonView 注解且无 setter 的集合可以从不可信 JSON 写入。访问控制绕过。影响 >=2.21.0>=3.0.0

CVE-2026-54518GHSA-rcqc-6cw3-h962)—— CVSS 6.5(中危)

UnwrappedPropertyHandler.processUnwrappedCreatorProperties() 将缓冲的 JSON 重新提供给创建器参数,但未检查 prop.visibleInView(activeView)。同时标注了 @JsonView@JsonUnwrapped 的构造函数参数在活跃视图受限时仍会从攻击者 JSON 中填充。访问控制绕过。影响 >=2.21.0>=3.0.0

*** ** * ** ***## 验证器即漏洞 两个严重 RCE 是最严重的问题,但七个漏洞有一个共同点:Jackson 自身基于注解的安全机制才是攻击面。

CVE-2026-54512 和 CVE-2026-54513 绕过了 PolymorphicTypeValidator——该机制是在 2017 至 2019 年一系列高严重性反序列化 CVE 事件 之后引入的。CVE-2026-54512 中的漏洞可追溯到 2019 年——与引入验证器的同一个 2.10 版本一同引入。

CVE-2026-54515 至 CVE-2026-54518 绕过了 @JsonIgnoreProperties@JsonIgnore@JsonView——即开发者用于保护字段不被不可信输入写入的基于注解的访问控制机制。

所有七个漏洞的模式相同:一个看似封闭的安全边界,在原始实现未预料到的边缘情况下是开放的。“我添加了验证器”和“我注解了字段”只是安全姿态的开端,而非终点。

*** ** * ** ***## 疲软的披露管道

CVE 管道(大多数人依赖它却不自知)在修复本身之外还有多个步骤。CNA 分配 ID,NVD 进行丰富,安全扫描器——从 Dependabot 到 Snyk 再到你的 SCA 工具——都位于下游。

OSS 修复于 6 月 4 日发布。GHSA 于 6 月 16 日发布。6 月 23 日,第三方在 GitHub Advisory Database 上提交了一个问题,指出七个漏洞均未传播到全球数据库。此后,至少两个严重 CVE 已开始出现在扫描器数据库中。至少 Snyk 现已显示两者。管道在运转,但耗时。

大多数现代扫描器已不再完全依赖 NVD。Dependabot 直接从 GitHub Advisory Database 拉取,Trivy、Snyk 和 Orca 至少也是如此。

但 NVD 丰富提供了这些来源不一定总是携带且对你至关重要的内容:CVSS 分数、CPE 匹配数据以及安全团队用于确定修复优先级的上下文。

NIST 在 2026 年 4 月承认,CVE 提交量自 2020 年以来增长了 263%,NVD 已无法再对所有 CVE 进行丰富。

不要以为扫描器沉默或警报就代表了全部情况。直接检查你的 jackson-databind 版本。


受影响版本

受支持(2.18.x, 2.21.x, 3.x)EOL(2.13.x, 2.14.x, 2.15.x)
CVE ID全部七个相同 CVE ID
OSS 修复✅ 2.18.8, 2.21.4, 3.1.4❌ 无
NES 修复(严重 RCE)---✅ 2.13.6, 2.14.4, 2.15.5
NES 修复(其余五个)---进行中

如果你使用的是受支持版本——请升级到 2.18.8、2.21.4 或 3.1.4。全部七个已解决。

如果你使用了多态反序列化——activateDefaultTyping()@JsonTypeInfo——两个严重 RCE 直接相关。请立即修补。

如果你将 @JsonView@JsonIgnore@JsonIgnoreProperties 用作可写字段的安全边界,请审计五个访问控制 CVE 是否影响你的配置。

如果你位于 EOL 版本线

即 2.13.x、2.14.x 或 2.15.x,则无社区修复。同一个 CVE 会促使 2.18.7 上的团队在一下午升级,但 2.14.x 上的团队无处可去,只能坐等问题悬而未决。你的选择是迁移、缓解措施或商业支持。Jackson 的 NES 已将两个严重 RCE 的修复回溯移植到 2.13.6、2.14.4 和 2.15.5。使用 HeroDevs EOL Datasetendoflife.date 了解你的整体暴露情况。

这实际上意味着什么

jackson-databind 的七个漏洞,一位研究员,一天之内。全部在公告发布前已修复。有些漏洞仍未在整个生态系统中可见。

这不是一次孤立事件。AI 辅助安全研究的正式基础设施现已大规模存在。那些多年来未被仔细审查的库并非安全,只是未经审视。CVE 的缺失从来不是安全的证据。它只是沉默的证据。

这种沉默正在结束。现在真的是时候了解你的依赖项、它们的版本以及它们的 EOL 状态了。

动手吧?

你已经有了扫描器、SCA 工具,无论如何你都可以生成一份 SBOM 并使用它。这很容易做——为什么要等。使用 HeroDevs EOL Datasetendoflife.date

话虽如此,我随后会推出一篇关于 EOL 工具/数据的文章,帮助大家入门。

本文 7 New Vulnerabilities in Jackson in One Day: This Is What AI-Assisted Security Research Looks Like 最初发布在 foojay