一句话:提出 ConfuseTaint,利用类型混淆漏洞破坏污点元数据,在不改变程序语义的情况下绕过 JVM 与 Android 的动态污点分析。
动态污点分析(DTA)在运行时追踪敏感数据流,用于检测信息泄露与注入攻击等安全违规。现有 DTA 系统大多假设内存布局是类型安全且结构一致的,但类型混淆等漏洞会打破这一假设。本文提出 ConfuseTaint,一种利用类型混淆漏洞破坏污点元数据、但不修改程序语义或分析工具本身的技术。它借助类型混淆触发的宽内存覆写来污染影子内存中的污点标签,从而破坏依赖影子内存的污点跟踪机制所依赖的假设。作者在两个广泛使用的污点跟踪框架上评估 ConfuseTaint:面向 JVM 的 Phosphor 与面向 Android 的 TaintDroid。两者均被成功绕过,敏感数据得以在未被检测的情况下到达指定 sink。结果揭示了当前 DTA 设计的结构性弱点:对类型安全内存布局的依赖使其易受底层内存重解释攻击,呼吁构建不依赖脆弱类型与内存布局假设的污点跟踪架构。
Dynamic taint analysis (DTA) tracks how sensitive data flows through a program at runtime, enabling the detection of security violations such as information leaks and injection attacks. However, most DTA systems assume that memory layouts are type-safe and structurally consistent—an assumption that can be violated by vulnerabilities such as type confusion. While type confusion has been studied in the context of sandbox escape, its ability to silently bypass taint tracking without altering program behavior remains unexplored. In this paper, we present ConfuseTaint, a technique that leverages type confusion vulnerabilities to corrupt taint metadata without modifying program semantics or the analysis tool. ConfuseTaint uses wide memory overwrites enabled by type confusion to corrupt taint tags, breaking the assumptions of taint tracking mechanisms that rely on shadow memory.We evaluate ConfuseTaint on two widely used taint tracking frameworks: Phosphor for the JVM and TaintDroid for Android. In both cases, ConfuseTaint successfully bypasses taint tracking, allowing sensitive data to reach designated sinks without detection. These results reveal a structural weakness in current DTA designs: their reliance on type-safe memory layouts leaves them vulnerable to low-level reinterpretation. Overall, our work reveals that runtime-level memory reinterpretation is an overlooked threat, calling for taint tracking architectures that do not rely on fragile assumptions about type and memory layout.