PhishNChips: A Benchmark for LLM Email-Agent Security
1
4 commits
1 linked in READMEs
updated Apr 18, 2026
PhishNChips is a large-scale benchmark for evaluating how system prompt configurations influence the security behavior of LLM-based email agents. This repository contains the canonical v5.2 release, featuring 2,000 email stimuli and 220,000 adjudicated model evaluations.
The benchmark measures a critical deployment variable: how strongly an LLM's system prompt shapes its phishing detection capabilities and false-positive characteristics. PhishNChips provides a controlled environment to study the trade-offs between security, helpfulness, and instruction following in agentic systems.
| File | Description |
|---|---|
core_emails.csv | The primary 2,000-email benchmark stimuli. |
benchmark_results.csv | Full result grid (11 models x 10 strategies x 2,000 emails). |
reference_results.csv | Summary metrics and leaderboard rankings. |
prompt_strategies.json | Detailed definitions of the 10 evaluated system prompts. |
cross_domain_legitimate_v5.csv | Dedicated split for cross-domain false-positive analysis. |
infrastructure_phishing_expanded.csv | Auxiliary split for infrastructure-level stress testing. |
real_phishing_validation.csv | Historical real-phishing validation set (Nazario). |
croissant.json | Machine-readable metadata (MLCommons Croissant format). |
SOURCE_LICENSES.md | Comprehensive provenance and licensing documentation. |
The dataset is organized into two configs because the email stimuli and the model-evaluation results have different schemas:
from datasets import load_dataset
# Email stimuli (one row per email): id, url_raw, phish_label, email_content,
# strategy, url_category, datasource, model_used
emails = load_dataset("AreLit/PhishNChips", "emails", split="core")
cross_domain = load_dataset("AreLit/PhishNChips", "emails", split="cross_domain_legitimate_v5")
infra_phish = load_dataset("AreLit/PhishNChips", "emails", split="infrastructure_phishing_expanded")
nazario = load_dataset("AreLit/PhishNChips", "emails", split="real_phishing_validation")
# Adjudicated model evaluations (one row per model x strategy x sample):
# sample_id, model, strategy, true_label, prediction, correct, raw_response, error
results = load_dataset("AreLit/PhishNChips", "results", split="benchmark_results")
reference_results.csv, prompt_strategies.json, croissant.json, and SOURCE_LICENSES.md are not exposed as datasets splits; download them directly from the file list.
The benchmark leverages high-quality, verified data from several major security feeds and research utilities:
| Datasource | Count | Category |
|---|---|---|
phishtank | 700 | Phishing |
tranco | 662 | Legitimate |
cross_domain_expansion_v1 | 333 | Legitimate |
github_phishing_db_live | 172 | Phishing |
github_phishing_db | 62 | Phishing |
openphish | 66 | Phishing |
adversarial_legit | 5 | Legitimate |
This dataset contains real malicious URL indicators. Treat all URLs as offline text strings only. Do not visit, crawl, or execute URLs from this repository. This resource is intended strictly for security research and defensive evaluation.
The PhishNChips benchmark project code and synthetic content are released under an MIT License.
However, the dataset incorporates third-party-derived malicious URL indicators and benign domain seeds. These components are redistributed for academic research with attribution. Review SOURCE_LICENSES.md for full citations and provenance details.
During active conference review, this public mirror minimizes direct author-identifying citation metadata. A neutral provisional citation is:
@misc{phishnchips2026benchmark,
title={PhishNChips: A Benchmark for Evaluating LLM Email-Agent Security Under Deployment Configuration Variation},
year={2026},
note={Public benchmark release; full bibliographic metadata restored after review}
}
3 commits
1 commits
PhishNChips: A Benchmark for LLM Email-Agent Security
1
4 commits
1 linked in READMEs
updated Apr 18, 2026
PhishNChips is a large-scale benchmark for evaluating how system prompt configurations influence the security behavior of LLM-based email agents. This repository contains the canonical v5.2 release, featuring 2,000 email stimuli and 220,000 adjudicated model evaluations.
The benchmark measures a critical deployment variable: how strongly an LLM's system prompt shapes its phishing detection capabilities and false-positive characteristics. PhishNChips provides a controlled environment to study the trade-offs between security, helpfulness, and instruction following in agentic systems.
| File | Description |
|---|---|
core_emails.csv | The primary 2,000-email benchmark stimuli. |
benchmark_results.csv | Full result grid (11 models x 10 strategies x 2,000 emails). |
reference_results.csv | Summary metrics and leaderboard rankings. |
prompt_strategies.json | Detailed definitions of the 10 evaluated system prompts. |
cross_domain_legitimate_v5.csv | Dedicated split for cross-domain false-positive analysis. |
infrastructure_phishing_expanded.csv | Auxiliary split for infrastructure-level stress testing. |
real_phishing_validation.csv | Historical real-phishing validation set (Nazario). |
croissant.json | Machine-readable metadata (MLCommons Croissant format). |
SOURCE_LICENSES.md | Comprehensive provenance and licensing documentation. |
The dataset is organized into two configs because the email stimuli and the model-evaluation results have different schemas:
from datasets import load_dataset
# Email stimuli (one row per email): id, url_raw, phish_label, email_content,
# strategy, url_category, datasource, model_used
emails = load_dataset("AreLit/PhishNChips", "emails", split="core")
cross_domain = load_dataset("AreLit/PhishNChips", "emails", split="cross_domain_legitimate_v5")
infra_phish = load_dataset("AreLit/PhishNChips", "emails", split="infrastructure_phishing_expanded")
nazario = load_dataset("AreLit/PhishNChips", "emails", split="real_phishing_validation")
# Adjudicated model evaluations (one row per model x strategy x sample):
# sample_id, model, strategy, true_label, prediction, correct, raw_response, error
results = load_dataset("AreLit/PhishNChips", "results", split="benchmark_results")
reference_results.csv, prompt_strategies.json, croissant.json, and SOURCE_LICENSES.md are not exposed as datasets splits; download them directly from the file list.
The benchmark leverages high-quality, verified data from several major security feeds and research utilities:
| Datasource | Count | Category |
|---|---|---|
phishtank | 700 | Phishing |
tranco | 662 | Legitimate |
cross_domain_expansion_v1 | 333 | Legitimate |
github_phishing_db_live | 172 | Phishing |
github_phishing_db | 62 | Phishing |
openphish | 66 | Phishing |
adversarial_legit | 5 | Legitimate |
This dataset contains real malicious URL indicators. Treat all URLs as offline text strings only. Do not visit, crawl, or execute URLs from this repository. This resource is intended strictly for security research and defensive evaluation.
The PhishNChips benchmark project code and synthetic content are released under an MIT License.
However, the dataset incorporates third-party-derived malicious URL indicators and benign domain seeds. These components are redistributed for academic research with attribution. Review SOURCE_LICENSES.md for full citations and provenance details.
During active conference review, this public mirror minimizes direct author-identifying citation metadata. A neutral provisional citation is:
@misc{phishnchips2026benchmark,
title={PhishNChips: A Benchmark for Evaluating LLM Email-Agent Security Under Deployment Configuration Variation},
year={2026},
note={Public benchmark release; full bibliographic metadata restored after review}
}
3 commits
1 commits