Skip to content

v2.0.0

Latest

Choose a tag to compare

@github-actions github-actions released this 07 Nov 16:10

CyberStrike 2.0 — the first fully public, open-core release, and effectively a rebuild: ~1,400 commits since v1.1.16. The execution and reasoning stack — HackBrowser, the Vortex traffic engine, the WSTG web pipeline and all its probes, the cloud program libraries, and the orchestration engine — ships under AGPL-3.0-only.

Added

  • A new, ownable Caido/Burp-class traffic engine with a durable, queryable corpus (SQLite-backed SqliteStore, with a MemoryStore for ephemeral use) and HAR import/export for interop with browsers, Burp, and Caido.

  • One predicate DSL drives both rule conditions and agent queries, subsuming the former HTTPQL: logical/comparison/arithmetic operators, 24 functions (contains, regex, jwt_header/payload/alg, base64_decode, compare_versions, count_header, …) and corpus quantifiers (any/all/count/countDistinct), behind a ReDoS guard (regex() is full-scope-only, 2,000-char pattern cap, 1 MB subject cap).

  • Rules are declarative data in four shapes — Declarative (one response), Aggregate (collapse many matches into one finding), Chain (multi-step cross-request correlation), and Probe (active: select → inject {canary} → detect). Ships ~650 technology-detection fingerprints across ~24 packs plus 106 security & bot-management fingerprints (WAFs, CAPTCHAs, bot/fraud protection).

  • Canary correlation (same-request plus stored second-order reflection, with context scoring and an SSTI template-canary) and value-correlation "taint" chains that correlate by value rather than field name, so an identifier chains across requests even when the field is renamed.

  • Signal triage lifecycle (new → reviewed → confirmed → dismissed → escalated) with API endpoints, an injection-point inventory (query/body/path/header, value-typed) with coverage tracking, and a reverse-index prefilter built for 20k × 20k rule/request workloads.

  • Two agent tools, http_replay (structured) and http_replay_raw (byte-exact raw TCP/TLS). A lossless HTTP message model preserves header order, case, and duplicates, and deliberately does NOT normalize the target (.., %2e, // survive), so path-confusion and request-smuggling tests mean what they say.

  • Field-level mutation across query, headers, body (raw and JSON dot-path), cookies, path, and method — each value optionally run through an 11-codec encoding pipeline (url, url-double, base64(url), hex, html-dec/hex, unicode, …), the basis for WAF-bypass encoding.

  • A governed batch runner: bounded or AIMD-adaptive concurrency, token-bucket rate pacing, per-host circuit breaker, idempotent-only retry, and a hard 5,000-request per-session global budget (anti-self-DoS). Baseline-vs-exploit diff in a single call; a single-quoted curl equivalent returned as evidence; replays are scope-guarded to already-captured hosts.

  • The monolithic web-application agent is replaced by 13 WSTG-aligned specialist agents, one per WSTG top-level category (4.1 Information Gathering through 4.12 API Testing / OWASP API Top-10) plus a custom LLM/AI-security lane, beneath an orchestrator (wstg-agent) and a cross-cutting escalation-hunter.

  • Deterministic probe tools owned per specialist: access_probe (cross-identity BAC / IDOR / BOLA / BFLA), session_probe (JWT alg:none / weak-HMAC / kid-traversal / RS256→HS256 confusion / cookie entropy), crypto_probe (cleartext / HSTS / mixed content + live TLS handshake), error_probe, identity_probe, login_probe (default-creds / lockout / enumeration), and inject_probe.

  • inject_probe covers 15 injection classes: reflected XSS with a self-submitting-page PoC, blind/time-based SQLi, NoSQL/LDAP/XPath differentials, SSTI, command injection, LFI, CRLF, Host-header, mass-assignment, HTTP verb tampering, file-upload bypass (classifies stored vs executed), and HPP — with WAF detection and percent-encoding evasion. SSRF (out-of-band) and open-redirect are handled through dedicated paths.

  • A deterministic dispatcher spawns a specialist only for a routable, medium-or-higher signal — low/info/technology leads stay visible in the sidebar and never burn a model call; a continuous worker pool (default 3 in flight) with timeout/lease recovery keeps the queue draining.

  • An evidence gate: a finding cannot leave "draft" without a hashed http_replay verification token derived from its own evidence request-ids; an impact oracle downgrades unproven claims (open-redirect proven only on a realized off-site 302, XSS only on a browser-canary execution, authorization only on a success-vs-denial differential); per-class severity caps can only lower severity; a dedup fence merges duplicates and one-issue-across-many-endpoints.

  • A loadable escalation chain catalog (ssrf-internal, idor-mass, redirect-oauth, cors-token, bfla-privesc, jwt-authz, …, overridable via external packs), an assessment-completion supervisor that re-wakes the deterministic runners and resumes only when coverage is incomplete, and a self-hosted OOB interaction server (cyberstrike oob) for blind SSRF / RCE / XXE / SQLi / SSTI and DNS exfil confirmation — no third-party service required.

  • Per-role credential capture is now per origin/host (fixing cross-host identity bleed), and a discovery engine (crawl, JS-bundle route & secret mining, source-map parsing, OpenAPI import, well-known probing) feeds a per-session endpoint-template cache.

  • AI-driven navigation (LlmNavigator — "observe → interpret", with a deterministic fallback on any model failure), framework fingerprinting (SPA/SSR) feeding a framework-adaptive executor, a DataCollector that classifies every request, JS-bundle route mining, secret scanning (AWS/Google/GitHub/Slack keys and JWTs, values redacted), and source-map parsing. The 1,859-line crawl monolith was split into ~17 modules over a shared probe runner.

  • A real MV3 browser extension ships with the appliance and desktop app: a draggable CyberStrike panel and co-driving overlay (AI → Human → Idle driver toggle with a HUD, synthetic cursor, and reasoning narration), a direct server control channel (the intermediate receiver is gone), and a multi-profile credential launcher that spawns a color-badged Chrome-for-Testing profile per role.

  • Crawl safety: browser-death detection, a worker-crash net, SIGKILL on teardown, and visited-on-navigate so redirects can't spin the crawl.

  • Three domain packages — @cyberstrike-io/aws (174 offensive programs), @cyberstrike-io/azure (156, including an M365 lane), @cyberstrike-io/gcp (34, a 4-phase assessment) — with every program detection-mapped to the CloudTrail event and GuardDuty finding it would trigger, and AWS actions gated by an iam simulate-principal-policy pre-flight (including a 21-vector privilege-escalation-path scan).

  • One provider-agnostic orchestrator over the AssessmentProvider interface runs a Layer-2 agentic pipeline (identity → triage → parallel → sync → followup → verify → complete) with per-service-group analyst subagents (AWS 9 / Azure 9 / GCP 6) plus shared cloud-orchestrator, cloud-batch-verifier, cloud-followup, cloud-verify, and a red escalation-hunter.

  • A provider-agnostic inventory graph (CloudAsset / CloudEdge / CloudExposure) traversed deterministically by 7 chain patterns (privilege-escalation, lateral-movement, data-exfiltration, subdomain-takeover, credential-harvest, identity-pivot, network-path), replacing LLM-guessed follow-up detection.

  • Native (non-MCP) domain plugins: a package default-exports (input) => Promise<Hooks>, the host injects a typed CoreRuntime as input.core, and packages import types only (erased at build). CORE_API_VERSION = 2.0.0, with requireCoreApi() fail-fast compatibility checks.

  • Plugins contribute custom tools (tool({ description, args, execute })) into the host registry, and hook a broad event surface (event, config, tool, provider, auth, chat.message/params/headers, permission.ask, command.execute.before, tool.execute.before/after, shell.env, plus experimental transforms).

  • The input.core.web building-block kit exposes the governed-send seam, the lossless message model and pure transforms, and the replay engine + captured-traffic store, so third-party web tools get the same governed, in-scope request machinery as the first-party probes. Static cyberstrike package manifest + auto-discovery via cyberstrike domains list / domains info.

  • Tabbed multi-session v2 shell as the default across Web and Desktop (tabs, home page, command palette, live-progress session avatars), plus an Electron desktop app (macOS/Windows/Linux) with a bundled server sidecar and signed MSI/pkg managed-deploy targets.

  • One shared command catalog consumed by TUI, Web, and Desktop so slash names, aliases, categories, and behavior can't drift; new/unified /pin (Alt+1–9 quick switch), /web context viewer, /skills browser, /timestamps, /thinking, /rename, /copy, /timeline, /status, /help, plus real Methodology and Report dialogs on the web app.

  • Canonical severity colors across every surface (crit+high red / medium orange / low yellow / info gray), a unified vulnerability panel (severity badges, triage lifecycle, Bugcrowd-format export), a Vortex Signals sidebar, 21 palette themes with automatic v2 token derivation, and a log viewer under Settings → Help → Logs.

  • Model selection now persists server-side, so every out-of-band action (navigator, compaction, idle resume) uses the model you picked instead of silently falling back to the catalog default.

  • InspectionQueue with lease-based dispatch and lifecycle phase detection (with a sidebar indicator), a WebInspectionRouter with multi-source reconciliation, and a parallel RetestWorker with a per-endpoint scenario model and bounded fan-out.

  • HAR → CyberStrike ingest bridge for offline/extension capture, OpenAPI/Swagger spec enumeration at ingest, a CDP stealth module (WebGL/Canvas/screen fingerprint protection, system-Chrome auto-detect), and a web --open/--no-open flag for headless serve.

Changed

  • Web pipeline: the monolithic web-application agent and its per-transaction "proxy agents" are replaced by WSTG specialists behind a deterministic dispatcher — the LLM fires only on signal-producing transactions, never in the byte-level hot path.
  • Vortex: rules and queries migrated to the DSL engine; HTTPQL retired (the DSL subsumes it).
  • HackBrowser: the extension talks directly to the CyberStrike server (intermediate receiver dropped); the 1,859-line crawl monolith refactored into ~17 modules over a shared probe runner.
  • Cloud: hardcoded cloud agents replaced by a specsToAgents bridge that turns each provider's declarative AgentSpecs into host agents, making the orchestrator provider-agnostic and letting web/cloud/mobile/internal specialists all come from the domain registry.
  • Providers: Anthropic OAuth/subscription migrated to LanguageModelV3 and @ai-sdk/* aligned to v6-native; Claude routes through the Anthropic Messages API, GPT-5 Copilot models through the Responses API.
  • UI/CLI: canonical severity colors and a unified vulnerability format across TUI/Web/Desktop; slash command names and aliases aligned across all three surfaces from the shared catalog.
  • License: all packages unified under AGPL-3.0-only.

Fixed

  • HackBrowser: Detect browser death and gracefully terminate crawl instead of hanging
  • HackBrowser: Worker crash safety net — one throw can't kill the entire crawl
  • HackBrowser: Ingest full-page navigations, not just fetch/XHR; static JS/CSS assets no longer counted as endpoints
  • HackBrowser: LLM navigator works with thinking/reasoning models
  • HackBrowser: Mark frontier URL visited on navigate, so redirects can't spin the crawl
  • HackBrowser: SIGKILL spawned browsers on process teardown, not just SIGTERM
  • Web Pipeline: Cap agent scaling at MAX_AGENTS_PER_GROUP (4) to prevent runaway spawning
  • Web Pipeline: Continuous worker-pool drain — no longer serialize behind one slow specialist
  • Web Pipeline: Dedup fence keeps the highest-severity finding as primary; retroactive reconciliation on first read
  • Web Pipeline: Recover stalled/failed dispatches; re-arm dispatcher against lost wakeups
  • Web Pipeline: Re-arm lifecycle poll on re-entry so phase never sticks at 'inspecting'
  • Vortex: Acknowledge structurally un-routable signals; mark unroutable items examined so the queue drains
  • Vortex: Bridge uses durable SqliteStore, not MemoryStore
  • Providers: Abort stalled provider stream instead of hanging the loop forever
  • Providers: Cap LLM retry at 5 to prevent infinite loops; handle undefined finishReason
  • Providers: Exchange GitHub OAuth token for Copilot session token; retry once with fresh token on 403
  • Desktop: Prefer workspace app/dist over data-dir copy for web UI; boot the bundled server correctly on first launch
  • Desktop: Gate macOS signing/notarization on CSC_LINK; fix platform=all building zero targets
  • UI: Guard 15+ sdk()/sync() accessors against undefined during init — prevent crashes on cold start
  • UI: Provide top-level QueryClientProvider so v2 createMutation works
  • CLI: Cap process stdout/stderr to 5MB to prevent OOM
  • CLI: Add 5s force-exit watchdog after stdin close; abort crawl on stdin close to prevent orphan processes
  • Security Tools: Professional finding format — flat H2 sections, CWE+OWASP tags, safe PoC
  • MCP: Survive EMFILE/ENFILE during skill load + bound concurrency
  • Build: Break web↔cyberstrike cyclic build dependency; ship declaration types for domain packages

Performance

  • Vortex: Reverse-index prefilter for 20k×20k rule/request workloads
  • Vortex: Corpus analysis moved off the hot signals read path; chain value-reuse join indexed
  • Vortex: Compile regexes once + add ~= literal-contains operator
  • Inspection: Drop redundant reclaimStale scan from wake()

Security

  • Vortex: Replay never touches the original request; replay verified end-to-end
  • Vortex: DSL regex ReDoS guard; surface swallowed ingest failures at WARN
  • Security Tools: Block bun/node/nc/socat bash bypasses in vuln agent denies

Documentation

  • Docs site overhaul — consolidate permissions, hooks, providers, CLI, MCP, slash commands into single pages; remove 90+ orphan files across 9 locales
  • README rewrite — outcome-first structure, correct MCP claims, add Vortex
  • Vortex architecture doc, roadmap, agent-authoring + SDK/embedding guide
  • HackBrowser 2.0 design — AI-driven navigator, framework-adaptive strategies
  • Desktop enterprise deployment — Azure Trusted Signing setup + deployment guide

Infrastructure

  • Windows MSI + macOS pkg managed-deploy targets; wire Windows + mac-installer signing
  • Add canary channel for throwaway test builds; add platform input for single-OS builds