autonomous red teaming platform; multi-agent offensive-security meta-harness
This report summarizes scanner evidence for elder-plinius/T3MP3ST, a TypeScript project with 6,478 GitHub stars. SynthScan examined 86,499 lines of code across 1708 source files, recording 215 pattern matches distributed across 14 syntactic categories. The legacy adjusted pattern signal is 5.3 (Moderate pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 106 finding(s).
Are imports declared and package/API names verified? 13 finding(s).
Are wrappers, guards, and repeated structures necessary? 136 finding(s).
Which changes need focused human review? 215 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 215 distinct pattern matches across 14 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | ctf/docker-compose.yml | 13 | # ============================================================ | COMMENT |
| MEDIUM⚡ | ctf/docker-compose.yml | 15 | # ============================================================ | COMMENT |
| MEDIUM | ctf/docker-compose.yml | 287 | # ============================================================ | COMMENT |
| MEDIUM | ctf/docker-compose.yml | 289 | # ============================================================ | COMMENT |
| MEDIUM | ctf/docker-compose.yml | 342 | # ============================================================ | COMMENT |
| MEDIUM | ctf/docker-compose.yml | 344 | # ============================================================ | COMMENT |
| MEDIUM | ctf/docker-compose.yml | 402 | # ============================================================ | COMMENT |
| MEDIUM | ctf/docker-compose.yml | 404 | # ============================================================ | COMMENT |
| MEDIUM | ctf/docker-compose.yml | 443 | # ============================================================ | COMMENT |
| MEDIUM | ctf/docker-compose.yml | 445 | # ============================================================ | COMMENT |
| MEDIUM | src/server.ts | 6505 | // ── SELF-LEARNING LOOP — lesson injection ─────────────────────────── | COMMENT |
| MEDIUM | src/llm/index.ts | 1034 | // ── Native function-calling support ────────────────────────────────── | COMMENT |
| MEDIUM | src/llm/index.ts | 1122 | // ── Native tool-call parsing (if we probed) ──────────────────────── | COMMENT |
| MEDIUM | src/net/proxy.ts | 30 | // ── parsed proxy shape ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/net/proxy.ts | 39 | // ── module state ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/net/proxy.ts | 69 | // ── url parsing ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/net/proxy.ts | 103 | // ── loopback + API-provider bypass (bypass list) ───────────────────────────── | COMMENT |
| MEDIUM | src/net/proxy.ts | 135 | // ── SOCKS-aware undici connector ───────────────────────────────────────────── | COMMENT |
| MEDIUM | src/net/proxy.ts | 186 | // ── public API ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/net/proxy.ts | 239 | // ── fetch-level bypass ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/net/proxy.ts | 290 | // ── IP / leak checker ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/operators/index.ts | 33 | // ── Phase-based model routing (opt-in) ─────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | src/operators/index.ts | 193 | // ── Runtime operator overrides (set via the Operatives tab / Admiral advisor) ───────────── | COMMENT |
| MEDIUM | src/operators/index.ts | 535 | // ── Phase-based model routing (opt-in) ────────────────────────────── | COMMENT |
| MEDIUM | src/arsenal/parsers.ts | 23 | // ── small, defensive helpers ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/arsenal/parsers.ts | 73 | // ── nuclei -jsonl : one finding per template match ─────────────────────────── | COMMENT |
| MEDIUM | src/arsenal/parsers.ts | 99 | // ── httpx -json : one info finding per live host (technology fingerprint) ───── | COMMENT |
| MEDIUM | src/arsenal/parsers.ts | 121 | // ── dalfox --format json : one finding per XSS probe ───────────────────────── | COMMENT |
| MEDIUM | src/arsenal/parsers.ts | 151 | // ── ffuf -of json : one aggregate info finding (N paths) ───────────────────── | COMMENT |
| MEDIUM | src/arsenal/parsers.ts | 171 | // ── katana -jsonl : one aggregate info finding (N endpoints) ────────────────── | COMMENT |
| MEDIUM | src/arsenal/parsers.ts | 187 | // ── semgrep scan --json : one finding per rule match (SAST) ────────────────── | COMMENT |
| MEDIUM | src/arsenal/parsers.ts | 235 | // ── trivy fs --format json : one finding per package vulnerability ──────────── | COMMENT |
| MEDIUM | src/arsenal/parsers.ts | 268 | // ── grype dir:. -o json : one finding per matched vulnerability ─────────────── | COMMENT |
| MEDIUM | src/arsenal/parsers.ts | 294 | // ── garak : LLM/agent red-team probes (report.jsonl) ───────────────────────── | COMMENT |
| MEDIUM | src/arsenal/parsers.ts | 358 | // ── sqlmap : text stdout → one finding per vulnerable parameter ────────────── | COMMENT |
| MEDIUM | src/arsenal/parsers.ts | 417 | // ── feroxbuster --json : one aggregate info finding (N reachable paths) ────── | COMMENT |
| MEDIUM | src/arsenal/parsers.ts | 438 | // ── wafw00f : text output → WAF detection finding ─────────────────────────── | COMMENT |
| MEDIUM | src/arsenal/parsers.ts | 464 | // ── trufflehog --json : one finding per leaked secret ──────────────────────── | COMMENT |
| MEDIUM | src/arsenal/parsers.ts | 491 | // ── arjun -oJ / text : found hidden parameters per endpoint ────────────────── | COMMENT |
| MEDIUM | src/arsenal/parsers.ts | 534 | // ── wpscan --format json : WP core/plugin/theme vulns + interesting findings ────────────── | COMMENT |
| MEDIUM | src/arsenal/index.ts | 210 | // ── Egress scope gate (Phase-0 pack-hunt safety primitive) ────────────────────────────────── | COMMENT |
| MEDIUM | src/arsenal/index.ts | 1912 | // ── subdomain_takeover_check ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/arsenal/adapter-tools.ts | 352 | // ── Source / supply-chain scanners (non-networked, operate on a PATH) ─────────────────────────── | COMMENT |
| MEDIUM | src/arsenal/adapter-tools.ts | 495 | // ── Recon / OSINT adapters (networked) ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/__tests__/agent-parallel.test.ts | 15 | // ─── Helpers ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/__tests__/agent-parallel.test.ts | 73 | // ── 1. Single tool call still works (sequential path) ───────────────────────── | COMMENT |
| MEDIUM | src/__tests__/agent-parallel.test.ts | 109 | // ── 2. Multiple tool calls execute concurrently ──────────────────────────────── | COMMENT |
| MEDIUM | src/__tests__/agent-parallel.test.ts | 167 | // ── 3. Results maintain original order ───────────────────────────────────────── | COMMENT |
| MEDIUM | src/__tests__/agent-parallel.test.ts | 230 | // ── 4. Concurrency limit is respected ───────────────────────────────────────── | COMMENT |
| MEDIUM | src/__tests__/agent-parallel.test.ts | 279 | // ── 5. Scope-denied call doesn't block valid calls ──────────────────────────── | COMMENT |
| MEDIUM | src/__tests__/agent-parallel.test.ts | 330 | // ── 6. All calls fail → all errors returned ──────────────────────────────────── | COMMENT |
| MEDIUM | src/__tests__/agent-parallel.test.ts | 368 | // ── 7. Unknown tool in batch doesn't crash other calls ──────────────────────── | COMMENT |
| MEDIUM | src/__tests__/subdomain-takeover.test.ts | 91 | // ── Integration: the real tool handler with DNS + fetch mocked ────────────────────────────────── | COMMENT |
| MEDIUM | src/__tests__/spine-live.test.ts | 5 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/__tests__/spine-live.test.ts | 14 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/__tests__/ollama-native-tools.test.ts | 20 | // ── Helpers ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/__tests__/ollama-native-tools.test.ts | 53 | // ── Tests ──────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/__tests__/stub-honesty.test.ts | 15 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/__tests__/stub-honesty.test.ts | 24 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/__tests__/parsers.test.ts | 10 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| 30 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | …ch/xbow/results/blackbox-golden-final/xben_080_24.json | 1 | {"schema": "t3mp3st.bench.cybench/v1", "timestamp": "2026-06-29T15:23:01.546Z", "hunter": "live-tools", "black_box": tru | CODE |
| MEDIUM⚡ | …ch/xbow/results/blackbox-golden-final/xben_080_24.json | 1 | {"schema": "t3mp3st.bench.cybench/v1", "timestamp": "2026-06-29T15:23:01.546Z", "hunter": "live-tools", "black_box": tru | CODE |
| MEDIUM⚡ | …ch/xbow/results/blackbox-golden-final/xben_080_24.json | 1 | {"schema": "t3mp3st.bench.cybench/v1", "timestamp": "2026-06-29T15:23:01.546Z", "hunter": "live-tools", "black_box": tru | CODE |
| MEDIUM | …ch/xbow/results/blackbox-golden-final/xben_088_24.json | 1 | {"schema": "t3mp3st.bench.cybench/v1", "timestamp": "2026-06-29T22:53:20.553Z", "hunter": "live-tools", "black_box": tru | CODE |
| MEDIUM | …ch/xbow/results/blackbox-golden-final/xben_088_24.json | 1 | {"schema": "t3mp3st.bench.cybench/v1", "timestamp": "2026-06-29T22:53:20.553Z", "hunter": "live-tools", "black_box": tru | CODE |
| MEDIUM | …ch/xbow/results/blackbox-golden-final/xben_098_24.json | 1 | {"schema": "t3mp3st.bench.cybench/v1", "timestamp": "2026-06-29T23:13:57.354Z", "hunter": "live-tools", "black_box": tru | CODE |
| MEDIUM | …ch/xbow/results/blackbox-golden-final/xben_028_24.json | 1 | {"schema": "t3mp3st.bench.cybench/v1", "timestamp": "2026-06-29T13:34:00.454Z", "hunter": "live-tools", "black_box": tru | CODE |
| MEDIUM | …ch/xbow/results/blackbox-golden-final/xben_066_24.json | 1 | {"schema": "t3mp3st.bench.cybench/v1", "timestamp": "2026-06-29T21:34:52.009Z", "hunter": "live-tools", "black_box": tru | CODE |
| MEDIUM | …ch/xbow/results/blackbox-golden-final/xben_066_24.json | 1 | {"schema": "t3mp3st.bench.cybench/v1", "timestamp": "2026-06-29T21:34:52.009Z", "hunter": "live-tools", "black_box": tru | CODE |
| MEDIUM | …ch/xbow/results/blackbox-golden-final/xben_050_24.json | 1 | {"schema": "t3mp3st.bench.cybench/v1", "timestamp": "2026-06-29T15:15:58.668Z", "hunter": "live-tools", "black_box": tru | CODE |
| MEDIUM | …ch/xbow/results/blackbox-golden-final/xben_050_24.json | 1 | {"schema": "t3mp3st.bench.cybench/v1", "timestamp": "2026-06-29T15:15:58.668Z", "hunter": "live-tools", "black_box": tru | CODE |
| MEDIUM | …ch/xbow/results/blackbox-golden-final/xben_097_24.json | 1 | {"schema": "t3mp3st.bench.cybench/v1", "timestamp": "2026-06-29T20:59:33.622Z", "hunter": "live-tools", "black_box": tru | CODE |
| MEDIUM | …ch/xbow/results/blackbox-golden-final/xben_069_24.json | 1 | {"schema": "t3mp3st.bench.cybench/v1", "timestamp": "2026-06-29T14:12:58.874Z", "hunter": "live-tools", "black_box": tru | CODE |
| MEDIUM | …ch/xbow/results/blackbox-golden-final/xben_069_24.json | 1 | {"schema": "t3mp3st.bench.cybench/v1", "timestamp": "2026-06-29T14:12:58.874Z", "hunter": "live-tools", "black_box": tru | CODE |
| MEDIUM | …ch/xbow/results/blackbox-golden-final/xben_056_24.json | 1 | {"schema": "t3mp3st.bench.cybench/v1", "timestamp": "2026-06-29T14:19:10.779Z", "hunter": "live-tools", "black_box": tru | CODE |
| MEDIUM | …ch/xbow/results/blackbox-golden-final/xben_056_24.json | 1 | {"schema": "t3mp3st.bench.cybench/v1", "timestamp": "2026-06-29T14:19:10.779Z", "hunter": "live-tools", "black_box": tru | CODE |
| MEDIUM | …ch/xbow/results/blackbox-golden-final/xben_034_24.json | 1 | {"schema": "t3mp3st.bench.cybench/v1", "timestamp": "2026-06-29T15:12:49.048Z", "hunter": "live-tools", "black_box": tru | CODE |
| MEDIUM | …h/cybench/results/service-aggregate-1780394939114.json | 1 | {"timestamp": "2026-06-02T10:08:59.114Z", "hunter": "live-tools", "results": [{"slug": "cybsvc_project_sekai_ctf_sekaict | CODE |
| MEDIUM | …h/cybench/results/service-aggregate-1780394939114.json | 1 | {"timestamp": "2026-06-02T10:08:59.114Z", "hunter": "live-tools", "results": [{"slug": "cybsvc_project_sekai_ctf_sekaict | CODE |
| MEDIUM | …h/cybench/results/service-aggregate-1780590669862.json | 1 | {"timestamp": "2026-06-04T16:31:09.862Z", "hunter": "live-tools", "results": [{"slug": "cybsvc_project_sekai_ctf_sekaict | CODE |
| MEDIUM | …h/cybench/results/service-aggregate-1780590669862.json | 1 | {"timestamp": "2026-06-04T16:31:09.862Z", "hunter": "live-tools", "results": [{"slug": "cybsvc_project_sekai_ctf_sekaict | CODE |
| MEDIUM | …project_sekai_ctf_sekaictf_2022_crypto_robust_cbc.json | 1 | {"schema": "t3mp3st.bench.cybench/v1", "timestamp": "2026-06-30T03:18:00.878Z", "hunter": "live-tools", "black_box": fal | CODE |
| MEDIUM | …_archive-20260530/service-aggregate-1780150031884.json | 1 | {"timestamp": "2026-05-30T14:07:11.884Z", "hunter": "live-tools", "results": [{"slug": "cybsvc_project_sekai_ctf_sekaict | CODE |
| MEDIUM | …_archive-20260530/service-aggregate-1780150031884.json | 1 | {"timestamp": "2026-05-30T14:07:11.884Z", "hunter": "live-tools", "results": [{"slug": "cybsvc_project_sekai_ctf_sekaict | CODE |
| MEDIUM | scripts/cyb-sweep.sh | 2 | # Resumable Cybench re-run on the current harness. Runs each challenge in the list via | COMMENT |
| MEDIUM | scripts/bb-parallel.sh | 3 | # The harness already gives every run a unique docker project (projectName) and a | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ch/xbow/results/blackbox-golden-final/xben_089_24.json | 1 | {"schema": "t3mp3st.bench.cybench/v1", "timestamp": "2026-06-29T14:24:29.141Z", "hunter": "live-tools", "black_box": tru | CODE |
| LOW | …ch/xbow/results/blackbox-golden-final/xben_103_24.json | 1 | {"schema": "t3mp3st.bench.cybench/v1", "timestamp": "2026-06-29T21:08:16.770Z", "hunter": "live-tools", "black_box": tru | CODE |
| LOW | src/index.ts | 1583 | export function createAggressiveOperation(name: string, llmConfig?: LLMConfig): Tempest { | CODE |
| LOW | src/server.ts | 364 | function createTempestCommandInstance(missionName: string, apiKey: string | undefined, provider: string, model: string, | CODE |
| LOW | src/server.ts | 455 | function findCurlTransportOverrideFlag(args: string[]): string | undefined { | CODE |
| LOW | src/server.ts | 524 | function resolveCommandExecutionTarget( | CODE |
| LOW | src/server.ts | 870 | function upsertMissionFindingToLedger(finding: { | CODE |
| LOW | src/server.ts | 992 | function normalizeEvidenceProvenanceStrength(value: unknown, fallback?: EvidenceProvenanceStrength): EvidenceProvenanceS | CODE |
| LOW | src/server.ts | 998 | function inferEvidenceProvenanceStrength(input: { type?: unknown; source?: unknown; command?: unknown; uri?: unknown }): | CODE |
| LOW | src/server.ts | 1011 | function summarizeEvidenceProvenance(entries: EvidenceEntry[]): Record<EvidenceProvenanceStrength | 'strong', number> { | CODE |
| LOW | src/server.ts | 1021 | function strongestEvidenceStrength(entries: EvidenceEntry[]): EvidenceProvenanceStrength { | CODE |
| LOW | src/server.ts | 1046 | function normalizeHypothesisStatus(value: unknown, fallback: HypothesisStatus): HypothesisStatus { | CODE |
| LOW | src/server.ts | 1277 | function ensureExecTargetsWithinApprovedTarget(targets: string[], approvedTarget: string): string[] { | CODE |
| LOW | src/server.ts | 1284 | function ensureExecTargetsAuthorized( | CODE |
| LOW | src/server.ts | 1332 | function operationAllowsLocalAction(body: Record<string, unknown>, action: GuardAction, target: string): boolean { | CODE |
| LOW | src/server.ts | 3010 | function approvalTargetMatchesPressurePath(approval: ApprovalRequest, target: string): boolean { | CODE |
| LOW | src/server.ts | 4763 | function buildArsenalActivationPlan(): Record<string, unknown> { | CODE |
| LOW | src/server.ts | 5520 | function handleHypothesisDecompose(req: Request, res: Response): void { | CODE |
| LOW | src/server.ts | 7073 | async function runCodexExecReadinessProbe(command: string): Promise<{ stdout: string; stderr: string }> { | CODE |
| LOW | src/server.ts | 8030 | async function refreshConnectedLocalAgentHealth(force = false): Promise<void> { | CODE |
| LOW | src/llm/index.ts | 1607 | export function reframeWithAuthorizedContext(messages: LLMMessage[]): LLMMessage[] { | CODE |
| LOW | src/llm/index.ts | 2002 | export function createHuggingFaceBackbone(apiKey?: string, model?: string): LLMBackbone { | CODE |
| LOW | src/llm/index.ts | 2049 | export function createBestAvailableBackbone(): LLMBackbone { | CODE |
| LOW | src/net/proxy.ts | 247 | function installBypassFetchWrapper(): void { | CODE |
| LOW | src/evidence/index.ts | 88 | function hasPassedVerificationGate(finding: Finding): boolean { | CODE |
| LOW | src/operators/capability-diagnostics.ts | 29 | export function diagnoseOperatorCapabilities( | CODE |
| LOW⚡ | src/operators/index.ts | 203 | function advanceOperatorProfileRevision(archetype: OperatorArchetype): number { | CODE |
| LOW⚡ | src/operators/index.ts | 209 | export function getOperatorProfileRevision(archetype: OperatorArchetype): number { | CODE |
| LOW | src/config/index.ts | 242 | export function migrateLegacyDeepSeekSettings( | CODE |
| LOW | src/arsenal/takeover.ts | 68 | export function classifySubdomainTakeover(sig: TakeoverSignal): TakeoverVerdict { | CODE |
| LOW | src/arsenal/report-workspace.ts | 10 | export async function createPrivateReportWorkspace(adapterId: string): Promise<ReportWorkspace> { | CODE |
| LOW | src/resources/index.ts | 753 | export function forefrontPressureForFamily(family = ''): ForefrontPressureLane[] { | CODE |
| LOW | src/mission/adjudicate.ts | 543 | export function downgradeUnverifiedRefutes( | CODE |
| LOW | src/threat-intel/feed.ts | 105 | function optionalNonNegativeInteger(value: unknown): number | undefined { | CODE |
| LOW | src/opsec/index.ts | 68 | export function createAggressiveOpsecConfig(): OpsecConfig { | CODE |
| LOW | src/opsec/index.ts | 81 | export function createBalancedOpsecConfig(): OpsecConfig { | CODE |
| LOW | src/recon/code-ingest.ts | 943 | export function createMultiLangIngestConfig(repoRoot: string): IngestConfig { | CODE |
| LOW | src/recon/whitebox.ts | 111 | export function cloneGitHubRepoForAnalysis(repoUrl: string): ResolvedRepoSource { | CODE |
| LOW | src/recon/whitebox.ts | 166 | export function resolveRepoSourceForAnalysis(input: unknown): ResolvedRepoSource { | CODE |
| LOW | src/recon/whitebox.ts | 237 | export function ingestRepoToSourceContext( | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | vitest.config.ts | 1 | import { defineConfig } from 'vitest/config'; | COMMENT |
| LOW | ctf/docker-compose.yml | 1 | # T3MP3ST CTF Infrastructure | COMMENT |
| LOW | ctf/docker/pwn/format-string/vuln.c | 1 | #include <arpa/inet.h> | COMMENT |
| LOW | scripts/install-tools.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | scripts/bb-parallel.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | scripts/bb-sweep.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | scripts/keys.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | src/mcp-server.ts | 21 | COMMENT | |
| LOW | src/index.ts | 401 | // INERT until it's approved. Two ways in: (1) headless — a pre-authorization allowlist up front | COMMENT |
| LOW | src/server.ts | 161 | backslash: ['/\\evil.com', '/..//evil.com', '/%2e%2e%2f%2fevil.com'] | COMMENT |
| LOW | src/server.ts | 181 | // non-loopback address) they've opted into network access behind their own front, | COMMENT |
| LOW | src/server.ts | 241 | origin(origin, callback) { | COMMENT |
| LOW | src/server.ts | 7241 | temperature: typeof temperature === 'number' ? temperature : 0.3, | COMMENT |
| LOW | src/llm/index.ts | 881 | } | COMMENT |
| LOW | src/llm/index.ts | 1441 | } | COMMENT |
| LOW | src/llm/index.ts | 1561 | // ============================================================================= | COMMENT |
| LOW | src/llm/index.ts | 1781 | // An operator/client cancellation (options.signal aborted) won't fix on retry either — | COMMENT |
| LOW | src/config/index.ts | 1041 | // (Claude Code / Codex / Hermes / OpenCode / Oh My Pi), each using its own login — no API key or base | COMMENT |
| LOW | src/config/index.ts | 1301 | # HUGGINGFACE_API_KEY / HUGGINGFACE_TOKEN are also accepted as aliases. | COMMENT |
| LOW | src/pack/health.ts | 1 | // ============================================================================= | COMMENT |
| LOW | src/agent/local-agents.ts | 1 | // ============================================================================= | COMMENT |
| LOW | src/mission/adjudicate.ts | 121 | // Ruby) so a cited `n > cap` verifies against a source `$n > $cap`. Applied to BOTH cited and source | COMMENT |
| LOW | src/__tests__/oracle-consistency.test.ts | 1 | import { describe, it, expect } from 'vitest'; | COMMENT |
| LOW | src/recon/code-ingest.ts | 181 | COMMENT | |
| LOW | src/recon/code-ingest.ts | 241 | // `covered` is per-relationship, NOT a global count of the specific label: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | README.md | 29 | And it won't ask you to take its word for it. On **XBOW's own 104-challenge suite it scores 90.1% pass@1** — above XBOW' | CODE |
| MEDIUM | docs/AI_REDTEAM_TECHNIQUES.md | 319 | ### 2.13 Tool / Surface Routing & Cross-Modal Indirect Injection (agentic) | COMMENT |
| MEDIUM | docsite/t3mp3st-docs/content/AI_REDTEAM_TECHNIQUES.md | 330 | ### 2.13 Tool / Surface Routing & Cross-Modal Indirect Injection (agentic) | COMMENT |
| MEDIUM | src/recon/attack-graph.ts | 68 | // vocab the recon scaffold draws candidate nodes from (clearly recon-pending, not findings) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …ch/xbow/results/blackbox-golden-final/xben_005_24.json | 1 | {"schema": "t3mp3st.bench.cybench/v1", "timestamp": "2026-06-29T13:13:10.808Z", "hunter": "live-tools", "black_box": tru | CODE |
| MEDIUM | …ch/xbow/results/blackbox-golden-final/xben_082_24.json | 1 | {"schema": "t3mp3st.bench.cybench/v1", "timestamp": "2026-06-29T21:40:56.515Z", "hunter": "live-tools", "black_box": tru | CODE |
| MEDIUM | src/orchestration/orchestrator.ts | 464 | "i must decline", "i'm unable to", "i am unable to", "i won't be able to", | CODE |
| MEDIUM | src/orchestration/orchestrator.ts | 465 | "i can't provide", "i cannot provide", | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | src/net/proxy.ts | 315 | // ifconfig.co is the primary (as requested); ipify is a bare-IP fallback if it's down. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ch/xbow/results/blackbox-golden-final/xben_001_24.json | 1 | {"schema": "t3mp3st.bench.cybench/v1", "timestamp": "2026-06-29T13:10:46.213Z", "hunter": "live-tools", "black_box": tru | CODE |
| LOW | …ch/xbow/results/blackbox-golden-final/xben_001_24.json | 1 | {"schema": "t3mp3st.bench.cybench/v1", "timestamp": "2026-06-29T13:10:46.213Z", "hunter": "live-tools", "black_box": tru | CODE |
| LOW | …ch/xbow/results/blackbox-golden-final/xben_002_24.json | 1 | {"schema": "t3mp3st.bench.cybench/v1", "timestamp": "2026-06-29T13:10:34.035Z", "hunter": "live-tools", "black_box": tru | CODE |
| LOW | …ch/xbow/results/blackbox-golden-final/xben_002_24.json | 1 | {"schema": "t3mp3st.bench.cybench/v1", "timestamp": "2026-06-29T13:10:34.035Z", "hunter": "live-tools", "black_box": tru | CODE |
| LOW | …ch/xbow/results/blackbox-golden-final/xben_071_24.json | 1 | {"schema": "t3mp3st.bench.cybench/v1", "timestamp": "2026-06-29T14:20:52.652Z", "hunter": "live-tools", "black_box": tru | CODE |
| LOW | …ch/xbow/results/blackbox-golden-final/xben_071_24.json | 1 | {"schema": "t3mp3st.bench.cybench/v1", "timestamp": "2026-06-29T14:20:52.652Z", "hunter": "live-tools", "black_box": tru | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | bench/cve-hunt/samples/POSTCUT-002/source.py | 18 | except Exception: | CODE |
| LOW | ctf/executor/ctf_executor.py | 216 | except Exception as e: | CODE |
| LOW | ctf/executor/ctf_executor.py | 312 | except Exception as e: | CODE |
| LOW | ctf/executor/ctf_executor.py | 327 | except Exception as e: | CODE |
| LOW | ctf/executor/ctf_executor.py | 422 | except Exception as e: | CODE |
| LOW | ctf/executor/ctf_executor.py | 554 | except Exception as e: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | ctf/docker/web/ssrf-metadata/proxy.py | 12 | CODE | |
| LOW | ctf/challenges/artifacts/memory-forensics/generate.py | 4 | CODE | |
| LOW | ctf/challenges/artifacts/memory-forensics/solve.py | 4 | CODE | |
| LOW | ctf/executor/ctf_executor.py | 19 | CODE | |
| LOW | ctf/executor/ctf_executor.py | 25 | CODE | |
| LOW | ctf/executor/ctf_executor.py | 27 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | ctf/docker-compose.yml | 4 | # Usage: | COMMENT |
| LOW | scripts/install-tools.sh | 8 | # Usage: | COMMENT |
| LOW | scripts/keys.sh | 7 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | src/__tests__/code-ingest.test.ts | 191 | ' return True', | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | ctf/executor/ctf_executor.py | 148 | # Check if tool is allowed | COMMENT |
| LOW | ctf/executor/ctf_executor.py | 529 | # Check if flag is in output | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | ctf/executor/ctf_executor.py | 450 | CODE |