Flutter共享偏好Android组件反序列化漏洞分析

本文详细分析了shared_preferences_android组件中的反序列化漏洞,该漏洞允许攻击者通过恶意序列化数据实现任意代码执行,影响版本2.3.3及以下,已发布2.3.4修复版本。

漏洞概述

包名: shared_preferences_android (Pub)
受影响版本: = 2.3.3
修复版本: 2.3.4
严重程度: 低危 (CVSS评分: 3.0)

漏洞详情

影响分析

由于某些数据类型在可用存储选项中无法原生表示,shared_preferences_android组件使用特殊的字符串前缀来序列化和反序列化这些无法表示的数据类型。这一机制导致可以反序列化任意类,从而可能执行任意代码。

攻击者可以通过覆盖包含偏好的文件,在其中植入恶意反序列化载荷。一旦从磁盘加载数据,这些载荷就会立即触发。

技术原理

该漏洞源于组件在处理无法原生存储的数据类型时采用的序列化机制。通过构造特定的序列化字符串,攻击者能够注入恶意代码,在数据反序列化过程中执行任意命令。

修复方案

  • 补丁版本: 升级到2.3.4版本
  • 临时解决方案: 更新到最新的shared_preferences_android版本

安全指标

CVSS v3.1 基准指标

  • 攻击向量: 本地
  • 攻击复杂度: 高
  • 所需权限: 高
  • 用户交互: 无
  • 影响范围: 未改变
  • 机密性影响: 无
  • 完整性影响: 低
  • 可用性影响: 低

弱点分类

CWE-502: 不可信数据的反序列化
产品在未充分验证结果数据有效性的情况下反序列化了不可信数据。

致谢

特别感谢 sonarsource 的 Oskar Zeino-Mahmalat 发现并报告此问题。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计