AI Security Lab

OWASP LLM Top 10 LLM 应用的十大网络安全风险 · 2026 版

十条风险逐项拆解:定义、实际攻击面与防御作法。这是企业做 AI 风险盘点时的第一份对照表。

00

2025 → 2026 改了什么

本页十条依 2026 版撰写。排序变动比往年都大,所以照旧版盘点过的清单值得重看一次。

2025 2026 风险
0101提示词注入 — 不变
0202敏感信息泄漏 — 不变
0603过度代理权 — 升三名,本次最重要的移动
0304供应链 — 降一名
0405数据与模型投毒 — 降一名
1006无节制消耗 — 升四名
0907错误信息 — 升两名
0708隐藏脉络外泄 — 更名并扩大范围(原「系统提示词泄漏」)
0809向量与嵌入弱点 — 降一名
0510输出处理不当 — 降五名,本次跌幅最大

四条的范围扩大了,而不是添加条目。 OWASP 的作法是把新出现的风险折进已经拥有它们的条目,避免把清单切碎:提示词注入纳入跨模态攻击(指令藏在图像或音频里)、供应链纳入模型对象名实不符、数据与模型投毒纳入微调阶段的颠覆、输出处理不当纳入助理大量产生的不安全代码

排序方法变了,这是 2026 版最值得知道的一件事。 在此之前排序完全来自社区投票。2026 版首次加入事故数据:7,714 笔来自公开漏洞数据库与 AI 危害数据库的真实事故,其中 6,639 笔细节足以分类。最终权重是投票四分之三、数据四分之一——刻意让投票为主,理由是一年的数据不足以推翻实务工作者的判断。

两者分歧的地方比一致的地方更有信息量。提示词注入是最清楚的例子:若只看事故数据,它会掉出前十——但 OWASP 判定那是防御效果而非风险下降,因为团队在这条上投入最多,干净的成功案例反而较少进入公开数据库。它维持第一。错误信息则相反:投票排得低、事故数据排得高,是分歧最大且方向最伤人的一条。

还有一条边界值得记住:这份清单管的是「模型作为应用里的一个组件」。 一旦模型变成能调用工具、跨工作阶段保留记忆、并在下游造成后果的行动者,风险就移到 OWASP 的 Agentic Top 10,两份清单要一起看。

01

十条速览

# 风险
LLM01 提示词注入
LLM02 敏感信息泄漏
LLM03 过度代理权
LLM04 供应链
LLM05 数据与模型投毒
LLM06 无节制消耗
LLM07 错误信息
LLM08 隐藏脉络外泄
LLM09 向量与嵌入弱点
LLM10 输出处理不当

LLM01

提示词注入 Prompt Injection

定义

进入模型脉络的任何输入改变了它的行为,使它偏离开发者的意图。模型在架构上分不出「指令」与「数据」——两者是同一条 token 流上的 token,所以没有等同于参数化查询的干净解法。

情境

直接注入是在对话框里写「忽略先前所有指令」;间接注入是把指令藏在模型会读到的网页、邮件或文档里。2026 版把跨模态攻击纳入这一条——指令藏在图像或音频里,人在画面上看不到,模型读得到。

防御

没有单一解法。核心原则是把所有外部内容当成不可信数据,并且在模型之外强制执行权限——模型被说服了,权限也不该跟着松动。

为什么还是第一 若只看事故数据它会掉出前十,但 OWASP 判定那是防御效果:团队在这条上投入最多,干净的成功案例较少进入公开数据库。攻击面本身没有缩小。

深入 攻击原理、与越狱的差异与纵深防御的实务做法

相关 LLM03 过度代理权 / LLM10 输出处理不当

LLM02

敏感信息泄漏 Sensitive Information Disclosure

定义

模型的输出泄漏了不该给这个用户的信息——个资、证书、营业秘密,或其他用户的数据。

情境

一套 RAG 系统把整个知识库的权限一视同仁,于是业务部门的人问得到只有法务该看的合约条款。模型没有出错,是检索层从一开始就没有边界。

防御

  1. 01检索之前就套用用户权限,不要靠提示词要求模型「不要说出来」——那是请求,不是控制。
  2. 02输入与输出两端都做敏感数据侦测与屏蔽。
  3. 03用于训练或微调的数据先去识别化,因为模型记得住的东西无法事后撤回。

相关 LLM08 隐藏脉络外泄 / LLM09 向量与嵌入弱点

LLM03

过度代理权 Excessive Agency

定义

系统给了模型过多的功能、权限或自主性,使得它的一次判断失误足以造成真实损害。

情境

一个负责整理信件的 agent,被顺手给了寄信与删信的权限——因为用的是同一组证书,分开设置太麻烦。于是一封夹带指令的信就能让它对外发信。权限是为了方便给的,代价是攻击面。

防御

  1. 01工具的权限取最小集合,不给「以防万一会用到」的能力。
  2. 02高风险或不可逆的动作要人为确认,而且确认的界面要说清楚将要发生什么。
  3. 03权限在工具层强制,不靠提示词约束——提示词说服得动,权限系统说服不动。

2026 变动 从第六升到第三,是本次最重要的移动。投票与事故数据在这条上难得一致:损害正在 agent 化的部署里发生。

相关 LLM01 提示词注入 / LLM10 输出处理不当

LLM04

供应链 Supply Chain

定义

模型权重、数据集、套件与插件的来源本身不可信或已被污染。传统软件供应链的问题,多了模型这一类无法用读源代码来审计的资产。2026 版把「模型对象名实不符」纳入这一条——被推广的那份权重不是它宣称的东西。

情境

从公开模型仓库拉下来的微调权重、来路不明的 LoRA 配接器,或 agent 工具链里某个第三方套件。你看得懂前端的每一进程序,但看不懂那份权重文档里有什么。

防御

  1. 01模型与数据集比照软件相依处理:来源查核、版本锁定、哈希比对。
  2. 02产出并维护 AI 物料清单,让「我们到底装了什么」是一个查得到答案的问题。
  3. 03第三方模型先在隔离环境评估行为再上线,不要直接接到有权限的系统上。

相关 LLM05 数据与模型投毒

LLM05

数据与模型投毒 Data and Model Poisoning

定义

有人在预训练、微调或嵌入的数据里植入内容,借此改变模型的行为,或埋下只在特定触发词出现时才启动的后门。2026 版把微调阶段的颠覆明确纳入

情境

一个会被爬进训练集的公开页面,被刻意写入特定触发词与对应的错误答案。模型在所有一般测试上都正常,只有遇到那个词时才会转向——这是它难防的原因:异常不会出现在你测试的地方。

防御

  1. 01训练与微调数据的来源可追溯,知道每一批数据是谁放进来的。
  2. 02对照固定的基准集侦测行为漂移,而不是只看整体指标有没有变差。
  3. 03微调后做红队测试,特别针对触发词这类只在窄条件下显现的行为。

相关 LLM04 供应链 / LLM07 错误信息

LLM06

无节制消耗 Unbounded Consumption

定义

对推论的用量没有边界,导致成本失控、服务降级,或模型的行为被大量查询复制出去。

情境

一个公开的对话端点没有速率限制,被持续调用以搜集输入与输出配对来复制模型行为。帐单与延迟同时恶化,而流量在监控上看起来只是「使用量成长」。

防御

  1. 01依用户与 API 密钥设速率与配额上限,而不是只在整体层级设一个总量。
  2. 02限制输入长度与输出 token 数,两端都要。
  3. 03监控每用户成本并设异常告警——先看到帐单才发现,通常已经是一个月后。

2026 变动 从第十升到第六,上升四名。从业者把资源与成本耗尽看得比旧排名重得多。

相关 LLM03 过度代理权

LLM07

错误信息 Misinformation

定义

模型产生看似可信但实际错误的内容,而下游把它当成事实使用。危害的大小取决于谁接住它、有没有人核对。

情境

模型虚构一个不存在的套件名称,开发者照着安装——而攻击者早已在套件库注册了那个名字。模型的错误在这里不只是错,它变成了一条可被预测、因此可被埋伏的路径。

防御

  1. 01有出处要求的场景一律走检索并附上引用,让答案可以被追回来源。
  2. 02关键决策保留人工复核,而且复核的人要看得到模型依据什么。
  3. 03对用户揭露不确定性,不要用肯定的语气包装推测。

2026 变动 升两名,而且是投票与事故数据分歧最大的一条:从业者排得低、真实事故排得高。当一个流畅自信的输出驱动了一个决定或一次工具调用,错的答案就变成错的行动。

相关 LLM05 数据与模型投毒

LLM08

隐藏脉络外泄 Hidden Context Exposure

定义

放进模型脉络、但不打算让用户看到的指令与运作信息,被抽取、推断或还原。范围不只系统提示词:还包括开发者指令、从知识库或设置档取来的政策文字、工具与函数的 schema,以及应用组进脉络窗口的其他规则与素材。共同点是——不打算给用户看,但模型读得到。

情境

用户用重述、翻译或角色扮演诱导模型复述自己的指令,于是写在里面的 API 密钥、内部折扣规则或工具权限一起外流。更隐蔽的一种是拒答规则被还原:用户原本只看到「抱歉,我不能这么做」,外泄之后看到的是触发那句话的条件与例外,于是知道怎么绕过。

防御

  1. 01假设隐藏脉络终将被看见来设计,把脉络里的任何内容都当成不是秘密。这是根本解,其余都是补丁。
  2. 02证书、连接字符串与 token 一律不放进脉络。真正的风险不是它被看见,是它一开始就被放进去。
  3. 03不要把隐藏脉络当成授权、权限隔离、政策执行或内容过滤的唯一边界——那些要在模型之外成立。

2026 变动 取代 2025 版的「系统提示词泄漏」并扩大范围。改名反映的是一个判断:问题从来不是那段提示词本身,而是「应该留在用户拿不到的地方的信息」这一整类东西。

相关 LLM02 敏感信息泄漏 / LLM03 过度代理权

LLM09

向量与嵌入弱点 Vector and Embedding Weaknesses

定义

RAG 用的向量数据库与嵌入本身成为攻击面:被投毒、跨租户泄漏,或从嵌入向量反推回原文。

情境

多租户的向量库没有依租户做硬性隔离,只靠检索时附带的过滤条件。一次相似度查询就跨过了客户边界,而且没有任何一道错误消息会提到这件事。

防御

  1. 01向量库依租户与权限做硬性隔离,不要把隔离寄托在查询条件写对。
  2. 02进库的文档要有来源验证与审计轨迹,知道每一段内容是怎么进去的。
  3. 03嵌入本身视为敏感数据保护——它可被部分还原,不是不可逆的哈希。

相关 LLM02 敏感信息泄漏 / LLM05 数据与模型投毒

LLM10

输出处理不当 Improper Output Handling

定义

模型的输出未经验证就交给下游组件执行或呈现。这一条不是模型的问题,是接住模型的那段程序的问题。2026 版把助理大量产生的不安全代码纳入这一条

情境

模型返回的字符串直接进 innerHTML、直接拼进 SQL、直接喂给 shell。一次成功的注入因此从「模型讲错话」升级成「攻击者在你的服务器上执行指令」。

防御

  1. 01把模型视为不可信来源,输出比照用户输入处理——它本来就可能是用户输入变形而来的。
  2. 02依下游情境做输出编码:HTML、SQL、shell 各有各的跳脱规则,没有通用的那一种。
  3. 03参数化查询,不做字符串拼接。

2026 变动 从第五落到第十,是本次跌幅最大的一条。排名下降不代表危害下降——它落后是因为其他条目上升,而这一条的范围其实还扩大了。

相关 LLM01 提示词注入 / LLM03 过度代理权

来源

十条的名称、顺序与范围取自 OWASP GenAI Security Project 发布的 Top 10 for LLM Applications 2026 版文档(授权 CC BY-SA 4.0)。排序方法与事故数据的数字同样出自该文档。 本页的整理、译名与防御作法由 TauX 撰写,不代表 OWASP 立场。

担心您的 LLM 应用不安全?

TauX Security Lab 提供 LLM 安全检测与红队演练,依这十条逐项盘点您的系统。