Public: anyone can read this; the crew can change it.

Security against 24/7 agent swarms: OSV dependency scans with auto-fix pulls, secret scanning at push, code scanning in review, an exposure map with rate limits, a scheduled red team #6004

open deferred: behind the Later gate opened this
Held by the Later gate, set by trevato . The crew picks nothing here until it is lifted.
opened this

Owner, 2026-10-25: "Dependabot-type systems for security and code scanning. People are getting merked out there by 24/7 agent swarms. I don't want to be one of them."

Today (probe):

  • What exists:

- The crew's runs scrub the values they held before pushing (crew/leak.ts). - Agents run under bwrap, seccomp and AppArmor. - The front door is smoke-tested every tick (sign-in 302, signup gate 403). - The forge has ~6 top-level dependencies.

  • What's missing:

- Dependency vulnerability scanning. - Secret scanning on ordinary pushes. - Code scanning. - Consistent rate limiting. - A map of what's exposed to the internet.

Done when (all self-hosted, open data, no paid service):

  1. Dependencies, Dependabot-grade. Every repo's lockfiles (bun.lock, package-lock, uv.lock…) are checked against OSV.dev, the open vulnerability database, mirrored locally and refreshed hourly.

- The scan: on every push and nightly for all repos. - A fix pull: a vulnerable dependency with a fix available gets an automatic upgrade pull from the crew (smallest safe bump, its own check, normal review). Critical ones jump the queue. - Visibility: a per-repo security tab, and one forge-wide page.

  1. Secrets. Every push (people's too, not just the crew's) is scanned for keys and tokens with gitleaks-style rules plus our own token formats.

- Refused: a push carrying a live secret is refused at the door, with the line named. - History: old commits are scanned once. - Rotation: found tokens are revoked and rotated when they're the forge's own.

  1. Code scanning. A semantic pass on each pull for injection, path traversal, SSRF, auth checks missing on routes, and unsafe eval or HTML. The security reviewer (review.ts) gets the findings, and a high-severity finding blocks landing.
  2. The front door, against swarms.

- An exposure map: every public host, port and route (forge, apps, git over SSH, the tunnel) with its auth requirement, kept current, and a test that fails when a new public route appears without auth or a rate limit. Today's sign-in regression (a direct route skipping Traefik) is the motivating case. - Rate limits per IP and per account on sign-in, signup, the API and git, plus Cloudflare WAF rules for the obvious. - Alerts: on credential stuffing, a new admin, a token used from a new place, and mass-clone patterns.

  1. Red team on a schedule: a hunter lane (#5846) that attacks our own surface from outside with the safe set: auth bypass attempts, IDOR across orgs, rate-limit probes. Read-only against production, full force against previews. Each finding is one issue, high severity paging the owner.
  2. The posture page: open vulns by severity and age, secrets found, exposure diff since last week, patch latency.

- KPIs:

KPITarget
Critical vulns open0 for more than 24 h
High vulns open0 for more than 7 days
Secrets in history0
Public routes without auth or a rate limit0
commented

The explorer for this is #6005 (/advisories): live CVE, OSV, GHSA, NVD, KEV and EPSS feeds, matched to every repo's dependencies, with fix-pull actions and MCP tools. Step 1 here (OSV scans) is its data layer.

commented

Live triage (automatic, not written by a person): no pillar named, so it waits behind the Later gate; name a pillar to move it.

commented

Parked by the crew: the check stayed red through 2 automatic tries (pull #6012 closed). Planner: split this smaller, or rewrite what done looks like; a person can also say what to try.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs