不安全反序列化漏洞(Insecure Deserialization,CWE-502)是指应用程序在反序列化用户输入的数据时,未对数据进行充分验证,导致攻击者可以构造恶意数据,执行任意代码或进行其他恶意操作。这种漏洞被列入 OWASP Top 10 安全风险榜单,可能导致远程代码执行(RCE)、权限提升、信息泄露等严重安全问题。

漏洞原理

序列化是将对象转换为可存储或传输格式(如 JSON、XML、二进制流)的过程,反序列化则是其逆过程。当应用程序反序列化不受信任的数据时,攻击者可以:

  1. 注入恶意对象,触发特定的方法调用链(Gadget Chain)
  2. 利用原型污染(Prototype Pollution)篡改对象属性
  3. 通过 JNDI 注入等方式加载远程恶意类

著名高危 CVE 案例

CVE 编号影响组件CVSS描述
CVE-2025-66478React Server Components10.0React Flight 协议反序列化漏洞,攻击者可通过构造 HTTP 请求执行任意代码
CVE-2025-55182Next.js App Router10.0与 CVE-2025-66478 相关,影响 Next.js 14.3.0-canary.77+ 及 15.x/16.x 版本
CVE-2025-27818Apache Kafka Connect9.8通过 LDAP 响应触发 Java 反序列化,可执行任意代码
CVE-2024-21216Oracle WebLogic Server9.8影响 12.2.1.4.0 和 14.1.1.0.0 版本,可远程执行命令
CVE-2024-23636SOFARPC9.8绕过 SOFA Hessian 黑名单,利用 Gadget 链实现 RCE
CVE-2022-25845Fastjson9.8绕过 autoType 限制,反序列化危险类导致 RCE
CVE-2022-22965Spring Framework9.8Spring4Shell,影响低于 5.3.18/5.2.20 版本

防范措施

  1. 避免反序列化不受信任的数据:对来自客户端的数据使用安全的数据格式(如纯 JSON)
  2. 实施严格的类型检查:使用白名单机制限制可反序列化的类
  3. 使用安全的反序列化库:如 Java 中使用 ObjectInputFilter 进行过滤

参考来源

本文标题:不安全反序列化漏洞

永久链接:https://iceprosurface.com/terminology/insecure-deserialization/

查看源码: