Repository navigation
feat: bound scoped TCP and UDP inventory across resumes (#284) - #299
Conversation
|
Final delivery record for exact head
The user authorized a rebase merge once the exact-head gate was fully green and clean. |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Require scoped durable checkpoints, cumulative probe and duration caps, DNS pinning, and explicit full-port selection for live active discovery. Keep uncertain effects pending for reconciliation and document remaining native and service-inventory gaps.
Reject oversized, malformed, and missing explicitly supplied synthetic fixtures before dispatch. Use canonical decoding for scope and target files. Active discovery suite: 65 tests passed; optimized regressions: 2 passed; Ruff and diff checks passed. Revert this commit to restore the previous input loading behavior. Refs #284.
f103f64 to
11582fc
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: f103f64400
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
Final delivery evidence for exact head
The user authorized a rebase merge only after the exact-head hosted CI, current-head independent review, review-thread, draft, and mergeability gates are all clean. This comment records that authorization; it does not waive any gate. Residual boundaries remain documented: routed IPv6 and production firewall behavior require authorized environment evidence, loopback performance is not a WAN claim, and same-authority mutation of the protected checkpoint directory during a lock lifetime is outside the lock guarantee. No issue closure, release, or deployment is included. |
Scope
Issue #284 requires comprehensive, scoped host and service inventory. This change adds bounded explicit target lists and IPv4/IPv6 CIDR expansion; separate TCP and UDP port selection, including a deliberate full TCP range; normalized observation provenance; raw protocol evidence with confidence; coverage and diff reporting; and durable interruption/resume semantics.
The scanner validates authorization, scope, budget, cancellation, and target identity before each stage. It reserves probe attempts durably before dispatch, records completions in an append-only journal, releases orderly undispatched reservations, and leaves uncertain effects pending reconciliation without redispatch. Canonical IP identity prevents equivalent IPv6 literals from causing duplicate probes.
Live UDP sends an empty datagram unless the plan selects a nonrecursive root NS query. DNS identification requires a matching, structurally valid response. Responses retain length and digest rather than body content; silence remains unknown and refusal is closed. TCP can observe up to 512 bytes of a server-first banner after a bounded wait without an application payload. Optional TLS on 443/8443 records version and cipher without peer verification. These observations do not establish operating system, exploitability, or a product version absent protocol evidence.
The final review repair preserves TCP and UDP import identity independently, rejects unsupported imported protocols, retains meaningful Nmap service names without inventing product/version evidence, makes offline fixtures protocol-aware, requires explicit DNS evidence provenance, counts UDP timeouts accurately, and enforces both the configured probe budget and a hard Cartesian materialization cap. Coverage accounting now uses bounded set membership for quarantined endpoints.
Safety and recovery
ScanBudget.max_targets; overlapping or equivalent targets fail closed before dispatch.Validation
Current pushed revision:
5a49c45107042bea9312d73fb0fe04868a1e5072.pip-auditreported no known vulnerabilities.make checkpassed in the repository virtual environment.CAP_NET_ADMINlab observed closed before packet drop, timeout/filtered uncertainty during the drop, and closed after rule removal, with cleanup.Hosted checks and current-head independent review are tracked on this pull request and must be green before merge.
Remaining platform boundaries
CAP_NET_ADMIN; the default unprivileged lab reports that path unavailable and retains conservative unknown/filtered classification.No release or deployment is included.
Refs #284