Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
cc8cef1
feat: prepare bawbel-scanner for PyPI publishing (#1)
chaksaray Apr 18, 2026
26128b3
chore: remove stale root cli.py and setup.sh (moved to scanner/ and s…
chaksaray Apr 18, 2026
3ecabd4
feat: v0.1.0 — CONTRIBUTING, SECURITY, 15 rules, report command
chaksaray Apr 18, 2026
24afaf6
refactor: Remove cli.py and setup.sh (#5)
chaksaray Apr 18, 2026
b7ac389
Merge branch 'main' into develop
chaksaray Apr 18, 2026
48aac1d
Delete setup.sh
chaksaray Apr 18, 2026
02464a6
Delete cli.py
chaksaray Apr 18, 2026
e146376
Update CHANGELOG for version 0.1.0 release
chaksaray Apr 19, 2026
f372a19
docs: update CHANGELOG for v0.1.0 — 15 rules, 145 tests, full feature…
chaksaray Apr 19, 2026
855e00f
fix: TestPyPI gate before PyPI — requires manual approval (#11)
chaksaray Apr 19, 2026
2f58447
feat: add LiteLMM engine (#13)
chaksaray Apr 20, 2026
5129e07
Merge branch 'main' into develop
chaksaray Apr 20, 2026
22af2d4
feat: v0.2.0 — 15/15 AVE IDs, LiteLLM Stage 2, --watch, semgrep fix (…
chaksaray Apr 20, 2026
85780cc
Merge branch 'main' into develop
chaksaray Apr 20, 2026
c83700e
feat: hybrid sandbox (Hub pull + local fallback) (#18)
chaksaray Apr 23, 2026
7873477
feat: suppression — inline, block, .bawbelignore, --no-ignore, update…
chaksaray Apr 23, 2026
83e92de
feat: FP-1/2/3/4/5, Magika Stage 0, 24 AVE rules, bawbel init (#20)
chaksaray Apr 25, 2026
1256cc9
docs: add Magika Stage 0 and meta-analyzer to all documentation (#21)
chaksaray Apr 25, 2026
e598c5c
docs: v1.0.0 — 37 rules, 40 AVE records, IDE page, CI/CD split (#22)
chaksaray Apr 26, 2026
de732a5
fix: YARA engine SyntaxError on filenames with special characters (#23)
chaksaray Apr 26, 2026
558ca37
Merge branch 'main' into develop
chaksaray Apr 26, 2026
d956f85
fix: remove test one funding per rule (#26)
chaksaray Apr 26, 2026
38e3014
Merge branch 'main' into develop
chaksaray Apr 26, 2026
ff75b48
fix: not one rule per file (#28)
chaksaray Apr 26, 2026
5f3eb45
docs: Smithery top-100 scan results + scanner script (#32)
chaksaray Apr 30, 2026
a2981d0
feat: scan mcp server card (#34)
chaksaray May 1, 2026
9c9c220
feat: add bawbel pin + check-pins for rug pull detection (#35)
chaksaray May 3, 2026
9d2503e
Merge branch 'main' into develop
chaksaray May 3, 2026
a967a55
feat: map findings to OWASP MCP Top 10 (#37)
chaksaray May 3, 2026
8db1ea3
feat: toxic flow detection (#39)
chaksaray May 3, 2026
551c894
Merge branch 'main' into develop
chaksaray May 3, 2026
77ed21d
feat: MCP spec conformance scoring (#40)
chaksaray May 3, 2026
161d724
Merge branch 'main' into develop
chaksaray May 3, 2026
68e5137
docs: update README and CHANGELOG for v1.1.0 (#43)
chaksaray May 4, 2026
f8652f0
Merge branch 'main' into develop
chaksaray May 4, 2026
fdcfd2b
fix: tighten wheel verification checks in publish.yml (#45)
chaksaray May 4, 2026
16c19ee
feat: add server.json for MCP official registry submission (#47)
chaksaray May 6, 2026
2d78a11
Merge branch 'main' into develop
chaksaray May 6, 2026
46d97b3
docs: v1.1.1, add mcp-name marker for MCP registry submission (#49)
chaksaray May 6, 2026
160cfea
Merge branch 'main' into develop
chaksaray May 6, 2026
3aae1d7
feat: mapping OWASP AIVSS (#52)
chaksaray May 16, 2026
e9b1745
Merge branch 'main' into develop
chaksaray May 16, 2026
55470d2
feat: scan creds & chain (#54)
chaksaray May 16, 2026
1bdb8fa
Merge branch 'main' into develop
chaksaray May 16, 2026
a37a669
fix: risk score include toxic flow (#61)
chaksaray May 20, 2026
dec16f3
docs: publish scan smithery mcp servers result (#63)
chaksaray May 20, 2026
76ad1d2
chore: update readme and changelog for v1.2.2
chaksaray May 20, 2026
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
69 changes: 69 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,75 @@ Pattern engine: 37 rules -> 40 rules.

---

## [1.2.0] - 2026-05-16

### Added

**Justified suppression and false positive feedback (Part 14)**

Two new suppression keywords on top of the existing `bawbel-ignore` system:

- `bawbel-ignore` with metadata fields (`reason`, `reviewer`, `reviewed`) declares a
false positive permanently. The reason is recorded in the audit trail.
- `bawbel-accept` with an `expires` field declares an accepted risk. When the expiry
date passes, the finding resurfaces automatically as an active finding on the next scan.

`bawbel accept` CLI command inserts justified suppression comments directly into source
files. `bawbel accept --list` shows all accepted findings. `bawbel accept --expiring-soon`
shows findings expiring within a configurable window and exits 1 for CI use.

Anonymous FP signals can be sent to PiranhaDB via `--report`. Only AVE ID, engine,
confidence score, and a hash of the match context are sent. No file content.

`ScanResult.accepted_findings` is a new field in JSON output containing full metadata
for each justified suppression.

**New detection rules**

Three new AVE records and pattern rules:

- `bawbel-hook-hijack` (AVE-2026-00046): MCP tool hook hijacking. CRITICAL, AIVSS 9.1.
Detects skill files that register hooks to intercept or redirect tool execution calls.
- `bawbel-hardcoded-credential` (AVE-2026-00047): Hardcoded credentials. HIGH, AIVSS 7.8.
Detects API keys, tokens, passwords, private keys, and URL-embedded credentials.
- `bawbel-unsafe-delegation` (AVE-2026-00048): Unsafe agent delegation chain. HIGH, AIVSS 8.2.
Detects sub-agent spawning with inherited permissions and no trust boundary.

Pattern engine: 37 rules -> 40 rules.

**New commands**

- `bawbel creds <path>`: credential-focused scan, filters to AVE-2026-00047 and related
rules. Same output format as `bawbel scan`. Supports `--recursive`, `--no-ignore`,
`--fail-on-any`, `--format json`.
- `bawbel chain <path>`: delegation chain scanner, filters to AVE-2026-00048 and related
rules. Same flags as `bawbel creds`.

**`bawbel report` improvements**

- Added `--recursive` / `-r` flag. `bawbel report ./skills/ --recursive` generates
a full remediation report for every file in the directory.
- Added `--no-ignore` flag matching `bawbel scan`.

### Changed

- `scanner.py` Step 10 added: justified suppression runs after Step 9 (inline suppression).
Expired accepted risks are re-surfaced as active findings at this stage.
- Pattern engine rule count: 37 -> 40.

### Fixed

- `pr-review.yml` regression-check job: missing `pip install -e .` caused scan import
failures on clean repos.
- `ci.yml` test job: missing `pip install -e .` caused import failures.
- `ci.yml` Docker verify step: `python3 -c "..."` with f-strings caused shell brace
expansion to mangle the script before Python saw it. Replaced with single-line
assertion using no f-strings.
- `ci.yml` Docker verify step: wrong `aivss` field name (should be `aivss_score`),
wrong threshold (9.0 should be 7.0 to match actual fixture score).

---

## [1.1.1] - 2026-05-07

### Fixed
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ bawbel scan ./skills/ # scan skill files
bawbel ssc https://server # scan MCP server without starting it
```

<img src="https://raw.githubusercontent.com/bawbel/scanner/main/docs/demo.svg" width="100%" alt="Bawbel Scanner demo">
<img src="https://raw.githubusercontent.com/bawbel/scanner/HEAD/docs/demo.svg" width="100%" alt="Bawbel Scanner demo">

---

Expand Down
Loading
Loading