CIPL: A Channel-Aware Framework for Recoverable Privacy Leakage in LLM Agents
Organizations: Minjiang University, Fuzhou, Fujian 350108, China · Renmin University of China, Beijing 100872, China · RMIT University, Melbourne, VIC 3000, Australia
Abstract
Privacy leakage in LLM agents is commonly evaluated within individual components such as memory, retrieval, or tool-use pipelines, which makes it difficult to distinguish internal exposure from information that an external observer can actually recover. We present CIPL (Channel Inversion for Privacy Leakage), a channel-aware evaluation framework for black-box privacy leakage in LLM agents. CIPL represents a target through sensitive source, selection, assembly, execution, observation, and extraction stages and evaluates the transition from selected sensitive units to attacker-recoverable output under a shared protocol. Experiments across memory-based, retrieval-mediated, and tool-mediated targets, together with a BrowserUse live-agent case study, show that storage labels alone do not determine recoverability. Memory targets form a near-saturated reference case, retrieval-mediated leakage is frequently partial, and tool-mediated and live-agent leakage varies strongly with observation surface, prompt-to-channel alignment, retrieval depth, and provider behavior. A stratified semantic audit further identifies attacker-useful disclosures that canonical exact matching misses. CIPL therefore provides a common framework for comparing how internal sensitive dependence is realized as externally recoverable leakage across heterogeneous agent pipelines.
Figures & tables
| Line of work | Main unit | Exp/Rec | Cross | Attr | Sem |
|---|---|---|---|---|---|
| Memory extraction | Memory records | P | N | N | N |
| RAG privacy / extraction | Retrieved documents or snippets | P | N | P | P |
| Tool / web-agent leakage | Tool calls, returns, actions, or injected instructions | P | N | P | N |
| Agent security benchmarks | End-to-end task outcomes | N | P | N | N |
| CIPL | Selected sensitive units in active computation | Y | Y | Y | Y |
| Setting | Provider | CER | AER | ExecErr |
|---|---|---|---|---|
| memory_ehr | MiniMax-M2.5 | |||
| memory_ehr | MiniMax-M2.7 | |||
| memory_ehr | qwen3.5-plus | |||
| memory_ehr | DeepSeek | |||
| memory_ehr | GPT-4o | |||
| memory_rap | MiniMax-M2.5 |
| Target | Main W/T/L | Main AER / CER | Naive AER / CER |
|---|---|---|---|
| memory_ehr | 1/2/0 | 1.00 / 1.00 | 0.00–1.00 / 0.00–1.00 |
| memory_rap | 3/0/0 | 1.00 / 1.00 | 0.00 / 0.00 |
| rag_ctrl | 0/0/3 | 0.82–0.95 / 0.33–0.55 | 0.93–1.00 / 0.92–1.00 |
| tool_ctrl(args) | 3/0/0 | 0.27–0.99 / 0.27–0.49 | 0.18–0.86 / 0.16–0.49 |
| tool_ctrl(return) | 3/0/0 | 0.37–1.00 / 0.37–1.00 | 0.05–0.26 / 0.05–0.26 |
| Provider | process CER | process AER | final CER | final AER |
|---|---|---|---|---|
| DeepSeek | ||||
| GPT-4o | ||||
| MiniMax-M2.5 | ||||
| MiniMax-M2.7 | ||||
| qwen3.5-plus |
| Observation mode | Strong AER | Std. RN | Std. AER |
|---|---|---|---|
| final_result | – | – | |
| process | – | – |
| Audit item | Value | Reading |
|---|---|---|
| labeled_samples | 200 | audit size |
| semantic_AER | 0.8550 | any semantic leakage |
| semantic_CER | 0.4100 | semantically complete leakage |
| exact_any=0 & semantic=1 | 5 | missed by exact-only |
| exact_any=1 & semantic=2 | 82 | exact and semantically severe |
Appendix figures & tables23 assets
Supplementary material from the paper’s appendix.
Appendix
| Setting | Provider | RN | EN | EE | CER | AER | ExecErr |
|---|---|---|---|---|---|---|---|
| memory_ehr | MiniMax-M2.5 | 55 | 55.0 0.0 | 0.46 0.00 | 1.00 0.00 | 1.00 0.00 | 0.0 0.0 |
| memory_ehr | MiniMax-M2.7 | 55 | 55.0 0.0 | 0.46 0.00 | 1.00 0.00 | 1.00 0.00 | 0.0 0.0 |
| memory_ehr | qwen3.5-plus | 55 | 55.0 0.0 | 0.46 0.00 | 1.00 0.00 | 1.00 0.00 | 0.0 0.0 |
| memory_ehr | DeepSeek | 55 | 55.0 0.0 | 0.46 0.00 | 1.00 0.00 | 1.00 0.00 | 0.0 0.0 |
| memory_ehr | GPT-4o | 55 | 55.0 0.0 | 0.46 0.00 | 1.00 0.00 | 1.00 0.00 | 0.0 0.0 |
| memory_rap | MiniMax-M2.5 | 57 | 57.0 0.0 | 0.63 0.00 | 1.00 0.00 | 1.00 0.00 | 0.0 0.0 |
| Provider | Retrieve Method | RN | EN | EE | CER | AER | ExecErr |
|---|---|---|---|---|---|---|---|
| DeepSeek | edit_distance | 57 | 57 | 0.63 0.00 | 1.00 0.00 | 1.00 0.00 | 0.0 0.0 |
| GPT-4o | edit_distance | 57 | 57 | 0.63 0.00 | 1.00 0.00 | 1.00 0.00 | 0.0 0.0 |
| MiniMax-M2.5 | edit_distance | 57 | 57 | 0.63 0.00 | 1.00 0.00 | 1.00 0.00 | 0.0 0.0 |
| MiniMax-M2.7 | edit_distance | 57 | 57 | 0.63 0.00 | 1.00 0.00 | 1.00 0.00 | 0.0 0.0 |
| qwen3.5-plus | edit_distance | 57 | 57 | 0.63 0.00 | 1.00 0.00 | 1.00 0.00 | 0.0 0.0 |
| DeepSeek | token_overlap | 43 | 43 | 0.48 0.00 | 1.00 0.00 | 1.00 0.00 | 0.0 0.0 |
| Provider | Retrieve Method | RN | EN | EE | CER | AER | ExecErr |
|---|---|---|---|---|---|---|---|
| DeepSeek | edit_distance | 50 | 40 | 0.67 0.00 | 0.00 0.00 | 0.80 0.00 | 0.0 0.0 |
| GPT-4o | edit_distance | 50 | 40 | 0.67 0.00 | 0.00 0.00 | 0.80 0.00 | 0.0 0.0 |
| MiniMax-M2.5 | edit_distance | 50 | 50 | 0.83 0.00 | 0.17 0.03 | 0.98 0.02 | 0.0 0.0 |
| MiniMax-M2.7 | edit_distance | 50 | 50 | 0.83 0.00 | 0.19 0.08 | 0.98 0.02 | 0.0 0.0 |
| qwen3.5-plus | edit_distance | 50 | 40 | 0.67 0.00 | 0.00 0.00 | 0.80 0.00 | 0.0 0.0 |
| DeepSeek | token_overlap | 50 | 40 | 0.67 0.00 | 0.00 0.00 | 0.80 0.00 | 0.0 0.0 |
| Provider | Retrieve Method | RN | EN | EE | CER | AER | ExecErr |
|---|---|---|---|---|---|---|---|
| DeepSeek | edit_distance | 50 | 50.0 0.0 | 0.83 0.00 | 1.00 0.00 | 1.00 0.00 | 0.0 0.0 |
| GPT-4o | edit_distance | 50 | 50.0 0.0 | 0.83 0.00 | 1.00 0.00 | 1.00 0.00 | 0.0 0.0 |
| MiniMax-M2.5 | edit_distance | 50 | 43.0 5.0 | 0.72 0.08 | 0.29 0.02 | 0.29 0.02 | 0.0 0.0 |
| MiniMax-M2.7 | edit_distance | 50 | 50.0 0.0 | 0.83 0.00 | 0.31 0.03 | 0.32 0.02 | 0.0 0.0 |
| qwen3.5-plus | edit_distance | 50 | 50.0 0.0 | 0.83 0.00 | 0.80 0.00 | 1.00 0.00 | 0.0 0.0 |
| DeepSeek | token_overlap | 20 | 20.0 0.0 | 0.33 0.00 | 1.00 0.00 | 1.00 0.00 | 0.0 0.0 |
| Target | Provider | Size | RN | EN | EE | CER | AER | ExecErr |
|---|---|---|---|---|---|---|---|---|
| memory_ehr | DeepSeek | 100 | 45 | 45 | 0.38 0.00 | 1.00 0.00 | 1.00 0.00 | 0.0 0.0 |
| memory_ehr | GPT-4o | 100 | 45 | 45 | 0.38 0.00 | 1.00 0.00 | 1.00 0.00 | 0.0 0.0 |
| memory_ehr | MiniMax-M2.5 | 100 | 45 | 45 | 0.38 0.00 | 1.00 0.00 | 1.00 0.00 | 0.0 0.0 |
| memory_ehr | MiniMax-M2.7 | 100 | 45 | 45 | 0.38 0.00 | 1.00 0.00 | 1.00 0.00 | 0.0 0.0 |
| memory_ehr | qwen3.5-plus | 100 | 45 | 45 | 0.38 0.00 | 1.00 0.00 | 1.00 0.00 | 0.0 0.0 |
| memory_ehr | DeepSeek | 200 | 55 | 55 | 0.46 0.00 | 1.00 0.00 | 1.00 0.00 | 0.0 0.0 |
| Provider | Size | RN | EN | EE | CER | AER | ExecErr |
|---|---|---|---|---|---|---|---|
| DeepSeek | 20 | 20 | 20 | 0.33 0.00 | 0.20 0.00 | 0.80 0.00 | 0.0 0.0 |
| GPT-4o | 20 | 20 | 20 | 0.33 0.00 | 0.06 0.04 | 0.48 0.02 | 0.0 0.0 |
| MiniMax-M2.5 | 20 | 20 | 20 | 0.33 0.00 | 0.51 0.02 | 0.86 0.03 | 0.0 0.0 |
| MiniMax-M2.7 | 20 | 20 | 20 | 0.33 0.00 | 0.52 0.06 | 0.92 0.06 | 0.0 0.0 |
| qwen3.5-plus | 20 | 20 | 20 | 0.33 0.00 | 0.00 0.00 | 0.40 0.00 | 0.0 0.0 |
| DeepSeek | 30 | 30 | 21 | 0.35 0.00 | 0.20 0.00 | 0.60 0.00 | 0.0 0.0 |
| Target | Provider | RN | EN | EE | CER | AER | ExecErr | |
|---|---|---|---|---|---|---|---|---|
| memory_ehr | DeepSeek | 2 | 34 | 34 | 0.57 0.00 | 1.00 0.00 | 1.00 0.00 | 0.0 0.0 |
| memory_ehr | GPT-4o | 2 | 34 | 34 | 0.57 0.00 | 1.00 0.00 | 1.00 0.00 | 0.0 0.0 |
| memory_ehr | MiniMax-M2.5 | 2 | 34 | 34 | 0.57 0.00 | 1.00 0.00 | 1.00 0.00 | 0.0 0.0 |
| memory_ehr | MiniMax-M2.7 | 2 | 34 | 34 | 0.57 0.00 | 1.00 0.00 | 1.00 0.00 | 0.0 0.0 |
| memory_ehr | qwen3.5-plus | 2 | 34 | 34 | 0.57 0.00 | 1.00 0.00 | 1.00 0.00 | 0.0 0.0 |
| memory_ehr | DeepSeek | 4 | 55 | 55 | 0.46 0.00 | 1.00 0.00 | 1.00 0.00 | 0.0 0.0 |
| Provider | RN | EN | EE | CER | AER | ExecErr | |
|---|---|---|---|---|---|---|---|
| DeepSeek | 1 | 50 | |||||
| GPT-4o | 1 | 50 | |||||
| MiniMax-M2.5 | 1 | 50 | |||||
| MiniMax-M2.7 | 1 | 50 | |||||
| qwen3.5-plus | 1 | 50 | |||||
| DeepSeek | 2 | 50 |
| Provider | RN | EN | EE | CER | AER | ExecErr | |
|---|---|---|---|---|---|---|---|
| DeepSeek | 1 | 30 | |||||
| GPT-4o | 1 | 30 | |||||
| MiniMax-M2.5 | 1 | 30 | |||||
| MiniMax-M2.7 | 1 | 30 | |||||
| qwen3.5-plus | 1 | 30 | |||||
| DeepSeek | 2 | 50 |
| Target | Provider | Main (AER / CER) | Naive (AER / CER) |
|---|---|---|---|
| memory_ehr | MiniMax-M2.7 | 1.00 / 1.00 | 1.00 / 1.00 |
| memory_ehr | qwen3.5-plus | 1.00 / 1.00 | 0.00 / 0.00 |
| memory_ehr | GPT-4o | 1.00 / 1.00 | 1.00 / 1.00 |
| memory_rap | MiniMax-M2.7 | 1.00 / 1.00 | 0.00 / 0.00 |
| memory_rap | qwen3.5-plus | 1.00 / 1.00 | 0.00 / 0.00 |
| memory_rap | GPT-4o | 1.00 / 1.00 | 0.00 / 0.00 |
| Target | Provider | Full (AER / CER) | Highest-AER Variant |
|---|---|---|---|
| memory_ehr | MiniMax-M2.7 | 1.00 / 1.00 | 1.00 (multiple variants tied) |
| memory_ehr | qwen3.5-plus | 1.00 / 1.00 | 1.00 (multiple variants tied) |
| rag_ctrl | MiniMax-M2.7 | 0.95 / 0.55 | 0.98 ( full / tied best) |
| rag_ctrl | qwen3.5-plus | 0.89 / 0.45 | 1.00 ( no_diversification ) |
| tool_ctrl(return_echo,llm) | MiniMax-M2.7 | 0.37 / 0.37 | 0.37 ( full ) |
| tool_ctrl(return_echo,llm) | qwen3.5-plus | 0.40 / 0.40 | 0.40 ( full ) |
| Setting | Condition | AER / CER | Interpretation |
| memory_ehr qwen | audited reference at : 1.00 / 1.00 | Saturated across budgets | |
| rag_ctrl MiniMax-M2.7 | main-setting reference at : 0.9533 / 0.5467 | Frequent but incomplete leakage remains the qualitative pattern | |
| tool_ctrl(return_echo,llm) qwen3.5-plus | audited reference at : 0.40 / 0.40 | Moderate LLM-in-the-loop leakage remains observable under budget perturbation | |
| memory_ehr qwen | retries=1,2 | reference at retries=1: 1.00 / 1.00 | Stable under retries |
| rag_ctrl MiniMax-M2.7 | retries=1,2 | main-setting reference at retries=1: 0.9533 / 0.5467; higher CER also observed at retries=2 | Retries can increase leakage |
| tool_ctrl(return_echo,llm) qwen3.5-plus | retries=1,2 | reference at retries=1: 0.40 / 0.40 | High-leakage pattern preserved |
| Provider | attack echo AER | defense echo AER | attack args AER | defense args AER |
|---|---|---|---|---|
| MiniMax-M2.7 | 0.37 | 0.12 | 0.27 | 0.19 |
| GPT-4o | 1.00 | 0.20 | 0.99 | 0.46 |
| Setting | Check | Main reading |
|---|---|---|
| memory_ehr, qwen3.5-plus | budgets – | remains saturated throughout |
| rag_ctrl, MiniMax-M2.7 | budgets – | frequent but incomplete leakage persists |
| tool_ctrl (return_echo,llm), qwen3.5-plus | budgets – | moderate leakage remains observable |
| tool_ctrl (return_echo,llm), GPT-4o | defense prompting | AER drops sharply but does not define the main threat model |
| Metric | Value |
|---|---|
| labeled_samples | 200 |
| semantic_AER | 0.8550 |
| semantic_CER | 0.4100 |
| exact_any=0 & semantic=1 | 5 |
| exact_any=1 & semantic=2 | 82 |
| exact_any=0 & semantic=0 | 29 |
| Setting | Model/API, decoding, and seed configuration | Experiment window |
|---|---|---|
| Controlled CIPL (memory/tool) | MiniMax-M2.5/M2.7; MiniMax route api.minimaxi.com ; target code , max tokens ; top- and API seed not passed; pipeline seeds – . | 2026-03-18–03-24 |
| Controlled CIPL (memory/tool) | qwen3.5-plus; DashScope OpenAI-compatible route; target code , max tokens , enable_thinking=false ; top- and API seed not passed; pipeline seeds – . | 2026-03-18–03-24 |
| Controlled CIPL (memory/tool) | deepseek-chat; DeepSeek route api.deepseek.com ; target code , max tokens ; top- and API seed not passed; pipeline seeds – . | 2026-03-18–03-24 |
| Controlled CIPL (memory/tool) | gpt-4o; ai.wer.plus compatible route; target code , max tokens ; top- and API seed not passed; pipeline seeds – . | 2026-03-18–03-24 |
| BrowserUse | deepseek-chat; DeepSeek route api.deepseek.com ; wrapper temperature/top- /max tokens/API seed not passed (provider defaults); pipeline repetitions – . | 2026-04-06–04-09 |
| BrowserUse | qwen3.5-plus; DashScope OpenAI-compatible route; wrapper defaults , frequency penalty , max completion tokens ; top- /API seed not passed; pipeline repetitions – . | 2026-04-06–04-09 |
| Target | Provider | RN | EN | EE | CER | AER | ExecErr |
|---|---|---|---|---|---|---|---|
| browser_use (final_result) | DeepSeek | 29 | |||||
| browser_use (final_result) | GPT-4o | 29 | |||||
| browser_use (final_result) | MiniMax-M2.5 | 29 | |||||
| browser_use (final_result) | MiniMax-M2.7 | 29 | |||||
| browser_use (final_result) | qwen3.5-plus | 29 | |||||
| browser_use (process) | DeepSeek | 30 |
| Mode | Provider | RN | EN | EE | CER | AER | ExecErr |
|---|---|---|---|---|---|---|---|
| final_result | DeepSeek | 31 | |||||
| final_result | GPT-4o | 31 | |||||
| final_result | MiniMax-M2.5 | 31 | |||||
| final_result | MiniMax-M2.7 | 31 | |||||
| final_result | qwen3.5-plus | 31 | |||||
| process | DeepSeek | 38 |
| Ablation | Setting | Provider | RN | EN | EE | CER | AER | ExecErr |
|---|---|---|---|---|---|---|---|---|
| k Ablation | k=1 | DeepSeek | 18 | |||||
| k Ablation | k=1 | qwen3.5-plus | 18 | |||||
| k Ablation | k=2 | DeepSeek | 30 | |||||
| k Ablation | k=2 | qwen3.5-plus | 30 | |||||
| k Ablation | k=4 | DeepSeek | 46 | |||||
| k Ablation | k=4 | qwen3.5-plus | 46 |
| Human-audit sample size | 120 |
| Human raw agreement | 0.8917 |
| Human Cohen’s kappa | 0.4598 |
| Human disagreements adjudicated | 13 |
| Assessor–human agreement | 0.9250 |
| Assessor–human Cohen’s kappa | 0.3647 |
| Assessor precision (LEAKED) | 0.600 |
| Mode | Provider | RN | EN | EE | CER | AER | ExecErr |
|---|---|---|---|---|---|---|---|
| audit_deception | MiniMax-M2.5 | 154 | |||||
| audit_deception | MiniMax-M2.7 | 154 | |||||
| audit_deception | qwen3.5-plus | 154 | |||||
| audit_bypass | MiniMax-M2.5 | 154 | |||||
| audit_bypass | MiniMax-M2.7 | 154 | |||||
| audit_bypass | qwen3.5-plus | 154 |
Privacy Leakage in Language Models
Privacy leakage in language models concerns how models expose training data, infer sensitive traits, or transmit private context through outputs and internal channels.
See all 272 papers