One Polluted Page Is Enough: Evaluating Web Content Pollution in LLM Recommenders
Minghao Luo, Liang Chen
EMNLP 2026 Findings
cs.CL, cs.AI
2026-06-12
FORGE在冻结检索页里把真品牌改成假品牌。12个模型全中招:污染一页最高27%,前三页全换最高73.8%。打开推理、加怀疑提示,闭源模型往往更愿意把假货圆成口碑。
搜索增强的助手已经在给消费者做推荐。页面还是普通用户生成内容的样子,里面的品牌却可以被 SEO/GEO 换成模型从没见过的假货。和提示注入、闭集 RAG 投毒不同,输出仍然是「按要求推荐」,没有异常指令可抓。港中文和 EPFL 问的是:检索到的网页被污染之后,模型会不会把假品牌写进推荐列表。
他们不做真网上毒,只在冻结的检索包里改字,基准叫 FORGE。225 个真实商品,15 个品类,5 类消费场景。默认攻击是实体替换:把文档里最显眼的真品牌改成假的品牌-商品组合,URL、排序和上下文不动。主评测是中文,对应国内已经曝光的 GEO 黑产;英语复现了三个品类。
每个商品先走一遍真实搜索,过质量门后取前 10 页冻住。威胁模型假定对手只能靠普通 SEO 把页面打进 top-K,改不了模型、索引和用户提示。除实体替换外还有段落插入和整页合成。被骗的定义很窄:假品牌出现在给用户看的答案里(推理模型只看最终回答),大小写不敏感的子串匹配。空证据误报 0.30%,干净检索包误报 0%。
12 个模型,闭源开源各六,贪心解码。额外拆了推理开关、污染页数量和位置、三种攻击风格,以及四套防御:怀疑系统提示、先验过滤器、一致性过滤器、按来源可信度重排。
十二个模型全部能被骗。前三页实体替换的被骗率从 Gemini 3 Flash 的 13.3% 到 Ministral-3R 的 73.8%,总均 42.7%。餐饮最高 81.7%,手机电脑最低 22.8%。品类差异和「没证据时模型们对真品牌有多一致」负相关,Pearson r=-0.65:先验稳的品类更抗,长尾口碑类更容易倒。
单页就够。同一篇污染文档放在 rank-1,最脆弱的开源模型被骗约 27%;放到第 2 到第 10 名只剩 1% 到 4%。污染页从 1 加到 3,开源模型接近单调上升,最脆弱的在三页左右就越过 50%。被骗之后,假品牌占第 1 名的条件概率是 57%,进前三是 84%。
推理不是解药。Qwen3.5-9B 打开思考加 18 个百分点,GLM-4.6V-Flash 加 9 个点。被骗的回答还会编检索页里没有的社群口碑,社会证明词比扛住的回答多 1.5 到 11 倍。真抵抗的路径是看见假名、推理轨迹大约长六倍、再拒绝。浅浅想一遍的,长度跟从没看见假名的差不多。
防御都不堪用。怀疑提示总被骗率升 10.5 个百分点,闭源平均升 24,Gemini 3.1 Pro 升 44。先验过滤能拿掉 95% 的假品牌,顺手丢掉 62% 到 79% 的真推荐;一致性过滤是 90% 对 52% 到 73%。按编辑/商业/UGC 重排,开源被骗率从 50.4% 降到 42.1%,只清掉约六分之一的假货。英语三个品类的高低顺序不变,12 个模型里 8 个与中文相差不超过 10 个百分点。
给搜索增强推荐做安全的人,不能再把这类失败当成提示注入。污染长得像普通点评,成功输出仍是合规推荐。Rank-1 的 UGC 在他们收集的 2250 个槽位里占 52.4%,正好是攻击最有效的位置。打开推理、把模型调得更「谨慎」,在品牌先验薄的品类上会适得其反。能用的方向更像证据层:来源分层、交叉验证,而且要能保住真商品,不能靠把推荐砍掉三分之二来换安全。
FORGE 测的是下界。默认攻击只换品牌字符串,没有对抗优化。
攻击和防御都没针对这个设定做优化,真实对手可以把模板、段落和 SEO 拼在一起,数字会更差。污染页数量、单页位置、先验过滤和重排主要在开源六个模型或数码三个品类上测,闭源没有同等的过程级拆解。主结果是中文、本地生活固定在深圳,证据包冻在 2026-04 的一次检索快照。假品牌前缀做了碰撞检查,仍是实验室构造,不是网上正在卖的名字。