Flutter Android共享偏好设置反序列化漏洞分析

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

shared_preferences_android 漏洞分析

漏洞概述

漏洞编号:GHSA-3hpf-ff72-j67p
严重程度:低危(CVSS评分3.0)
影响版本:shared_preferences_android ≤ 2.3.3
修复版本:2.3.4

技术细节

漏洞原理

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

攻击场景

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

安全指标

CVSS v3.1 基准指标

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

弱点分类

  • CWE-ID:CWE-502
  • 弱点描述:不可信数据的反序列化

解决方案

修复措施

升级到 shared_preferences_android 2.3.4 版本,该版本包含了解决此漏洞的更改。

临时解决方案

更新到最新版本的 shared_preferences_android 包。

致谢

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

时间线

  • 发布时间:2024年12月6日
  • 最后更新:2024年12月9日
  • 代码仓库:flutter/packages
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计