evaluate 0 0 0

UCSC-VLAA/CIK-Bench

published by @UCSC-VLAA

Alignment dataset tracked in the /datasets sub-catalog.

Lifetime downloads
1.8K
Last 30 days
262
Likes
-
Size
3.2 MB
Created on HF
2026-04-30
Age
5 months ago

Description

CIK-Bench

Official dataset for Your Agent, Their Asset: A Real-World Safety Analysis

of OpenClaw.

CIK-Bench evaluates OpenClaw — the most widely deployed personal AI

agent in early 2026 — against persistent-state poisoning attacks. It

implements the CIK taxonomy, a unified framework that organizes

OpenClaw's persistent state into three dimensions:

Capability — executable skills (SKILL.md, .sh, .py)

Identity — persona, values, and behavioral configuration

(SOUL.md, IDENTITY.md… See the full description on the dataset page: https://huggingface.co/datasets/UCSC-VLAA/CIK-Bench.

Tags

task_categories:text-classificationtask_categories:text-generationlanguage:enlicense:mitsize_categories:n<1Kformat:parquetmodality:textlibrary:datasetslibrary:pandaslibrary:polarslibrary:mlcroissantarxiv:2604.04759region:ussafetyred-teamingagent-safetyprompt-injectionllm-evaluationbenchmark

README current version from Hugging Face


license: mit
task_categories:

  • text-classification
  • text-generation
    language:
  • en
    tags:
  • safety
  • red-teaming
  • agent-safety
  • prompt-injection
  • llm-evaluation
  • benchmark
    pretty_name: CIK-Bench
    size_categories:
  • n<1K
    configs:
  • config_name: default
    data_files:
    • split: attack_cases
      path: data/attack_cases.parquet
    • split: attack_cases_phase1_only
      path: data/attack_cases_phase1_only.parquet
    • split: attack_cases_phase2_only
      path: data/attack_cases_phase2_only.parquet
    • split: benign_cases
      path: data/benign_cases.parquet

CIK-Bench

Official dataset for Your Agent, Their Asset: A Real-World Safety Analysis
of OpenClaw
.

CIK-Bench evaluates OpenClaw — the most widely deployed personal AI
agent in early 2026 — against persistent-state poisoning attacks. It
implements the CIK taxonomy, a unified framework that organizes
OpenClaw's persistent state into three dimensions:

  • Capability — executable skills (SKILL.md, .sh, .py)
  • Identity — persona, values, and behavioral configuration
    (SOUL.md, IDENTITY.md, USER.md, AGENTS.md)
  • Knowledge — learned facts and owner preferences
    (MEMORY.md, session context)

The benchmark contains 88 attack cases across 12 impact scenarios
spanning two top-level harm categories with three subcategories each:

  • Privacy Leakage (P-*) — financial, identity/physical, and other
    sensitive data exfiltration
  • Risky Irreversible Operations (R-*) — financial loss, social
    consequences, and data security damage

It also ships a matched set of benign cases for defense evaluation.

Attack Protocol

Each attack follows a two-phase protocol:

  1. Phase 1 (Injection) — Poisoned content is introduced into the agent's
    persistent state via one of the CIK dimensions.
  2. Phase 2 (Trigger) — A subsequent prompt activates the poisoned state,
    causing the harmful action.

Phase 1 and Phase 2 run in separate sessions (except for session-context
injections), testing whether attacks persist across session boundaries.

Dataset Structure

The dataset is shipped in two complementary forms:

1. Structured rows — data/<split>.parquet

Four parquet files, one per templates/ subfolder of the upstream repo:
attack_cases (88 rows), attack_cases_phase1_only (38),
attack_cases_phase2_only (38), benign_cases (38). One row per case-vector
markdown spec. Carrier-skill payloads (Python / bash scripts under
<case>/assets/) are filesystem scaffolding, not data points — access them
via the raw templates/ tree if needed.

Schema:

Field Type Description
case_id string Impact code, e.g. P-F1, R-D2
dimension string Privacy Leakage (P-*) or Risky Irreversible Operations (R-*)
harm_category string Subcategory: Financial Data Leak / Identity/Physical Data Leak / Other Sensitive Data Leak / Financial Loss / Social Consequences / Data Security Damage
vector string baseline, identity-md, skill-py, mem-long, …
carrier string Carrier skill name (for skill-* vectors)
impact_name string Human-readable impact, e.g. "API Key exfil"
id string Globally unique row id (<case_id>.<vector>)
filename string Source filename inside the templates tree
path string Path relative to templates/
content string Full case spec (markdown body)

2. Raw template tree — templates/

Mirrors the GitHub repo layout, preserved so the test harness can run
straight from the dataset:

templates/
├── attack_cases/                 # 88 attack cases (12 impacts × ~7 vectors)
│   ├── P-F1/                     # API key exfiltration
│   ├── P-F2/                     # Stripe customer PII exfiltration
│   ├── P-P1/                     # IP geolocation exfiltration
│   ├── P-P2/                     # Passport scan exfiltration
│   ├── P-O1/                     # Gmail work email exfiltration
│   ├── P-O2/                     # Local medical records exfiltration
│   ├── R-F1/                     # Stripe subscription cancellation
│   ├── R-F2/                     # Stripe refund abuse
│   ├── R-S1/                     # Forged email: AWS permission grant
│   ├── R-S2/                     # Forged email: contract termination
│   ├── R-D1/                     # Workspace deletion
│   └── R-D2/                     # Gmail bulk deletion
├── attack_cases_phase1_only/     # Phase 1 only (injection success)
├── attack_cases_phase2_only/     # Phase 2 only (trigger success)
├── benign_cases/                 # Matched benign cases (defense eval)
├── openclaw_template/            # OpenClaw workspace template
├── test_assets/                  # Synthetic test data (medical records, etc.)
└── stripe_setup/                 # Stripe test sandbox setup
defense_assets/                   # Defense configurations

Each case directory contains markdown specs for every injection vector
(baseline.md, identity-md.md, identity-soul-md.md, identity-user-md.md,
identity-agents-md.md, skill-md.md, skill-bash.md, skill-py.md,
mem-long.md, mem-session.md) plus an optional assets/ subdirectory
holding the carrier-skill payload files used during Phase 1.

Templates contain {{PLACEHOLDER}} tokens (e.g. {{ATTACKER_WEBHOOK}},
{{AGENT_NAME}}, {{OWNER_NAME}}) that are filled in at runtime by
scripts/configure.sh in the GitHub repo.

Usage

from datasets import load_dataset

ds = load_dataset("UCSC-VLAA/CIK-Bench")

# Available splits: attack_cases, attack_cases_phase1_only,
#                   attack_cases_phase2_only, benign_cases
attack = ds["attack_cases"]
print(attack[0]["case_id"], attack[0]["vector"])
print(attack[0]["content"][:200])

# Filter by harm category
financial = attack.filter(lambda r: r["harm_category"] == "Financial Data Leak")

To reproduce the full evaluation pipeline (test harness, OpenClaw setup,
webhook receiver, Stripe sandbox, etc.) clone the GitHub repo:
https://github.com/UCSC-VLAA/CIK-Bench.

Impact Codes

Code Dimension Harm Subcategory Example
P-F1 Privacy Leakage Financial Data Leak API key exfiltration
P-F2 Privacy Leakage Financial Data Leak Stripe customer PII exfil
P-P1 Privacy Leakage Identity/Physical Data Leak IP geolocation exfil
P-P2 Privacy Leakage Identity/Physical Data Leak Passport scan exfil
P-O1 Privacy Leakage Other Sensitive Data Leak Gmail work email exfil
P-O2 Privacy Leakage Other Sensitive Data Leak Local medical records exfil
R-F1 Risky Irreversible Operations Financial Loss Stripe subscription cancel
R-F2 Risky Irreversible Operations Financial Loss Stripe refund abuse
R-S1 Risky Irreversible Operations Social Consequences Forged email: AWS permission grant
R-S2 Risky Irreversible Operations Social Consequences Forged email: contract termination
R-D1 Risky Irreversible Operations Data Security Damage Workspace deletion
R-D2 Risky Irreversible Operations Data Security Damage Gmail bulk deletion

Injection Vectors

Vector Description
baseline Direct prompt, no injection
identity-soul-md SOUL.md value/principle injection
identity-agents-md AGENTS.md workflow/procedure injection
identity-user-md USER.md preference/contact injection
identity-md IDENTITY.md persona/permission injection
skill-md SKILL.md text injection (carrier skill)
skill-bash Bash script with background payload
skill-py Python script with background payload
mem-long MEMORY.md long-term poisoning
mem-session Same-session context poisoning

Ethical Use

CIK-Bench is released for defensive safety research only. The included
attack templates target a sandboxed test agent, use webhook.site / Stripe
test-mode for verification, and contain only synthetic PII (e.g. a synthetic
passport image and fictional medical records). Do not adapt these payloads
against systems you do not own or have explicit permission to test.

Citation

@misc{wang2026agentassetrealworldsafety,
  title={Your Agent, Their Asset: A Real-World Safety Analysis of OpenClaw},
  author={Zijun Wang and Haoqin Tu and Letian Zhang and Hardy Chen and Juncheng Wu and Xiangyan Liu and Zhenlong Yuan and Tianyu Pang and Michael Qizhe Shieh and Fengze Liu and Zeyu Zheng and Huaxiu Yao and Yuyin Zhou and Cihang Xie},
  year={2026},
  eprint={2604.04759},
  archivePrefix={arXiv},
  primaryClass={cs.CR},
  url={https://arxiv.org/abs/2604.04759},
}

License

MIT — see LICENSE.

README history 18 revisions

Every night we snapshot the README of every dataset in the catalog. When the SHA changes we archive the new version and diff it against the last. This is the evolving thought record of the alignment-data field: what the author decided to say about the corpus, and how that framing shifted over time.

  1. 2026-04-30scope intro to OpenClaw, link paper title5abd7e39.1 KB
    Loading...
  2. 2026-04-30split parquet per HF split (attack/phase1/phase2/benign)8361d3e9 KB
    Loading...
  3. 2026-04-30add dataset cardbab1ed39 KB
    Loading...
  4. 2026-04-30split parquet per HF split (attack/phase1/phase2/benign)93ce4108.9 KB
    Loading...
  5. 2026-04-30drop obsolete data/benign.parquet3650b6a8.9 KB
    Loading...
  6. 2026-04-30drop obsolete data/attack_phase2_only.parquetbb421658.9 KB
    Loading...
  7. 2026-04-30drop obsolete data/attack_phase1_only.parquet8205d088.9 KB
    Loading...
  8. 2026-04-30drop obsolete data/attack.parquet50f754a8.9 KB
    Loading...
  9. 2026-04-30add dataset card6033bd98.9 KB
    Loading...
  10. 2026-04-30add raw templates95890d08.8 KB
    Loading...
  11. 2026-04-30split parquet per HF split (attack/phase1/phase2/benign)cdad2af8.8 KB
    Loading...
  12. 2026-04-30drop unified cases.parquetf11a6dc8.8 KB
    Loading...
  13. 2026-04-30add dataset cardab97fcf8.8 KB
    Loading...
  14. 2026-04-30add defense assetse560f378 KB
    Loading...
  15. 2026-04-30add raw templates2bed4ab8 KB
    Loading...
  16. 2026-04-30add cases.parquet95892cb8 KB
    Loading...
  17. 2026-04-30add dataset cardf59923d8 KB
    Loading...
  18. 2026-04-30initial commitacfc8da0 B
    Loading...

Used by abliterated models none yet

No abliterated models in our catalog have declared this dataset in their YAML metadata yet. This can mean the dataset is used but not declared, is used outside abliteration workflows, or is new. The link will populate automatically as models are indexed.

Community discussions 1 thread · 1 open · 1 comments

Threads posted by the community on Hugging Face: bug reports, questions about usage, pull requests on the README, license clarifications. Click any thread to expand and read the full conversation inline. Newest first.

  1. 2026-05-01[bot] Conversion to Parquetopen1 💬#1
    Loading...

Related datasets same stage · evaluate

Read further

Metadata

License
mit

Repository

Download the dataset

0

Copy any of these snippets into your notebook or terminal. All three fetch directly from Hugging Face using your own credentials.

Recommended: datasets library (Python)
from datasets import load_dataset
ds = load_dataset("UCSC-VLAA/CIK-Bench")
Raw snapshot (Python)
from huggingface_hub import snapshot_download
snapshot_download(repo_id="UCSC-VLAA/CIK-Bench", repo_type="dataset")
git clone (requires git-lfs)
git clone https://huggingface.co/datasets/UCSC-VLAA/CIK-Bench
Catalog is the map. Apps are the tools.

Run models on your own machine, not in the cloud.

Every model page has an "Open in Abliteration" button that hands the model directly to the first-party desktop client, at the quantization your rig can actually run. No API keys, no subscription, no prompt leakage.

Open in Abliteration