Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
b055344
fix: add secure report_store implementation
ItsWanheda Oct 22, 2026
f0968a9
fix: harden async_scanner
ItsWanheda Oct 22, 2026
809fc55
fix: harden brute_forcer
ItsWanheda Oct 22, 2026
b8dfda2
fix: harden vuln_scanner
ItsWanheda Oct 22, 2026
66f160f
fix: harden scanner modes, network sweeps, and report exports
ItsWanheda Oct 22, 2026
fe3872f
fix: implement strict CLI routing and report options
ItsWanheda Oct 22, 2026
4fd05d5
test: cover test_cli
ItsWanheda Oct 22, 2026
fa25fd8
test: cover test_brute_forcer
ItsWanheda Oct 22, 2026
43381c0
test: cover test_vuln_scanner
ItsWanheda Oct 22, 2026
c3f64e8
test: cover test_report_store
ItsWanheda Oct 22, 2026
13ddf9d
test: cover test_network_sweep
ItsWanheda Oct 22, 2026
c5736e0
test: cover async scanner input validation
ItsWanheda Oct 22, 2026
64431c1
build: declare TLS certificate parsing dependency
ItsWanheda Oct 22, 2026
e8ac881
docs: document hardened CLI and report behavior
ItsWanheda Oct 22, 2026
cd3b7f5
ci: add cross-platform tests and security auditing
ItsWanheda Oct 22, 2026
36504c5
fix: correct host resolution and CLI option behavior
ItsWanheda Oct 22, 2026
2020884
fix: enforce fingerprint pinning before SSH authentication
ItsWanheda Oct 22, 2026
e32c99f
fix: reject boolean values as async ports
ItsWanheda Oct 22, 2026
d8fe402
fix: prevent report-store path traversal on writes
ItsWanheda Oct 22, 2026
5a96d31
fix: avoid overstating version-based CVE matches
ItsWanheda Oct 22, 2026
9c328f3
test: classify passive CPE matches as potential
ItsWanheda Oct 22, 2026
cf5dc78
fix: require real SYN probes and cap nested network workers
ItsWanheda Oct 22, 2026
1294387
fix: validate SSH host fingerprint configuration
ItsWanheda Oct 22, 2026
013302e
test: verify tcp syn and udp scan mode dispatch
ItsWanheda Oct 22, 2026
aa9ed20
fix: validate host fingerprint after initialization
ItsWanheda Oct 22, 2026
7dcec81
fix: fail clearly when SYN scan lacks privileges
ItsWanheda Oct 22, 2026
22ed20b
test: cover output extension format inference
ItsWanheda Oct 22, 2026
f1f12b6
fix: cap credential wordlist processing
ItsWanheda Oct 22, 2026
39dabfe
feat: route documented CLI OSINT and protocol flags
ItsWanheda Oct 22, 2026
08d03f3
fix: use FTPS by default for credential checks
ItsWanheda Oct 22, 2026
7edb59c
fix: remove committed phone API key and repair phone lookup
ItsWanheda Oct 22, 2026
8721751
fix: align phone and Shodan options and secure FTP defaults
ItsWanheda Oct 22, 2026
e798ab6
fix: use the documented Numverify API endpoint
ItsWanheda Oct 22, 2026
70e928f
fix: reject incompatible CLI combinations explicitly
ItsWanheda Oct 22, 2026
eb2c449
docs: document supported CLI modules and safer credential mode
ItsWanheda Oct 22, 2026
05d8328
fix: repair phone locator syntax and usage message
ItsWanheda Oct 22, 2026
e2f877e
fix: bound legacy port and ARP scan resource usage
ItsWanheda Oct 22, 2026
dd9c82c
test: cover bounded legacy port-scan scheduling
ItsWanheda Oct 22, 2026
979cf70
test: patch slotted scanner method at class level
ItsWanheda Oct 22, 2026
0d7b82f
fix: make timing profiles control worker count
ItsWanheda Oct 22, 2026
e64c5fa
test: fix scanner class-level mock signature
ItsWanheda Oct 22, 2026
329a6c4
feat: integrate bounded NVD correlation into CLI
ItsWanheda Oct 22, 2026
46e503e
test: cover CLI NVD correlation and query bounds
ItsWanheda Oct 22, 2026
c09f3e1
docs: document bounded optional CVE correlation
ItsWanheda Oct 22, 2026
08c0089
fix: validate NVD lookup limits and product identifiers
ItsWanheda Oct 22, 2026
3ec6855
test: clarify potential CVE findings and CLI limits
ItsWanheda Oct 22, 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
35 changes: 24 additions & 11 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,27 +2,40 @@ name: CI

on:
push:
branches: [main, "feat/**"]
branches: [main, "feat/**", "fix/**"]
pull_request:
branches: [main]

jobs:
test:
runs-on: ubuntu-latest
name: Tests (${{ matrix.os }}, Python ${{ matrix.python-version }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest]
python-version: ["3.10", "3.11", "3.12"]
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.11"

- name: Install async scanner dependency
run: python -m pip install --upgrade pip aiohttp

python-version: ${{ matrix.python-version }}
cache: pip
- name: Upgrade pip
run: python -m pip install --upgrade pip
- name: Install dependencies and security tools
run: python -m pip install -r requirements.txt pytest bandit pip-audit
- name: Compile Python sources
run: python -m compileall -q .

- name: Run tests
run: python -m compileall -q SpectraScan.py modules tests
- name: Startup/import smoke test
run: python -c "import SpectraScan; from modules.async_scanner import AsyncPortScanner; from modules.vuln_scanner import VulnScanner"
- name: Run regression tests
run: python -m unittest discover -s tests -p "test_*.py"
- name: Static security checks for hardened modules
if: runner.os == 'Linux'
run: bandit -r modules/async_scanner.py modules/brute_forcer.py modules/vuln_scanner.py modules/report_store.py -ll
- name: Dependency vulnerability audit
if: runner.os == 'Linux' && matrix.python-version == '3.12'
run: pip-audit -r requirements.txt
Loading
Loading