Test any LLM against the Bordair multimodal prompt injection dataset (503K+ labeled samples)
Project description
Bordair CLI
Test any LLM against the Bordair multimodal prompt injection dataset - 503,358 labeled samples from 40+ academic papers, CVE reports, and competition datasets.
Install
One-liner (installer auto-detects Python or Node):
curl -sSL https://bordair.io/install.sh | bash
Or directly:
# Python
pip install bordair
# Node (feature-equivalent)
npm install -g bordair
Quickstart
# Check dataset stats
bordair stats
# Run 100 text-only attacks against GPT-4o-mini
bordair eval \
--url https://api.openai.com/v1/chat/completions \
--key $OPENAI_API_KEY \
--model gpt-4o-mini \
--limit 100 \
--parallel 10
# Test a local Ollama instance
bordair eval \
--url http://localhost:11434/v1/chat/completions \
--key ollama \
--model llama3.1 \
--modality text \
--category direct_override \
--limit 50
# Test Anthropic's native API
bordair eval \
--url https://api.anthropic.com/v1/messages \
--key $ANTHROPIC_API_KEY \
--model claude-sonnet-4-5 \
--provider anthropic \
--limit 100
# Include benign samples to measure false-positive rate
bordair eval \
--url https://api.openai.com/v1/chat/completions \
--key $OPENAI_API_KEY \
--model gpt-4o-mini \
--include-benign \
--limit 100 \
--output results.json
# Compare two runs
bordair compare results_before.json results_after.json
Options
--url API endpoint URL (OpenAI-compatible by default)
--key API key (or set BORDAIR_API_KEY)
--model Model name (gpt-4o-mini, claude-sonnet-4-5, llama3.1, etc.)
--provider openai | anthropic (default: openai)
--modality text, text+image, text+document, text+audio, triple, etc.
--category Filter to specific attack category (see `bordair list categories`)
--version Filter to v1, v2, v3, v4, or v5
--limit Max payloads to test (default: 100)
--parallel Concurrent requests (default: 10)
--timeout Request timeout in seconds (default: 60)
--max-tokens Max response tokens (default: 512)
--system-prompt Optional system prompt (tests application-layer injection)
--include-benign Run benign samples to measure false-positive rate
--output Write full results JSON to this path
What it does
- Downloads the dataset from HuggingFace on first run (~50MB, cached at
~/.cache/bordair/) - Sends the selected attack payloads to your target LLM endpoint with the specified parallelism
- Judges each response using category-specific heuristics (compliance prefix, system prompt leak, exfiltration URL echo, tool call patterns, etc.)
- Reports Attack Success Rate (ASR) by category
- Optionally measures false-positive rate on benign samples
Supported providers
Any OpenAI-compatible API works out of the box:
- OpenAI (
https://api.openai.com/v1/chat/completions) - Anthropic via OpenAI-compatible shim, or use
--provider anthropicfor native API - Azure OpenAI
- Groq (
https://api.groq.com/openai/v1/chat/completions) - Together AI
- Fireworks
- Ollama (
http://localhost:11434/v1/chat/completions) - LM Studio (
http://localhost:1234/v1/chat/completions) - vLLM
- Any other OpenAI-compatible endpoint
Categories
55+ attack categories across 5 versions. See full list:
bordair list categories
Highlights:
- v1: direct override, exfiltration, DAN jailbreak, authority impersonation, encoding obfuscation
- v2: GCG adversarial suffixes, AutoDAN, Crescendo multi-turn, PAIR, TAP, Skeleton Key
- v3: indirect injection, tool call injection, homoglyph/unicode, code-switch, ASCII art
- v4: computer use injection, memory poisoning, MCP tool injection, reasoning token injection, BEAST suffixes
- v5: reasoning DoS, video generation jailbreak, VLA robotic, LoRA supply chain, audio-native LLM, serialization boundary RCE (CVE-2025-68664)
Dataset
- HuggingFace: https://huggingface.co/datasets/Bordair/bordair-multimodal
- GitHub: https://github.com/Josh-blythe/bordair-multimodal
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file bordair-0.1.1.tar.gz.
File metadata
- Download URL: bordair-0.1.1.tar.gz
- Upload date:
- Size: 15.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ad195feadf5adde3a8fc72fa74f10e6ad43110cbef9dafccf6540f89a5fe1cd5
|
|
| MD5 |
915b9a1cae1ed900b1e6290abe30c9b3
|
|
| BLAKE2b-256 |
4fd6bde11c603d607e44bad4138b85fb4599d016b0b151f59f1c4b79e00275dc
|
File details
Details for the file bordair-0.1.1-py3-none-any.whl.
File metadata
- Download URL: bordair-0.1.1-py3-none-any.whl
- Upload date:
- Size: 15.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b8f9804ec810b83a4fb0644a8bf9d942c5982bb63f596c9440b85e27dea6bf8c
|
|
| MD5 |
43d6bf06c7241759690ca85819f57805
|
|
| BLAKE2b-256 |
d17b056462bf6d1f5ee3484517f070cf9e991dc3484867078771c76e288c5a27
|