🟠 《高危安全漏洞:CVE-2026-54653》

CVSS 评分: 高危(8.8)  状态: Received  发布时间: 2026-07-28


漏洞简介

CVE-2026-54653 是一个存在于 datamodel-code-generator 工具中的安全漏洞。该工具用于从 OpenAPI、JSON Schema、GraphQL、Avro、Protobuf 以及原始 JSON、YAML 或 CSV 格式的数据生成 Pydantic v2 模型、dataclasses、TypedDict 和 msgspec.Struct 代码。

在版本 0.17.0 至 0.60.2(不含 0.60.2) 中,该工具在处理 JSON Schema 解析时存在缺陷。具体来说,在 src/datamodel_code_generator/parser/jsonschema.py 文件中的 JsonSchemaObject.initget_field_extras 方法中,工具会保留攻击者控制的 default_factory 值。这些值随后会被直接嵌入到生成的代码中,例如 Field(default_factory=...)field(default_factory=...)

当用户导入(import)由该工具生成的模型文件时,这些被注入的 default_factory 值会作为 Python 表达式被执行。这本质上是一个 代码注入(code injection) 漏洞,攻击者可以通过精心构造的输入数据(如恶意 JSON Schema 文件)在受害者环境中执行任意 Python 代码。

该漏洞涉及以下 CWE 分类:

  • CWE-94:代码生成控制不当(Code Injection)
  • CWE-1336:模板引擎中注入不当(Improper Neutralization of Special Elements in Output Used by a Downstream Component)

影响范围

  • 受影响版本:datamodel-code-generator 版本 0.17.0 至 0.60.2(不含 0.60.2)
  • 不受影响版本:版本 0.60.2 及更高版本
  • 修复版本:0.60.2

风险分析

根据 CVSS 3.1 评分,该漏洞的向量为 AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H,基础评分为 8.8(高危)

  • 攻击向量(Attack Vector):网络(Network),攻击者可以通过网络发送恶意数据(如恶意 JSON Schema 文件)触发漏洞。
  • 攻击复杂度(Attack Complexity):低(Low),攻击者无需特殊条件即可利用。
  • 权限要求(Privileges Required):无(None),攻击者无需任何身份验证或权限。
  • 用户交互(User Interaction):需要(Required),受害者需要导入(import)由该工具生成的恶意模型文件。
  • 影响范围(Scope):未改变(Unchanged),漏洞影响仅限于受影响的组件。
  • 机密性影响(Confidentiality Impact):高(High),攻击者可读取系统上的任意文件或敏感数据。
  • 完整性影响(Integrity Impact):高(High),攻击者可修改系统文件或数据。
  • 可用性影响(Availability Impact):高(High),攻击者可导致系统服务中断或拒绝服务。

攻击后果

  1. 远程代码执行(Remote Code Execution, RCE):攻击者可以通过构造包含恶意 default_factory 表达式的 JSON Schema 文件,诱导开发者或自动化流程使用 datamodel-code-generator 生成模型代码。当该代码被导入时,恶意表达式立即执行,攻击者即可在受害者机器上执行任意 Python 代码。
  2. 数据泄露:攻击者可以窃取环境变量、源代码、数据库凭证等敏感信息。
  3. 横向移动:在 CI/CD 流水线或开发环境中,攻击者可以利用该漏洞进一步渗透内部网络。
  4. 供应链攻击:如果生成的模型代码被分发到其他项目或作为库发布,所有下游用户都可能受到影响。

缓解措施

  • 立即将 datamodel-code-generator 升级至 0.60.2 或更高版本。
  • 在升级前,避免处理来自不可信来源的 JSON Schema 或 OpenAPI 文件。
  • 对生成的模型代码进行人工审查,特别是检查 Field(default_factory=...)field(default_factory=...) 部分是否存在可疑表达式。

🔍 技术细节

字段
CVE ID CVE-2026-54653
CVSS 评分 8.8 🟠
严重程度 高危
CVSS 向量 CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
CWE 分类 CWE-94,CWE-1336
发布时间 2026-07-28
最后更新 2026-07-28
状态 Received
数据来源 security-advisories@github.com

🔗 参考链接