ProGRank: Probe-Gradient Reranking to Defend Dense-Retriever RAG from Corpus Poisoning
Organizations: Chalmers University of Technology, Sweden · University of Leeds, United Kingdom · Carl von Ossietzky University of Oldenburg, Germany
Abstract
Retrieval-Augmented Generation (RAG) improves large language model applications by grounding generation in retrieved evidence, but also introduces corpus poisoning as a new attack surface. In this setting, an adversary injects or edits passages so that they enter the Top- results for target queries and influence downstream generation. Existing defences often rely on content filtering, auxiliary models, or generator-side reasoning, which complicates deployment. We propose ProGRank, a post hoc, training-free retriever-side defence for dense-retriever RAG. ProGRank stress-tests each query--passage pair under mild randomized perturbations, extracts probe gradients from a small fixed parameter subset, and derives two instability signals: representational consistency and dispersion risk. It then combines these signals with a score gate for reranking. ProGRank preserves the original passage content, requires no retraining, and supports a surrogate-based variant when the deployed retriever is unavailable. Experiments across datasets, retrievers, attacks, and retrieval-stage and end-to-end settings show that ProGRank improves robustness and maintains a favorable robustness--utility trade-off, including under adaptive evasive attacks.
Figures & tables
| Method | Post hoc and training-free | No auxiliary LM inference | Preserves original passage content | No generator-side calls |
| GRADA [ 39 ] | ✓ | ✓ | ✓ | ✓ |
| RAGPart [ 18 ] | ✓ | ✓ | ✗ | ✓ |
| RAGMask [ 18 ] | ✓ | ✓ | ✗ | ✓ |
| GMTP [ 12 ] | ✓ | ✗ | ✗ | ✓ |
| RAGuard [ 13 ] | ✗ | ✗ | ✗ | ✗ |
| ProGRank (ours) | ✓ | ✓ | ✓ | ✓ |
| Dataset | Poison Method | Baseline | GRADA | GMTP | RAGuard | Ours |
| HotpotQA | PoisonedRAG | 0.940 0.239 0.960 0.197 0.010 0.100 | 0.080 0.273 0.080 0.273 0.230 0.423 | 0.090 0.288 0.030 0.171 0.100 0.302 | 0.350 0.479 0.360 0.480 0.330 0.473 | 0.032 0.316 0.000 0.000 0.300 0.483 |
| LIAR-RAG | 0.739 0.449 0.826 0.388 0.000 0.000 | 0.000 0.000 0.043 0.209 0.391 0.499 | 0.000 0.000 0.000 0.000 0.261 0.449 | 0.348 0.487 0.340 0.485 0.435 0.507 | 0.000 0.000 0.000 0.000 0.400 0.516 | |
| Joint-GCG | 0.966 0.183 0.949 0.222 0.017 0.130 | 0.085 0.281 0.119 0.326 0.237 0.429 | 0.102 0.305 0.034 0.183 0.136 0.345 | 0.441 0.501 0.430 0.498 0.288 0.457 | 0.000 0.000 0.000 0.000 0.469 0.500 | |
| Macro Avg | 0.882 0.290 0.912 0.269 0.009 0.077 | 0.055 0.185 0.081 0.269 0.286 0.450 | 0.064 0.198 0.021 0.118 0.166 0.365 | 0.380 0.489 0.377 0.488 0.351 0.479 | 0.011 0.105 0.000 0.000 0.390 0.500 | |
| NQ | PoisonedRAG | 0.612 0.490 0.653 0.478 0.286 0.454 | 0.031 0.173 0.061 0.241 0.531 0.502 | 0.020 0.142 0.092 0.290 0.255 0.438 | 0.276 0.449 0.290 0.454 0.367 0.485 | 0.000 0.000 0.000 0.000 0.596 0.422 |
| LIAR-RAG | 0.522 0.505 0.696 0.465 0.130 0.341 | 0.022 0.147 0.043 0.206 0.630 0.488 | 0.000 0.000 0.087 0.285 0.326 0.474 | 0.261 0.444 0.270 0.448 0.500 0.506 | 0.000 0.000 0.000 0.000 0.200 0.422 |
| Dataset | PoisonedRAG | LIAR-RAG | Joint-GCG | Macro Avg |
| HotpotQA | 0.060 0.287 0.018 0.012 0.284 0.465 | 0.026 0.009 0.008 0.011 0.381 0.497 | 0.028 0.015 0.029 0.010 0.451 0.481 | 0.030 0.118 0.016 0.013 0.372 0.476 |
| NQ | 0.024 0.010 0.030 0.014 0.579 0.403 | 0.012 0.008 0.022 0.012 0.186 0.405 | 0.030 0.011 0.024 0.016 0.333 0.401 | 0.016 0.009 0.034 0.015 0.365 0.398 |
| MS MARCO | 0.028 0.013 0.011 0.010 0.382 0.492 | 0.017 0.301 0.010 0.014 0.383 0.499 | 0.027 0.012 0.034 0.017 0.521 0.487 | 0.049 0.097 0.019 0.012 0.429 0.503 |
| Method | HotpotQA (s/query) | NQ (s/query) | MS MARCO (s/query) | Mean (s/query) |
| GRADA | 0.91 | 1.14 | 0.63 | 0.90 |
| GMTP | 14.71 | 17.82 | 11.25 | 14.60 |
| RAGuard | 110.17 | 148.74 | 95.61 | 118.17 |
| Ours | 4.68 | 4.92 | 4.58 | 4.73 |
| Dataset (Metric) | Baseline | GRADA | GMTP | RAGuard | Ours |
| HotpotQA (F1) | 0.440 0.026 | 0.251 0.130 | 0.300 0.078 | 0.431 0.013 | 0.304 0.009 |
| NQ (EM) | 0.175 0.035 | 0.150 0.070 | 0.100 0.000 | 0.175 0.035 | 0.225 0.106 |
| MS MARCO (ROUGE-L F1) | 0.235 0.017 | 0.251 0.045 | 0.245 0.012 | 0.235 0.018 | 0.202 0.101 |
RAG Security
Retrieval-augmented generation security studies how to protect retrieval-based language systems from attacks, data leakage, and unsafe outputs.
See all 104 papers