Skip to content

8x05 - CVE Case Studies

深度拆解经典漏洞。

本章不追求堆砌 CVE 列表,而是用“统一拆解框架”读案例:入口 → 根因 → 影响面 → 缓解机制 → 修复与回归。

1. 逻辑漏洞案例

  • StrandHogg 2.0: 任务栈劫持。

建议的拆解维度:

  • 漏洞属于“缺少校验”还是“校验对象不一致”
  • 是否存在 confused deputy(代表低权限执行高权限能力)
  • 是否与多用户/profile/权限授予链路相关

2. 内存破坏案例

  • Stagefright: 媒体解析溢出。
  • Bad Binder: 内核 UAF。
  • BlueFrag: 蓝牙远程代码执行。

建议的拆解维度:

  • 输入面:文件/网络/无线/本地接口
  • 进程边界:漏洞发生在哪个进程与哪个 SELinux 域
  • 缓解机制:ASLR/CFI/MTE/seccomp 是否改变可利用性
  • 修复策略:边界检查、对象生命周期、状态机收敛

3. 一个通用的案例阅读模板

3.1 背景

  • 组件在系统中的位置与权限
  • 输入从哪里来,是否可由第三方触发

3.2 根因

  • 关键函数/路径
  • 缺失的校验与不变量

3.3 影响面

  • 影响类型(信息泄露/越权/DoS/RCE/LPE)
  • 受影响版本与设备差异

3.4 修复与验证

  • 补丁做了什么(边界检查/权限校验/状态机修正)
  • 回归风险点

4. 案例与专题的映射

  • Stagefright → /notes/android/03-services/05-media-framework
  • Bad Binder → /notes/android/02-ipc/01-binder-deep-dive/notes/android/05-kernel/03-attack-surface
  • BlueFrag → /notes/android/07-special/02-bluetooth

参考(AOSP)