{
  "schema_version": 1,
  "builder_plan": {
    "scenario": "An agent reads external documents or tool responses that may contain malicious instructions.",
    "change": "Replay attacks and legitimate lookalikes in an isolated copy of your agent workflow.",
    "baseline": "Your existing checks with the same tasks, permissions, and tool responses.",
    "steps": [
      "Locate the paper's implementation and check its license, model support, data needs, and hardware requirements. Stop here if you cannot obtain the required artifacts.",
      "Save a small set of representative product tasks and expected outcomes. Keep evaluation tasks out of any training or tuning, and choose quality and cost limits before running.",
      "Run the baseline and the proposed change on identical inputs. Keep other settings fixed and repeat paired runs to expose variation.",
      "Save per-task outputs, failures, timings, and all usage costs. Review regressions before expanding the test."
    ],
    "measure": "Successful attacks missed, legitimate actions blocked, detection delay, and review cost.",
    "decision": "Keep the change only if it meets your preselected quality and latency limits and improves the metric you care about after setup and operating costs. Otherwise retain the baseline. This is an exploration plan, not a validated recommendation."
  },
  "builder_review": null,
  "arxiv_id": "2609.26900",
  "title": "Ajar: Measuring Open Privilege in Agent Defenses",
  "summary": "Ajar replaces the two-axis evaluation of agent defenses (attack success and benign utility) with a third axis that directly measures privilege left open, by injecting unneeded candidate tool calls into existing benchmarks such as AgentDojo. It costs benchmark instrumentation per task and additional evaluation runs on top of the benchmark the team already uses, plus engineering to generate valid-but-unnecessary tool calls from tool schemas and reference solutions. It can fail if the generated candidate calls do not reflect realistic privilege escalation in the team's actual tool surface, or if a defense appears tight only because it over-refuses legitimate calls, a trade-off the metric exposes but does not resolve.",
  "rationale": "For a small team deploying tool-using agents behind one GPU or third-party APIs, this is a low-cost evaluation add-on that can reveal which existing defense (Progent, CaMeL, AC4A, and similar) minimizes standing privilege, but its candidate-call generation must be validated against the team's own tools and tasks before it guides production choices.",
  "technique": "Open-privilege measurement for agent security defenses",
  "family": "seguranca_e_guardrails",
  "recommendation": "testar",
  "published": "2026-09-22",
  "as_of": "2026-10-18",
  "editorial_status": "indexed",
  "source_url": "https://arxiv.org/abs/2609.26900",
  "independent_implementations": 2,
  "total_implementations": 3,
  "stars": 1,
  "citations": 0,
  "claims": [
    {
      "claim_id": "claim-01",
      "statement": "Ajar replaces the two-axis evaluation of agent defenses (attack success and benign utility) with a third axis that directly measures privilege left open, by injecting unneeded candidate tool calls into existing benchmarks such as AgentDojo. It costs benchmark instrumentation per task and additional evaluation runs on top of the benchmark the team already uses, plus engineering to generate valid-but-unnecessary tool calls from tool schemas and reference solutions. It can fail if the generated candidate calls do not reflect realistic privilege escalation in the team's actual tool surface, or if a defense appears tight only because it over-refuses legitimate calls, a trade-off the metric exposes but does not resolve.",
      "basis": "inferred",
      "result": "",
      "baseline": "",
      "conditions": "",
      "source_url": "https://arxiv.org/abs/2609.26900",
      "source_page": null,
      "source_excerpt": ""
    }
  ],
  "exposure_map": [
    {
      "dimension": "quality",
      "basis": "not_evaluated",
      "finding": "",
      "interpretation": "",
      "limitation": "",
      "next_check": "",
      "source_url": "",
      "source_page": null,
      "source_excerpt": ""
    },
    {
      "dimension": "compute",
      "basis": "not_evaluated",
      "finding": "",
      "interpretation": "",
      "limitation": "",
      "next_check": "",
      "source_url": "",
      "source_page": null,
      "source_excerpt": ""
    },
    {
      "dimension": "latency",
      "basis": "not_evaluated",
      "finding": "",
      "interpretation": "",
      "limitation": "",
      "next_check": "",
      "source_url": "",
      "source_page": null,
      "source_excerpt": ""
    },
    {
      "dimension": "operations",
      "basis": "not_evaluated",
      "finding": "",
      "interpretation": "",
      "limitation": "",
      "next_check": "",
      "source_url": "",
      "source_page": null,
      "source_excerpt": ""
    },
    {
      "dimension": "compatibility",
      "basis": "not_evaluated",
      "finding": "",
      "interpretation": "",
      "limitation": "",
      "next_check": "",
      "source_url": "",
      "source_page": null,
      "source_excerpt": ""
    },
    {
      "dimension": "security",
      "basis": "not_evaluated",
      "finding": "",
      "interpretation": "",
      "limitation": "",
      "next_check": "",
      "source_url": "",
      "source_page": null,
      "source_excerpt": ""
    },
    {
      "dimension": "data_and_training",
      "basis": "not_evaluated",
      "finding": "",
      "interpretation": "",
      "limitation": "",
      "next_check": "",
      "source_url": "",
      "source_page": null,
      "source_excerpt": ""
    },
    {
      "dimension": "reproducibility",
      "basis": "not_evaluated",
      "finding": "",
      "interpretation": "",
      "limitation": "",
      "next_check": "",
      "source_url": "",
      "source_page": null,
      "source_excerpt": ""
    }
  ],
  "risks": [],
  "minimum_test": [],
  "open_questions": [],
  "independent_tests": [],
  "lab_reproductions": [],
  "report_available": false,
  "validation_tier": "unknown",
  "evidence_tier": "unknown",
  "infrastructure_basis": "unknown",
  "equations": [],
  "equations_status": "not_fetched",
  "core_kind": "",
  "equations_fetched_at": "",
  "equations_source_url": "",
  "equations_source_sha256": "",
  "exposures_reviewed_at": "",
  "exposures_source_sha256": ""
}