Skip to content

Agent proposal for #7 - #21

Merged
hsinatfootprintai merged 5 commits into
mainfrom
agent/issue-7
Oct 23, 2026
Merged

hsinatfootprintai merged 5 commits into
mainfrom
agent/issue-7

Conversation

@containarium-ci

@containarium-ci containarium-ci Bot commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

Proposed by the coding agent on a member's box for #7 (run 763edbf0).

Review this like any other change. The agent ran on the member's own machine from the text of the issue; the platform has not built or tested it.

  • Tests, as reported by the agent: passed
  • Files: 5

The platform made the commit and the branch for this pull request from the files the agent handed back at the end of its run; it does not use the agent's own git state on the box. Anything the summary below says about committing, branching or pushing describes only what the agent itself could do on the box.

The agent's summary, quoted:


Implements slice S1 in a new internal/fetch/passive.go. PassiveFetcher refuses reasons outside TARGET/SUBRESOURCE/DISCOVERY_PATH/DECLARED: TARGET must be the scanned URL, and DISCOVERY_PATH must be one of the four fixed paths on the target origin. Refused requests are recorded as RESULT_REFUSED. It sends GET only, with the Touchstone User-Agent on every request. Limits: request budget default 50, max 200 (more is an error), and redirect hops count against it; 2 MiB per response; 20 MiB per scan; 10 s per request. The SSRF guard runs in net.Dialer.Control after DNS (with an injectable resolver), so loopback, RFC 1918, link-local incl. 169.254.169.254, CGNAT, ::1, fc00::/7, 0/8, multicast, hostnames resolving to private IPs and redirects to private IPs are all refused at dial time. Checked(), RequestsUsed() and RequestBudget() supply the report's checked list and counters. The CLI now accepts 'scan [--allow-private] <url>' and passes the flag to a service factory as fetch.Options. That is the only place AllowPrivate is set; the stub service ignores it until the S2 pipeline consumes it. Table-driven tests cover each limit and every SSRF case. Disabling the guard makes all 17 SSRF cases fail. gofmt, go vet, staticcheck 2026.2.2 and go test ./... all pass with go1.27.3. Not run: buf and web tests (no proto/web changes; buf and Node not installed). Tools used: go version go1.27.3 linux/amd64 (already in ~/.local on the box); staticcheck 2026.2.2 (0.8.2) (already in ~/.local/bin). Nothing was installed.

@hsinatfootprintai
hsinatfootprintai merged commit 45e9fff into main Oct 23, 2026
3 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.

1 participant