{"slug": "keybound-auditoria-de-aislamiento-de-prompt-cache-en-relays-llm-multi-tenant", "title": "keybound: auditoria de aislamiento de prompt cache en relays LLM multi-tenant", "summary": "A developer released keybound, an open-source tool that audits prompt-cache isolation in multi-tenant LLM relays. It verifies the defense contract from the KeyPooling paper (arXiv:2608.17485) by detecting cross-tenant cache leaks, using real identity rather than cell labels. The tool runs formal E2 cells against a mock gateway and reports verdicts without exposing tenant keys or authorization headers.", "body_md": "Una herramienta que veredicta si el defense contract de arXiv:2608.17485 (KeyPooling) se cumple: en un relay multi-tenant, nadie lee cache escrito por otro tenant.\n\nEn un relay LLM que sirve a varios tenants con una sola credencial upstream, el\n\ndominio de cache puede **colapsar**: dos tenants distintos terminan compartiendo\n\nel mismo namespace de cache. El resultado es una fuga de información — el tenant\n\nB lee lo que el tenant A escribió, sin saberlo y sin permiso.\n\nEl paper *KeyPooling* (arXiv:2608.17485) define el defense contract:\n\n«a namespace derived from authenticated identity must survive every final\n\ncache lookup and write»\n\nEs decir: la identidad autenticada del tenant debe derivar un namespace que\n\npersista en **cada** lookup y escritura de cache. Si el relay no envía namespace\n\n(lo colapsa), el contrato se rompe.\n\nEjecuta las **células formales E2** del paper contra un gateway mock y veredicta\n\nel contrato:\n\n`collapse`\n\n: dominio único compartido → debe fallar (exit 1).`isolate`\n\n: namespace por tenant derivado del bearer → debe pasar (exit 0).El veredicto es por **identidad real**, no por la etiqueta de la célula. Un leak\n\nes cualquier lectura con `cached_tokens > 0`\n\ncuyo escritor (`hit_writer`\n\n) es un\n\ntenant distinto del lector. Esto lo hace **invariante al orden** de ejecución,\n\nincluida la permutación adversarial (la célula `cross`\n\nantes que las `cold`\n\n/`owner`\n\ndel otro tenant).\n\n```\nkeybound audit --fixture collapse\n# fixture: collapse | verdict: FAIL | defense_contract: not_satisfied\n# cause: 1 dominio(s); cross_con_leak=['A1-cold-prime', 'A2-owner-hot']\n```\n\nEl reporte **nunca** incluye claves de tenant ni el `Authorization`\n\nrecibido —\n\nsolo identificadores (tenant A/B, prompt P/R) y los dominios efectivos.\n\nEl desarrollo siguió el protocolo de la casa: implementación → auditoría\n\nindependiente en clon limpio → aprobación de merge. Tres bugs reales cazados y\n\ncorregidos en el camino:\n\n`cached_tokens`\n\nnegativo no validado`CellError`\n\n).`kind==\"cross\"`\n\n`cross`\n\nse\nejecutaba antes. Corregido por el camino de identidad real (`hit_writer`\n\n),\ndescubierto por la auditoría, no por self-report.Los tests corren contra un **gateway mock sintético** (sin red, determinista),\n\nno contra LiteLLM real — el fast suite valida la lógica del auditor, no\n\nreconfirma la vulnerabilidad en cada CI run. La vulnerabilidad real está\n\ndocumentada en `RESEARCH.md`\n\n/ `KNOWN_ISSUES.md`\n\ny se verifica con el adaptador\n\nNewAPI (roadmap v0.3).\n\n`ruff`\n\nlimpio, cobertura \n\n```\ngit clone https://github.com/amurlaniakea/keybound\ncd keybound\npython -m venv .venv && source .venv/bin/activate\npip install -e .\nkeybound audit --fixture collapse      # FAIL esperado\nkeybound audit --fixture isolate       # PASS esperado\n```\n\n*Licencia: AGPL-3.0-or-later — Copyright 2026 Pedro Sordo Martínez*", "url": "https://wpnews.pro/news/keybound-auditoria-de-aislamiento-de-prompt-cache-en-relays-llm-multi-tenant", "canonical_source": "https://dev.to/magopredator/keybound-auditoria-de-aislamiento-de-prompt-cache-en-relays-llm-multi-tenant-2pfe", "published_at": "2026-08-21 22:33:56+00:00", "updated_at": "2026-08-21 22:43:49.276531+00:00", "lang": "en", "topics": ["ai-infrastructure", "ai-safety", "ai-research", "developer-tools"], "entities": ["keybound", "arXiv:2608.17485", "KeyPooling", "NewAPI", "Pedro Sordo Martínez", "LiteLLM"], "alternates": {"html": "https://wpnews.pro/news/keybound-auditoria-de-aislamiento-de-prompt-cache-en-relays-llm-multi-tenant", "markdown": "https://wpnews.pro/news/keybound-auditoria-de-aislamiento-de-prompt-cache-en-relays-llm-multi-tenant.md", "text": "https://wpnews.pro/news/keybound-auditoria-de-aislamiento-de-prompt-cache-en-relays-llm-multi-tenant.txt", "jsonld": "https://wpnews.pro/news/keybound-auditoria-de-aislamiento-de-prompt-cache-en-relays-llm-multi-tenant.jsonld"}}