Aegis 0.1.1
Aegis 0.1.1
A dogfood release. Aegis was scanned by Aegis, and four findings turned up.
All four were false positives in the scanner heuristics; this release fixes
them and adds regression tests so they cannot resurface.
Fixes
- Dockerfile scanner —
_looks_like_dockerfileno longer matches
dockerfile.py,dockerfile.md,dockerfile.json, or other code/doc
files. Only true Dockerfile-family names match:Dockerfile,
Dockerfile.<short-alpha-variant>, and*.dockerfile. - Obfuscation scanner — scope tightened to JS-family suffixes only
(.js,.mjs,.cjs,.ts). Python and shell scripts can legitimately
reference tokens likeeval(orgunzipSyncas data; the scanner used to
treat them as packers. - Obfuscation scanner — parenthesised the
self_extractheuristic so
the precedence betweenorandandis unambiguous.
Reliability
- Runner — isolates scanner exceptions. One crashing scanner no longer
aborts the whole run; errors land in the Glasswing journal as
scan.scanner_error. - Index — enables WAL mode and
synchronous=NORMALon SQLite open so
the MCP server and the CLI can read the same index concurrently without
hitting database-locked errors.
Tests
- New
tests/test_dogfood_regression.pypins the dockerfile heuristic,
asserts that Aegis self-scanning yields zero findings, and verifies that
one misbehaving scanner cannot take the others down. - Suite size: 31 tests (was 28). All pass on py3.11 and py3.12.
Verified
aegis scan srcagainst this repository: 0 findings on 37 files.- PyPI: https://pypi.org/project/aegis-sec/0.1.1/
- MCP Registry:
io.github.verrysimatupang99/aegis@0.1.1 - Sigstore-signed via PyPI trusted publishing.
Install
No change in the install path. Same one-liner works:
{ "mcpServers": { "aegis": { "command": "uvx", "args": ["--from", "aegis-sec", "aegis-mcp"] } } }