PowerShell Remoting BinaryFormatter序列化漏洞是否存在于.NET Framework 4.7.2?
BinaryFormatter 安全问题是否存在于 .NET Framework 4.7.2 版本
是的,.NET Framework 4.7.2 版本同样存在 BinaryFormatter 对应的安全风险。
该安全问题属于 BinaryFormatter 底层实现的天生缺陷:该组件的反序列化逻辑不会对输入数据做严格的类型校验,攻击者只要构造特制的恶意序列化 payload 即可触发远程代码执行。该风险存在于所有包含 BinaryFormatter 实现的 .NET 版本中,和你在 .NET Core 5.0 场景下遇到的风险本质完全一致。
两个不同 .NET 版本对该风险的处理差异如下:
- .NET Core 2.1 及后续版本官方已经将 BinaryFormatter 标记为不安全组件,多数场景下默认禁用,调用时会主动抛出安全警告或运行时错误
- .NET Framework 4.7.2 版本并未默认禁用 BinaryFormatter,官方仅在后续安全公告中提示开发者禁止使用该组件反序列化不受信任的数据,你在 PowerShell 调用场景下的漏洞触发条件和 .NET Core 5.0 场景完全相同
建议优先替换 BinaryFormatter 为安全的序列化方案:
- 结构化数据优先使用
System.Text.Json或 Newtonsoft.Json 做 JSON 序列化 - 对体积、性能有要求的场景,可使用 Protobuf、MessagePack 等强类型二进制序列化组件
- 确需保留自定义二进制序列化逻辑的场景,必须自行实现严格的类型白名单校验,绝对禁止反序列化任何来自不受信任源的数据
内容的提问来源于stack exchange,提问作者user16554958
相关产品推荐
相关产品推荐

