Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/01_ave_submission.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ assignees: ''

## Before you open this issue

- [ ] I have searched the registry at ave.bawbel.io and the `records/` directory
- [ ] I have searched the registry at aveproject.org and the `records/` directory
- [ ] This is a genuinely distinct behavioral class, not a variant of an existing record
- [ ] I have a citable primary source (CVE, paper, disclosure, or working PoC)

Expand Down
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,8 @@ docs/agents/handoffs/
.DS_Store
node_modules/
.coverage

# local planning/scratch docs, not for the repo
AVE_ORG_MOVE_CHECKLIST.md
AVE_PROJECT_CLEANUP_TASKS.md
AVE_V1.1.0_MIGRATION_BRIEF.md
4 changes: 2 additions & 2 deletions ARCHITECTURE.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# ARCHITECTURE.md — bawbel/ave
# ARCHITECTURE.md — aveproject/ave

Update this file before closing any PR that changes the record structure,
adds a new rule engine category, or changes how records and rules relate.
Expand Down Expand Up @@ -52,7 +52,7 @@ false-positive risk with no guard.
## How the scanner consumes this repo

```
bawbel/ave (this repo) bawbel/scanner (consumer)
aveproject/ave (this repo) bawbel/scanner (consumer)
────────────────────── ─────────────────────────
records/*.json ──load──▶ AVE record lookup
rules/pattern/*.py ──load──▶ PatternEngine
Expand Down
10 changes: 5 additions & 5 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# CLAUDE.md — bawbel/ave
# CLAUDE.md — aveproject/ave

Read this file completely before touching anything.
Single source of truth for how work happens in this repo.
Expand All @@ -7,13 +7,13 @@ Single source of truth for how work happens in this repo.

## Project

bawbel/ave — the behavioral classification standard for agentic AI components.
aveproject/ave — the behavioral classification standard for agentic AI components.
An independent standard that bawbel-scanner implements. NOT a feature of the scanner.

- Records: 51 published (schema_version 1.1.0)
- Records: 56 published (schema_version 1.1.0)
- Schema: schema/ave-record-1.1.0.schema.json
- Scoring: OWASP AIVSS v0.8
- Registry: ave.bawbel.io
- Registry: aveproject.org
- Public API: api.piranha.bawbel.io
- Scanner: github.com/bawbel/scanner (reference implementation)

Expand Down Expand Up @@ -75,7 +75,7 @@ behavioral_vector · mutation_count · detection_methodology
kill_switch_active · aivss_score · cvss_base_vector
researcher_url · last_updated

Full reference: ave.bawbel.io/schema.html
Full reference: aveproject.org/schema.html

---

Expand Down
8 changes: 4 additions & 4 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ contribution makes AI agents safer for everyone.

## Before you start

1. **Search the registry** at [ave.bawbel.io/registry.html](https://ave.bawbel.io/registry.html)
1. **Search the registry** at [aveproject.org/registry.html](https://aveproject.org/registry.html)
and the `records/` directory for existing coverage of the attack class
you have in mind. Check `behavioral_fingerprint` values, not just titles —
the same class appears under many names across different tools.
Expand All @@ -38,7 +38,7 @@ contribution makes AI agents safer for everyone.
4. **Read the schema** at
[`schema/ave-record-1.1.0.schema.json`](schema/ave-record-1.1.0.schema.json)
for field definitions, types, and required/optional status. The schema
reference page is at [ave.bawbel.io/schema.html](https://ave.bawbel.io/schema.html).
reference page is at [aveproject.org/schema.html](https://aveproject.org/schema.html).

---

Expand All @@ -59,7 +59,7 @@ or a variant update before you write any JSON.
### Step 2 -- Fork and create the record

```bash
git clone https://github.com/bawbel/ave
git clone https://github.com/aveproject/ave
cd ave
git checkout -b feat/AVE-2026-NNNNN-attack-class
cp records/AVE-2026-00001.json records/AVE-2026-NNNNN.json
Expand Down Expand Up @@ -235,5 +235,5 @@ name. Records are immutable once published — your attribution stays forever.

## Questions

Open a [GitHub Discussion](https://github.com/bawbel/ave/discussions) or
Open a [GitHub Discussion](https://github.com/aveproject/ave/discussions) or
email [bawbel.io@gmail.com](mailto:bawbel.io@gmail.com).
2 changes: 1 addition & 1 deletion GOVERNANCE.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# GOVERNANCE.md — bawbel/ave
# GOVERNANCE.md — aveproject/ave

## Project lead

Expand Down
2 changes: 1 addition & 1 deletion LANGUAGE.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# LANGUAGE.md — bawbel/ave Domain Language
# LANGUAGE.md — aveproject/ave Domain Language

All names in this repo must come from this file.
Terms shared with bawbel/scanner are marked (shared).
Expand Down
10 changes: 5 additions & 5 deletions PRODUCT.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# PRODUCT.md — bawbel/ave
# PRODUCT.md — aveproject/ave

Internal product context for Claude Code sessions. Not published.

Expand Down Expand Up @@ -42,11 +42,11 @@ an identity.

| | |
|---|---|
| Records published | 51 (schema_version 1.1.0) |
| Records published | 56 (schema_version 1.1.0) |
| Schema version | 1.1.0 (canonical, published) |
| Registry | ave.bawbel.io (live) |
| Registry | aveproject.org (live) |
| Threat intel API | api.piranha.bawbel.io |
| Site repo | github.com/bawbel/ave-site |
| Site repo | github.com/aveproject/ave-site |
| Latest release | v1.1.0 |

---
Expand Down Expand Up @@ -132,7 +132,7 @@ The adoption path:
Target: ~60-65 high-quality records by Product Hunt, reached deliberately.
Do not push to 100. Research shows ~25-35 genuinely distinct behavioral
classes exist (MCPSecBench 17, Formal Security Framework 23, Hou et al 16,
MCP-SafetyBench 20, MCPTox 11 — heavy overlap). At 51 records we are likely
MCP-SafetyBench 20, MCPTox 11 — heavy overlap). At 56 records we are likely
past the count of distinct classes already.

Growth path: audit and merge variants, fill genuine gaps from the
Expand Down
27 changes: 13 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,16 +19,16 @@ mapped to the frameworks security teams already report against.
[![SARIF](https://img.shields.io/badge/SARIF-v2.1.0-0057b7?style=flat-square)](docs/specs/ave-in-sarif.md)
[![License](https://img.shields.io/badge/license-Apache%202.0-green?style=flat-square)](LICENSE)

[![Tests](https://github.com/bawbel/ave/actions/workflows/tests.yml/badge.svg)](https://github.com/bawbel/ave/actions/workflows/tests.yml)
[![Tests](https://github.com/aveproject/ave/actions/workflows/tests.yml/badge.svg)](https://github.com/aveproject/ave/actions/workflows/tests.yml)
[![Coverage](https://img.shields.io/badge/coverage-100%25%20(rules%2F)-0f6e56?style=flat-square)](.github/workflows/tests.yml)
[![CodeQL](https://github.com/bawbel/ave/actions/workflows/codeql.yml/badge.svg)](https://github.com/bawbel/ave/actions/workflows/codeql.yml)
[![Dependency Review](https://github.com/bawbel/ave/actions/workflows/dependency-review.yml/badge.svg)](https://github.com/bawbel/ave/actions/workflows/dependency-review.yml)
[![Secret Scan](https://github.com/bawbel/ave/actions/workflows/secret-scan.yml/badge.svg)](https://github.com/bawbel/ave/actions/workflows/secret-scan.yml)
[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/bawbel/ave/badge)](https://scorecard.dev/viewer/?uri=github.com/bawbel/ave)
[![CodeQL](https://github.com/aveproject/ave/actions/workflows/codeql.yml/badge.svg)](https://github.com/aveproject/ave/actions/workflows/codeql.yml)
[![Dependency Review](https://github.com/aveproject/ave/actions/workflows/dependency-review.yml/badge.svg)](https://github.com/aveproject/ave/actions/workflows/dependency-review.yml)
[![Secret Scan](https://github.com/aveproject/ave/actions/workflows/secret-scan.yml/badge.svg)](https://github.com/aveproject/ave/actions/workflows/secret-scan.yml)
[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/aveproject/ave/badge)](https://scorecard.dev/viewer/?uri=github.com/aveproject/ave)
[![Security Policy](https://img.shields.io/badge/security-policy-blue?style=flat-square)](SECURITY.md)
[![Code of Conduct](https://img.shields.io/badge/code%20of%20conduct-Contributor%20Covenant-blueviolet?style=flat-square)](CODE_OF_CONDUCT.md)

[Registry](https://ave.bawbel.io/registry.html) · [Schema](https://ave.bawbel.io/schema.html) · [Crosswalks](https://ave.bawbel.io/crosswalks.html) · [Architecture](https://ave.bawbel.io/architecture.html) · [Scoring](https://ave.bawbel.io/scoring.html) · [Scanner](https://github.com/bawbel/scanner)
[Registry](https://aveproject.org/registry.html) · [Schema](https://aveproject.org/schema.html) · [Crosswalks](https://aveproject.org/crosswalks.html) · [Architecture](https://aveproject.org/architecture.html) · [Scoring](https://aveproject.org/scoring.html) · [Scanner](https://github.com/bawbel/scanner)

</div>

Expand Down Expand Up @@ -254,7 +254,7 @@ HIGH bawbel-hardcoded-credential AVE-2026-00047 line 5 AIVSS 7.6
```

Any tool can implement AVE — the records, schema, and rules are open.
See the [architecture guide](https://ave.bawbel.io/architecture.html) and
See the [architecture guide](https://aveproject.org/architecture.html) and
the [implementer guide](docs/specs/ave-implementer-guide.md) for the
full consumption patterns including air-gapped environments.

Expand All @@ -274,7 +274,7 @@ record = resp.json() # full record: fingerprint, IOCs, remediation, frameworks
**Pattern 2 — Bundled offline** (air-gapped, regulated environments)
```bash
# Download the full record set at build time and bundle with your scanner
curl -L https://github.com/bawbel/ave/releases/download/v1.1.0/ave-records-v1.1.0.json \
curl -L https://github.com/aveproject/ave/releases/download/v1.1.0/ave-records-v1.1.0.json \
-o ave-records.json
```

Expand All @@ -296,7 +296,7 @@ Records validate against
[`schema/ave-record-1.1.0.schema.json`](schema/ave-record-1.1.0.schema.json).

Canonical `$id`:
`https://ave.bawbel.io/schema/ave-record-1.1.0.schema.json`
`https://aveproject.org/schema/ave-record-1.1.0.schema.json`

**15 required fields:**

Expand Down Expand Up @@ -350,7 +350,7 @@ references · researcher
above applies once `status` is `active` or `deprecated`. See
[CONTRIBUTING.md](CONTRIBUTING.md) for the thin-submission path.

Full schema reference: [ave.bawbel.io/schema.html](https://ave.bawbel.io/schema.html)
Full schema reference: [aveproject.org/schema.html](https://aveproject.org/schema.html)

---

Expand Down Expand Up @@ -429,7 +429,7 @@ The PR description must include:
## Framework crosswalks

AVE records map to four external frameworks. Full crosswalk tables are
at [ave.bawbel.io/crosswalks.html](https://ave.bawbel.io/crosswalks.html).
at [aveproject.org/crosswalks.html](https://aveproject.org/crosswalks.html).

| Framework | Field | Crosswalk |
|---|---|---|
Expand Down Expand Up @@ -466,10 +466,9 @@ See [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) for community standards.

| | |
|---|---|
| [ave.bawbel.io](https://ave.bawbel.io) | Public registry and documentation |
| [aveproject.org](https://aveproject.org) | Public registry and documentation |
| [bawbel/scanner](https://github.com/bawbel/scanner) | Reference implementation |
| [bawbel/ave-site](https://github.com/bawbel/ave-site) | Website source |
| [api.piranha.bawbel.io](https://api.piranha.bawbel.io) | Threat intel API |
| [aveproject/ave-site](https://github.com/aveproject/ave-site) | Website source |
| [OWASP AIVSS v0.8](https://aivss.owasp.org) | Scoring specification |
| [MITRE ATLAS](https://atlas.mitre.org) | AI threat technique catalog |
| [OWASP MCP Top 10](https://owasp.org) | MCP attack surface framework |
Expand Down
6 changes: 3 additions & 3 deletions SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ AVE follows coordinated disclosure for all records.
| Registry operators | Notified simultaneously with publishers; encouraged to quarantine affected components during the window |

All published AVE records are freely accessible in this repository,
at [ave.bawbel.io](https://ave.bawbel.io), and via the PiranhaDB API.
at [aveproject.org](https://aveproject.org), and via the PiranhaDB API.
No redacted or partial disclosures.

---
Expand All @@ -47,8 +47,8 @@ No redacted or partial disclosures.

| | |
|---|---|
| [bawbel/ave](https://github.com/bawbel/ave) | AVE standard — records and schema |
| [bawbel/ave-site](https://github.com/bawbel/ave-site) | ave.bawbel.io website |
| [aveproject/ave](https://github.com/aveproject/ave) | AVE standard — records and schema |
| [aveproject/ave-site](https://github.com/aveproject/ave-site) | aveproject.org website |
| [bawbel/scanner](https://github.com/bawbel/scanner) | CLI scanner (reference implementation) |
| [api.piranha.bawbel.io](https://api.piranha.bawbel.io) | PiranhaDB threat intel API |
| [bawbel.io](https://bawbel.io) | Bawbel website |
Expand Down
4 changes: 2 additions & 2 deletions crosswalks/ave-to-ast10.json
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
{
"$schema": "https://ave.bawbel.io/schema/crosswalk-1.0.0.schema.json",
"$schema": "https://aveproject.org/schema/crosswalk-1.0.0.schema.json",
"source": {
"standard": "AVE",
"version": "1.1.0",
"url": "https://ave.bawbel.io",
"url": "https://aveproject.org",
"record_count": 56
},
"target": {
Expand Down
4 changes: 2 additions & 2 deletions crosswalks/clawscan-to-ave.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"$schema": "https://ave.bawbel.io/schema/crosswalk-1.0.0.schema.json",
"$schema": "https://aveproject.org/schema/crosswalk-1.0.0.schema.json",
"source": {
"tool": "ClawScan",
"vendor": "Community (nickoc / sggolakiya)",
Expand All @@ -11,7 +11,7 @@
"target": {
"standard": "AVE",
"version": "1.1.0",
"url": "https://ave.bawbel.io",
"url": "https://aveproject.org",
"record_count": 56
},
"generated": "2026-07-12",
Expand Down
4 changes: 2 additions & 2 deletions crosswalks/skillspector-to-ave.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"$schema": "https://ave.bawbel.io/schema/crosswalk-1.0.0.schema.json",
"$schema": "https://aveproject.org/schema/crosswalk-1.0.0.schema.json",
"source": {
"tool": "SkillSpector",
"vendor": "NVIDIA",
Expand All @@ -12,7 +12,7 @@
"target": {
"standard": "AVE",
"version": "1.1.0",
"url": "https://ave.bawbel.io",
"url": "https://aveproject.org",
"record_count": 56
},
"generated": "2026-07-12",
Expand Down
4 changes: 2 additions & 2 deletions docs/architecture/ave-architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ graph TB
CONSUME["Consumption — the record DECLARES, the scanner ASSIGNS<br>───────────────<br>confidence_baseline → confidence (FP-adjusted)<br>evidence_kind_default → evidence_kind<br>detection_stage → evidence_stage (floor)<br>evidence_basis_engines → evidence_basis<br>derivable_into → ToxicFlow.derived_from_findings<br>───────────────<br>Finding: confidence ≠ aivss_score — separate fields, always"]

SARIF["Finding → SARIF<br>ave_id in ruleId + taxonomies<br>→ GitHub Security tab / CI"]
PIRANHA["Record set → PiranhaDB<br>→ api.piranha.bawbel.io<br>→ ave.bawbel.io"]
PIRANHA["Record set → PiranhaDB<br>→ api.piranha.bawbel.io<br>→ aveproject.org"]
CROSS["Crosswalks<br>SkillSpector & ClawScan finding types map to AVE ids"]

RECORD -->|has a| RULE
Expand Down Expand Up @@ -254,7 +254,7 @@ Finding, never in an AVE record: `confidence`, `confidence_band`, the actual
into those surfaces for free.
- **PiranhaDB and the public site.** The record set is ingested by PiranhaDB
(the deploy-time `sync_records.py` export) and served at
`api.piranha.bawbel.io` and the public registry at `ave.bawbel.io`.
`api.piranha.bawbel.io` and the public registry at `aveproject.org`.
- **Crosswalks.** Published mappings let other scanners' finding types
(SkillSpector's categories, ClawScan's types) resolve to AVE ids, so
findings from different tools become comparable through the AVE layer.
Expand Down
4 changes: 2 additions & 2 deletions docs/guides/schema-vs-finding.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@ The to_dict() you pasted is the SCANNER FINDING output — produced at scan time
one per detection, references an AVE record by ave_id.

The AVE RECORD is the static vulnerability DEFINITION — authored once, lives in
bawbel/ave, many findings point to it. Different schema, different lifecycle.
aveproject/ave, many findings point to it. Different schema, different lifecycle.

```
AVE Record (static definition) Finding (runtime instance)
───────────────────────────── ──────────────────────────
authored by a human produced by a scan
one per vulnerability class one per detection
lives in bawbel/ave/records/ lives in scan output JSON
lives in aveproject/ave/records/ lives in scan output JSON
referenced by ave_id references an AVE record
changes rarely (new research) changes every scan
```
Expand Down
6 changes: 3 additions & 3 deletions docs/specs/ave-implementer-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ Download the full AVE record set at build/install time. Bundle it with your scan
At scan time, look up records locally.

**Offline artifact:**
`https://github.com/bawbel/ave/releases/download/v1.1.0/ave-records-v1.1.0.json`
`https://github.com/aveproject/ave/releases/download/v1.1.0/ave-records-v1.1.0.json`

Format: JSON array of all 51 records.

Expand Down Expand Up @@ -104,7 +104,7 @@ network calls related to AVE.
"ruleId": "your-rule-id",
"properties": {
"ave_id": "AVE-2026-00002",
"ave_url": "https://ave.bawbel.io/registry.html#AVE-2026-00002",
"ave_url": "https://aveproject.org/registry.html#AVE-2026-00002",
"ave_api": "https://api.piranha.bawbel.io/ave/AVE-2026-00002"
}
}]
Expand Down Expand Up @@ -157,7 +157,7 @@ cross-tool deduplication and links to the full behavioral record.

## Contact

Open an issue at [github.com/bawbel/ave](https://github.com/bawbel/ave) or email
Open an issue at [github.com/aveproject/ave](https://github.com/aveproject/ave) or email
bawbel.io@gmail.com.

Maintaining a scanner? Submit a crosswalk PR — we will help with the mapping.
10 changes: 5 additions & 5 deletions docs/specs/ave-in-sarif.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ Each AVE record that produced at least one detection must appear in `run.tool.dr
| `rules[].name` | `attack_class` | e.g. `"external_instruction_fetch"` |
| `rules[].shortDescription.text` | `title` | human-readable title |
| `rules[].fullDescription.text` | `description` | full paragraph description |
| `rules[].helpUri` | `"https://ave.bawbel.io/registry.html#<ave_id>"` | deep link to registry |
| `rules[].helpUri` | `"https://aveproject.org/registry.html#<ave_id>"` | deep link to registry |
| `rules[].properties.severity` | `severity` | `"CRITICAL"`, `"HIGH"`, `"MEDIUM"`, `"LOW"` |
| `rules[].properties.aivss_score` | `aivss.aivss_score` | float, e.g. `9.3` |
| `rules[].properties.owasp_mcp` | `owasp_mcp` | array of MCPNN strings |
Expand Down Expand Up @@ -88,7 +88,7 @@ Include an AVE taxonomy entry alongside the `runs` array so that tools can cross
"name": "AVE",
"version": "1.0.0",
"releaseDateUtc": "2026-06-18",
"informationUri": "https://ave.bawbel.io",
"informationUri": "https://aveproject.org",
"downloadUri": "https://api.piranha.bawbel.io/records",
"organization": "Bawbel Security Research",
"shortDescription": {
Expand All @@ -98,7 +98,7 @@ Include an AVE taxonomy entry alongside the `runs` array so that tools can cross
{
"id": "AVE-2026-00001",
"name": "Supply Chain - Metamorphic Payload via External Config Fetch",
"helpUri": "https://ave.bawbel.io/registry.html#AVE-2026-00001"
"helpUri": "https://aveproject.org/registry.html#AVE-2026-00001"
}
]
}
Expand Down Expand Up @@ -134,7 +134,7 @@ One finding for AVE-2026-00001 (external instruction fetch) against a hypothetic
"fullDescription": {
"text": "A skill or MCP component fetches instructions or configuration from an external URL at runtime, allowing an attacker who controls that URL to inject arbitrary directives into the agent's execution context."
},
"helpUri": "https://ave.bawbel.io/registry.html#AVE-2026-00001",
"helpUri": "https://aveproject.org/registry.html#AVE-2026-00001",
"properties": {
"severity": "CRITICAL",
"aivss_score": 9.3,
Expand All @@ -149,7 +149,7 @@ One finding for AVE-2026-00001 (external instruction fetch) against a hypothetic
{
"name": "AVE",
"version": "1.0.0",
"informationUri": "https://ave.bawbel.io",
"informationUri": "https://aveproject.org",
"taxa": [
{
"id": "AVE-2026-00001",
Expand Down
Loading
Loading