Skip to content

Make port scanner input, skipped results and workload controls honest #15

Open

Description

@TechLuddite

Confirmed October 10, 2026 review

The scanner already caps host expansion at 256, uses bounded concurrency, and has a first-run authorization modal. Keep those existing protections; adding them is not outstanding work.

Concrete defects found:

  • Custom 1-65535 silently scanned only the first 100 ports per range.
  • Invalid custom port input silently selected default ports.
  • Invalid IPv4 octets were normalized into other addresses (999.0.0.1/30 became 231.0.0.1 and .2).
  • Ports skipped after discovery failed were recorded as filtered with latencyMs: 0, despite never being tested.

The current implementation work addresses these correctness defects with explicit input errors, a visible port cap, strict address validation, and nullable timing/not-tested results.

Remaining follow-up

  • Add cancellation/stop that terminates pending host discovery and service probes.
  • Surface aggregate host × port workload before large scans and choose an appropriate aggregate cap.
  • Preserve the timing-inference limitation in every result/export; browser probes cannot prove a TCP port is open or closed.
  • Add browser regressions for large/invalid input, discovery skips, and interrupted scans.

Activity

  1. changed the title [-]Harden local port scanner against abuse and false confidence[/-] [+]Make port scanner input, skipped results and workload controls honest[/+] on Oct 11, 2026
  2. TechLuddite commented on Oct 11, 2026

    @TechLuddite
    OwnerAuthor

    Draft PR #20 addresses strict IPv4/port validation, silent port selection changes, untested-port classifications and null timings. Stop/cancellation and aggregate workload controls remain follow-ups, so this issue stays open.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions