Skip to content

Fix/report save location#13

Merged
marksie1988 merged 4 commits intoperiphery-security:mainfrom
NullRabbitLabs:fix/report-save-location
Mar 9, 2026
Merged

Fix/report save location#13
marksie1988 merged 4 commits intoperiphery-security:mainfrom
NullRabbitLabs:fix/report-save-location

Conversation

@simonmorley
Copy link
Copy Markdown

PR Checklist

Please check if your PR fulfills the following requirements:

PR Type

What kind of change does this PR introduce?

  • Bugfix
  • Feature
  • Code style update (formatting, local variables)
  • Refactoring (no functional changes, no api changes)
  • Build related changes
  • CI related changes
  • Documentation content changes
  • Other... Please describe:

What is the current behavior?

Issue Number: N/A

What is the new behavior?

Does this PR introduce a breaking change?

  • Yes
  • No

Other information

Simon Morley added 4 commits March 6, 2026 13:12
- cve_scan/scanner.py: remove unreachable duplicate code block after return
  in _scan_service (dead code from a bad copy-paste refactor)

- cve_scan/scanner.py: fix NVD rate-limit detection using wrong HTTP status
  code; NVD returns 429 (Too Many Requests) for rate limits, not 403
  (Forbidden). Retrying on 403 was pointless and indicated an auth problem.

- password_scan/scanner.py: fix UnboundLocalError when credentials list is
  empty; variable i was unbound if the for-loop never executed, causing
  tested_count=i+1 to crash. Initialize i=-1 before the loop.

- password_scan/scanner.py: fix backward-compat scan_host() calling
  scanner.scan_host(host, ports) without the required mac argument,
  passing ports into the mac parameter and leaving ports missing.
Threads unprivileged=True from CLI through to nmap, bypassing the
privilege check and passing --unprivileged to all nmap invocations
(ping sweep, port scan, service probe) so users on macOS can run
without sudo using TCP connect scans.

Also threads verbose=True from CLI through to the scanner so
--verbose prints phase-by-phase nmap progress, discovered hosts,
and open ports as they are found.
Adds a colorblind.yaml skin using the Okabe-Ito (2008) palette —
the scientific standard for colorblind accessibility, safe for
deuteranopia, protanopia, and tritanopia.

Sky blue replaces cyan, orange replaces yellow warnings, vermillion
replaces red for danger, and all icons fall back to ASCII text forms
([OK], [X], [!]) so meaning is never conveyed by color alone.

--colorblind hot-swaps the theme before the scan runs so all
output including results, risk grades, and CVE badges renders in
the safe palette.
output_dir was defaulting to get_config_dir()/scans which buried scan
results inside ~/Library/Application Support/edgewalker/scans on macOS
— a hidden system directory users can't easily find.

Now uses a dedicated get_data_dir() (defaulting to ~/.edgewalker) so
results land in ~/.edgewalker/scans, visible and accessible from the
terminal. Override with EW_DATA_DIR env var.
@codecov
Copy link
Copy Markdown

codecov bot commented Mar 6, 2026

Codecov Report

❌ Patch coverage is 97.22222% with 1 line in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
src/edgewalker/modules/port_scan/scanner.py 94.73% 1 Missing ⚠️

📢 Thoughts on this report? Let us know!

@marksie1988 marksie1988 merged commit 444d8c1 into periphery-security:main Mar 9, 2026
6 of 10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants