惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Cloudbric
Cloudbric
E
Exploit-DB.com RSS Feed
SecWiki News
SecWiki News
Forbes - Security
Forbes - Security
N
News | PayPal Newsroom
S
Security @ Cisco Blogs
Schneier on Security
Schneier on Security
V
V2EX - 技术
S
Secure Thoughts
W
WeLiveSecurity
Google DeepMind News
Google DeepMind News
C
CERT Recently Published Vulnerability Notes
NISL@THU
NISL@THU
S
Securelist
S
Security Archives - TechRepublic
Know Your Adversary
Know Your Adversary
V
Vulnerabilities – Threatpost
Security Latest
Security Latest
Recent Commits to openclaw:main
Recent Commits to openclaw:main
G
GRAHAM CLULEY
H
Hacker News: Front Page
Microsoft Azure Blog
Microsoft Azure Blog
I
Intezer
Google Online Security Blog
Google Online Security Blog
美团技术团队
阮一峰的网络日志
阮一峰的网络日志
T
The Exploit Database - CXSecurity.com
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Webroot Blog
Webroot Blog
Jina AI
Jina AI
Engineering at Meta
Engineering at Meta
P
Proofpoint News Feed
The Cloudflare Blog
I
InfoQ
L
LangChain Blog
U
Unit 42
P
Proofpoint News Feed
S
Schneier on Security
S
Security Affairs
Y
Y Combinator Blog
T
Tenable Blog
N
News and Events Feed by Topic
MyScale Blog
MyScale Blog
量子位
Google DeepMind News
Google DeepMind News
Cyberwarzone
Cyberwarzone
博客园 - 聂微东
D
Darknet – Hacking Tools, Hacker News & Cyber Security
GbyAI
GbyAI
AWS News Blog
AWS News Blog

博客园 - bonelee

最近2年前沿的agent智能体安全前沿技术研究 最近2年前沿的LLM推理安全前沿技术研究 最近2年前沿的RAG安全前沿技术研究 大模型安全:提示注入(Prompt Injection) AI Agent 安全:生成内容不可追溯(水印窃取与擦除) AI Agent 安全:RAG 数据投毒 AI Agent 安全:MCP 工具相关安全威胁 AI Agent 安全:输入操纵攻击 AI Agent 安全:非预期远程代码执行(RCE)与代码注入攻击 大模型安全:模型窃取 大模型安全:安全大模型的部署环境威胁 大模型安全:模型加载过程的代码执行 AI大模型里的供应链攻击和典型案例 通过投毒打破模型输出长度限制实现DOS的方法——DENIAL-OF-SERVICE POISONING ATTACKS ON LARGE LANGUAGE MODELS 大模型微调后原有能力下降如何解决? 多智能体安全——Multi-Agent Security Tax: Trading Security and Collaboration 智能体安全——Multi-Agent LLM Collaboration: A Comprehensive Survey 智能体安全——LLM-KG Framework for Robot Intention Prediction 文章要点总结 智能体安全—— intent detection in the age of llms 文章要点总结
大模型安全:共享 GPU 本地内存泄露
bonelee · 2025-12-02 · via 博客园 - bonelee

大模型安全:共享 GPU 本地内存泄露(LeftoverLocals)

威胁描述

在某些 GPU 架构中,每个计算单元(Compute Unit)都配备专属的私有本地内存(local memory)。若 GPU 在进程结束后未自动清除该本地内存中的数据,则攻击者在后续使用同一计算单元的新进程中,可直接读取先前进程残留的敏感信息。
这可能导致 AI 关键资产泄露,包括:

  • 用户输入/输出数据(如私密对话)
  • 模型中间计算结果(如推理向量)
  • 模型权重参数(尤其在开源模型场景下可辅助重构)

威胁场景

满足以下两个条件即可构成风险场景:

  1. GPU 具备本地内存机制,且缺乏进程隔离后自动清零的安全设计;
  2. 存在多用户或多进程共享 GPU 的环境,例如:
    • 未启用 vGPU 或 MxGPU 的云服务器(物理 GPU 被多个租户/容器共享)
    • 多应用共存的桌面或移动设备(如 macOS/iOS/Android 上的后台与前台应用交替使用 GPU)

威胁触发条件

攻击者只需具备以下任一能力:

  • 能运行 GPU 计算程序(如通过 OpenCL、Vulkan、Metal 等 API)
  • 无需 root 或高权限,普通用户或容器内进程即可部署监听程序

通过读取未初始化的本地内存,即可获取前一进程遗留的敏感数据。

缓解措施

技术措施

  1. 云环境:在共享 GPU 场景中,应使用具备硬件级隔离的 GPU 虚拟化技术(如 NVIDIA vGPU、AMD MxGPU),避免多个租户直接共享物理计算单元。
  2. 设备选型:优先选择支持内核退出时自动清零本地内存的 GPU 产品。若不可行,应在应用层强制清零。

管理措施

  1. 及时更新 GPU 固件、驱动及操作系统安全补丁,以修复已知漏洞(如 CVE-2023-4969)。
  2. 采购评估:在 AI 计算设备选型阶段,将“GPU 本地内存自动清零机制”纳入安全基线要求。

威胁案例:LeftoverLocals 漏洞(CVE-2023-4969)

案例摘要

2024 年 1 月,Trail of Bits 安全团队披露了名为 LeftoverLocals 的 GPU 安全漏洞。
该漏洞影响 Apple、Qualcomm、AMD 和 Imagination 等厂商的多款 GPU,其根本原因是:

GPU 在内核执行结束后未清空本地内存(local memory),导致后续进程可读取前一进程残留数据。

关键事实

  • Local memory 是一块软件可控的高速缓存(类似 CPU 的 L1 Cache),容量通常为 16–64 KB/计算单元。
  • 即使两个进程属于不同用户、不同容器或不同 App,只要共享同一物理 GPU,攻击者即可窃取数据。
  • 实测在 AMD Radeon RX 7900 XT 上,单次内核调用可泄露约 5.5 MB 本地内存;运行 LLM 查询时累计泄露达 181 MB,足以高精度重构模型输出。

漏洞详情:https://blog.trailofbits.com/2024/01/16/leftoverlocals-listening-to-llm-responses-through-leaked-gpu-local-memory/

案例分析

1. 攻击场景

攻击者可在以下环境中实施窃听:

  • 本地多用户系统:普通用户进程窃取另一用户正在运行的 LLM(如 llama.cpp)的私密对话结果。
  • 云多租户环境:同一物理 GPU 上的恶意虚拟机或容器窃取邻近租户的 AI 推理输出。
  • 移动设备:恶意 App 在后台或快速切换至前台时,读取其他 App(如 AI 助手)使用 GPU 的残留数据。

2. 验证过程(PoC 核心逻辑)

2.1 写入者(The Writer)

写入测试标记值(如 123)到本地内存:

2.2 监听者(The Listener)

读取未初始化的本地内存并转存至全局内存供 CPU 分析:

注:使用 volatile 关键字防止编译器优化掉未定义行为的内存访问。

验证逻辑

  • 写入者与监听者分别由不同用户、容器或 App 启动;
  • 若监听者能稳定读取写入者的标记值,则判定该平台存在 LeftoverLocals 漏洞。

3. 监听 LLM 响应(高级利用)

攻击分两步实现对 LLM 输出的高保真窃听:

  1. 模型指纹提取
    • 攻击者多次监听 GPU 本地内存,收集各层线性代数运算(如 GEMM)的权重与输入片段;
    • 累计约 80 MB 数据足以匹配 Hugging Face 等开源模型库,精准识别受害者使用的模型(如 wizardLM-7B)。
  2. 输出层窃取
    • LLM 最后一层为 矩阵-向量乘法(MatVec),其输入向量较小(约 4 KB)且完整驻留本地内存;
    • 攻击者通过特征识别(如“4KB 浮点数组前后为零”)定位输出层数据;
    • 结合已知模型权重,本地重算输出 logits,还原原始 token 响应。

尽管存在重复 token、缺失 token 或语义相近误判(如“Google”→“Facebook”),整体窃听准确率仍足以泄露敏感内容。

4. 消减与修复建议

通用编程防御(适用于所有开发者):
在 GPU 内核结束前显式清零本地内存

注意:需使用 volatile 或编译器屏障防止优化删除清零操作。

总结

LeftoverLocals 揭示了当前 GPU 生态在进程隔离与内存安全方面的严重缺失。
尤其在大模型本地部署、边缘 AI、多租户云推理等趋势下,GPU 本地内存泄露已成为新型供应链攻击面。