Minecraft server vulnerability scanner with local AI risk scoring and HTML reports
Project description
VaultBreaker
Minecraft server security scanner — finds misconfigurations, exposed services, and known CVEs without touching gameplay.
Ethics First
VaultBreaker is a defensive tool. Active checks (RCON probing, plugin fingerprinting) require explicit opt-in via --ethics-confirm. Never run it against servers you do not own or have written permission to test. See ETHICS.md and SECURITY.md.
Features
- SLP ping, UDP Query, and DNS SRV resolution
- Vulnerability checks: cracked auth, exposed Query port, outdated version, Dynmap, RCON, BungeeCord bypass, plugin CVEs
- CVE database with verified Log4Shell and related entries
- Concurrent port sweep across Java, Bedrock, RCON, Dynmap, and alternate ports
- AI enrichment via local Ollama — risk scoring, per-finding remediation, executive summary
- HTML, Markdown, and JSON reports
- Rich CLI with live findings table and severity coloring
- Textual TUI (
vaultbreaker tui) with dashboard, findings browser, and config screen - Audit log at
~/.vaultbreaker/audit.log
Quick Start
pip install vaultbreaker
vaultbreaker scan play.example.com
With AI enrichment (requires Ollama running locally):
vaultbreaker scan play.example.com --report
Installation
| Method | Command |
|---|---|
| Stable release | pip install vaultbreaker |
| With TUI | pip install "vaultbreaker[tui]" |
| Development | pip install -e ".[dev]" |
| Windows .exe | Download from Releases |
Python 3.11 or 3.12 required.
Usage
vaultbreaker scan <host> [options]
Options:
--port INTEGER Server port (default: 25565)
--rate FLOAT Seconds between checks (default: 0.5)
--no-ai Skip AI enrichment
--report / -r Generate HTML report and open in browser
--json PATH Save raw JSON results
--active Enable active checks (requires --ethics-confirm)
--ethics-confirm Confirm you have permission to run active checks
--verbose / -v Show raw protocol responses
--quiet / -q Suppress all output except findings
Other commands:
vaultbreaker doctor Check environment and Ollama connectivity
vaultbreaker report <file> Render HTML or Markdown from a saved JSON scan
vaultbreaker tui Launch the Textual TUI
Ollama Setup
VaultBreaker uses Ollama for local AI enrichment — no API keys, no data leaves your machine.
# Install Ollama: https://ollama.com
ollama pull qwen2.5:3b
VaultBreaker auto-detects the available model. Use vaultbreaker tui > Config to change the model or endpoint.
Development
git clone https://github.com/Nuulz/vaultbreaker
cd vaultbreaker
pip install -e ".[dev]"
pytest tests/unit/ -q # run tests
ruff check src/ # lint
python -m build # build wheel + sdist
Build Windows .exe locally:
.\build\build_exe.ps1
License
MIT — see LICENSE.
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 vaultbreaker-0.6.0.tar.gz.
File metadata
- Download URL: vaultbreaker-0.6.0.tar.gz
- Upload date:
- Size: 70.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
38ca71ffc150ec9a05121b49d895d84d2db4e29b8ed2f27392fb7e946cc62848
|
|
| MD5 |
08405e779bd4f4057635a25134d96a13
|
|
| BLAKE2b-256 |
c51d8a633b748f59ae141ddb14040f91b5796fed338330126a7a55d586e34435
|
Provenance
The following attestation bundles were made for vaultbreaker-0.6.0.tar.gz:
Publisher:
release.yml on Nuulz/vaultbreaker
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vaultbreaker-0.6.0.tar.gz -
Subject digest:
38ca71ffc150ec9a05121b49d895d84d2db4e29b8ed2f27392fb7e946cc62848 - Sigstore transparency entry: 1338838898
- Sigstore integration time:
-
Permalink:
Nuulz/vaultbreaker@df732f3fc721e3b0ad0b70966eff11402a3969b7 -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/Nuulz
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@df732f3fc721e3b0ad0b70966eff11402a3969b7 -
Trigger Event:
push
-
Statement type:
File details
Details for the file vaultbreaker-0.6.0-py3-none-any.whl.
File metadata
- Download URL: vaultbreaker-0.6.0-py3-none-any.whl
- Upload date:
- Size: 74.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
552b9e672be44243581f80e9ffbb671d853e31f23ef464a2554bd9ea2680c0ac
|
|
| MD5 |
785f31982823ab5ccf5d53df4e403f85
|
|
| BLAKE2b-256 |
f7a6599de81146c8025f1eadd89f2ea43b7f676f6e0c9c89a170991a21988a5b
|
Provenance
The following attestation bundles were made for vaultbreaker-0.6.0-py3-none-any.whl:
Publisher:
release.yml on Nuulz/vaultbreaker
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vaultbreaker-0.6.0-py3-none-any.whl -
Subject digest:
552b9e672be44243581f80e9ffbb671d853e31f23ef464a2554bd9ea2680c0ac - Sigstore transparency entry: 1338838906
- Sigstore integration time:
-
Permalink:
Nuulz/vaultbreaker@df732f3fc721e3b0ad0b70966eff11402a3969b7 -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/Nuulz
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@df732f3fc721e3b0ad0b70966eff11402a3969b7 -
Trigger Event:
push
-
Statement type: