whitebox-secure-scan
whitebox-secure-scan is a local, offline white-box secure-code triage tool for penetration testers. It helps you filter a large codebase into explainable review leads, precise file and line evidence, grouped root causes, and reviewer guidance.
It is a triage aid—not a final penetration-test report and not an automatic vulnerability confirmer. Every candidate must be independently verified by an authorized security engineer.
The analysis stays local: source enters a bounded review pipeline, evidence is grouped for a human reviewer, and no source is sent to an external service.
Quick start
Run the latest published package without installing it globally:
uvx whitebox-secure-scan@latest version
uvx whitebox-secure-scan@latest review /path/to/repository \
--output ./whitebox-results
Keep the output directory outside the target repository. The scanner reads target source locally, does not execute it, and does not modify it.
Installation
Run with uvx — recommended
uvx runs the published package in an isolated environment and does not require a permanent installation.
uvx whitebox-secure-scan@latest version
uvx whitebox-secure-scan@latest --help
uvx whitebox-secure-scan@latest review /path/to/repository \
--output ./whitebox-results
uvx whitebox-secure-scan@1.0.1 version
Install with pip
python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install whitebox-secure-scan
whitebox-secure-scan version
whitebox-secure-scan review /path/to/repository \
--output ./whitebox-results
Upgrade an existing installation with:
python -m pip install --upgrade whitebox-secure-scan
The package supports Python 3.11 and newer. uvx and pip use the published PyPI package; no repository checkout is required for normal use.
Optional parsing dependencies
The core scanner works without optional parsers. Install the local parsing extras when you want the additional parser support:
python -m pip install "whitebox-secure-scan[parsing]"
What you get
The normal review command writes a concise, reviewer-first result set:
| File | Purpose |
|---|---|
SUMMARY.md |
Fast overview of root causes, locations, and scope |
report.md |
Detailed evidence and verification guidance |
findings.json |
Normalized finding instances for automation |
root-causes.json |
Related instances grouped for efficient review |
review-points.json |
Lower-confidence items that need context |
Advanced compatibility commands can also produce inventory, routes, metadata, SARIF, and a bounded internal-AI handoff package.
Local result files from supported tools can be imported without executing them:
whitebox-secure-scan review /path/to/repository \
--import-result semgrep=/path/to/semgrep.json \
--output ./whitebox-results
Supported import formats include Semgrep, Gitleaks, Bandit, gosec, and FindSecBugs. Imported results retain the external tool and rule IDs and are still review candidates.
What it does—and does not do
| It does | It does not |
|---|---|
| Scan Python, JavaScript/TypeScript, Java, and Go source locally | Execute application code, tests, builds, migrations, or package scripts |
| Identify security review leads and review points | Claim that a finding is exploitable or confirmed |
| Preserve file, line, source, sink, and proof-gap context | Replace manual code review or a penetration tester |
| Group related evidence into root causes | Upload source, findings, telemetry, or analytics |
| Work offline by default | Call external AI services or download rules during a scan |
Safety boundaries
The scanner is designed for controlled white-box review:
- Offline operation is enabled by default.
- Target repositories are treated as read-only.
- Repository code and commands are never executed.
- External scanners are disabled unless explicitly enabled and already installed locally.
- Output paths are safety-checked and should be outside the target repository.
- Symlinks that escape the target are not followed.
- Secrets are redacted by default and snippets are bounded.
- No source code or scan results are sent to a cloud service.
Only scan repositories you are authorized to review.
Supported languages
- Python
- JavaScript and TypeScript, including common Node.js and frontend patterns
- Java, including common Spring-oriented patterns
- Go
Framework evidence is reported only when it is observable in the repository. Static analysis is intentionally conservative: incomplete flows remain review leads or review points.
When the optional parsing extra is installed, the parser layer can use local Tree-sitter grammars for JavaScript, TypeScript, Java, and Go. Without it, the scanner uses a structured lexical fallback. The code graph is bounded to observable declarations, routes, and calls; it is not complete whole-program interprocedural taint analysis.
Typical workflow
Scan locally
↓
Read SUMMARY.md and grouped root causes
↓
Inspect the referenced file and line
↓
Verify the complete flow manually
↓
Write the approved security finding, if confirmed
Development installation
Use this section only when contributing to the project or running its synthetic test suite:
git clone https://github.com/Waariss/whitebox-secure-scan.git
cd whitebox-secure-scan
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -e ".[dev]"
pytest -q
ruff check .
ruff format --check .
mypy src
Tests use synthetic fixtures. Do not point the test suite or examples at repositories you do not own or have permission to review. See CONTRIBUTING.md and the technical reference.
Documentation and support
License
Apache License 2.0. See LICENSE.
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 whitebox_secure_scan-1.1.0.tar.gz.
File metadata
- Download URL: whitebox_secure_scan-1.1.0.tar.gz
- Upload date:
- Size: 49.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5db324920268b229ea9ec1e602a6436feb006442bf5384263373f33b5d79ea46
|
|
| MD5 |
ddc6a79ac39053307b74764387731029
|
|
| BLAKE2b-256 |
f564086d75485d2bbd93b7463bf44045b356013f5d1d2d019e335e9be23cb59f
|
Provenance
The following attestation bundles were made for whitebox_secure_scan-1.1.0.tar.gz:
Publisher:
publish.yml on Waariss/whitebox-secure-scan
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
whitebox_secure_scan-1.1.0.tar.gz -
Subject digest:
5db324920268b229ea9ec1e602a6436feb006442bf5384263373f33b5d79ea46 - Sigstore transparency entry: 2205366318
- Sigstore integration time:
-
Permalink:
Waariss/whitebox-secure-scan@ed18c0311f31b461abeaf36f79698dc1b3d0d770 -
Branch / Tag:
refs/tags/v1.1.0 - Owner: https://github.com/Waariss
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ed18c0311f31b461abeaf36f79698dc1b3d0d770 -
Trigger Event:
push
-
Statement type:
File details
Details for the file whitebox_secure_scan-1.1.0-py3-none-any.whl.
File metadata
- Download URL: whitebox_secure_scan-1.1.0-py3-none-any.whl
- Upload date:
- Size: 50.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
edbfcb5c29ac5ebda7ef83be55abb27c467d606a32255fbd1a3b0c1bf3df673d
|
|
| MD5 |
018a66e6579e175d734245475bcfa794
|
|
| BLAKE2b-256 |
226960b310eab0b3c3cad29b0e0242946f061c69edd3c9e634bb40efd89a94d3
|
Provenance
The following attestation bundles were made for whitebox_secure_scan-1.1.0-py3-none-any.whl:
Publisher:
publish.yml on Waariss/whitebox-secure-scan
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
whitebox_secure_scan-1.1.0-py3-none-any.whl -
Subject digest:
edbfcb5c29ac5ebda7ef83be55abb27c467d606a32255fbd1a3b0c1bf3df673d - Sigstore transparency entry: 2205366334
- Sigstore integration time:
-
Permalink:
Waariss/whitebox-secure-scan@ed18c0311f31b461abeaf36f79698dc1b3d0d770 -
Branch / Tag:
refs/tags/v1.1.0 - Owner: https://github.com/Waariss
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ed18c0311f31b461abeaf36f79698dc1b3d0d770 -
Trigger Event:
push
-
Statement type: