# JC PenTest Harness Evidence-first, human-in-the-loop web cockpit for the Jean-Claude multi-model pentest harness. Production URL: https://pentest.platphormnews.com Updated: 2026-07-20T00:00:00.000Z ## Responsible Use - Authorized testing only. - Only test systems you own or have explicit written permission to assess. - The operator is responsible for target authorization and scope. - No anonymous active testing against arbitrary targets. - No denial-of-service testing unless explicitly scoped and separately enabled. - No destructive testing. - No persistence, malware, credential theft, exfiltration, or public exploitation. - No social engineering. - No attacks against third-party infrastructure outside the approved scope. - No remediation, PR creation, or branch push actions. - Findings are assessment outputs, not automatic fixes. - Human review is required before real execution and before publishing reports. - Private findings and artifacts remain protected. ## Run Boundary - Dry Run is the default and validates scope, config, model routing, prompts, and expected runner command without active target calls. - Real Run requires PLATPHORM_API_KEY or authenticated operator context, accepted responsible-use policy, allowed hosts, explicit scope, and typed AUTHORIZED confirmation. - Real Run starts bounded passive recon plus AI Gateway Hunt/Validate execution when Gateway credentials are present; otherwise it records an operator checkpoint instead of fake success. ## Discovery - OpenAPI: https://pentest.platphormnews.com/openapi.yaml - MCP: https://pentest.platphormnews.com/api/mcp - Trust policy: https://pentest.platphormnews.com/.well-known/trust.json ## Models - fable5: Fable 5 (anthropic, Primary Hunt + Validate) - opus48: Claude Opus 4.8 (anthropic, Scorer of record + gapfill) - gpt55: GPT-5.5 (openai, Cross-validation) ## Known Gaps - Consolidated findings.jsonl is emitted by the CLI at both the per-model and top-level run directories. - scoring.js implements priority scoring; web real-runs also derive scorecards from actual persisted findings. - llm-router.route() exists, but the CLI runner scaffolds prompts and pauses for supervised invocation. - Trust-boundary checks are preflight warnings for repo config and must be enforced by operator review and sandbox/job policy for active extensions. - Sandbox and BrowserOps previews are public-safe. Protected handoffs only report success after a downstream response confirms receipt. ## Capabilities - Jean-Claude boot and setup wizard: Setup wizard and run planner for scoped dry runs and protected real runs. (live_surface, /runs/new) - Dry-run and real-run selection with dry-run default: Dry-run default, real-run gate, budget controls, and authorization confirmation. (live_surface, /runs/new) - Execution modes: api-multi-model, local-client, local-model, multi-mode: Documented execution modes from the original harness configuration. (source_backed, /docs/modes) - Model roster: fable5, opus48, gpt55: Configured model roster, provider selection, fallback models, pricing inputs, and stage role mapping. (source_backed, /models) - Key resolution status for env, runtime keys, key files, AWS SSM, and Vercel AI Gateway: Presence-only key status for server envs and browser-session runtime keys. (live_surface, /settings) - Target base URL, repositories, trust boundaries, and allowed-host validation: Target base URL, repositories, trusted hosts, and responsible-use scope controls. (live_surface, /runs/new) - RECON, HUNT, VALIDATE, GAPFILL, TRACE, REPORT, SCORECARD pipeline timeline: Pipeline timeline and run history with persisted stage, log, finding, and scorecard evidence. (live_data, /runs) - 44 attack-class taxonomy across 9 harness frameworks: Canonical Jean-Claude attack-class matrix, framework mapping, and latest class-level execution evidence. (source_backed, /matrix) - Finding normalization, schema validation, run linkage, and evidence drilldown: Finding explorer with run linkage, target context, validation rationale, remediation text, and evidence boundaries. (live_data, /findings) - Priority scoring, persisted scorecards, and comparative-scorecard gap disclosure: Priority scoring method, persisted scorecard rows, and explicit rubric boundary for evidence-backed findings. (live_data, /scorecard) - Public-safe report packages and report ledger: Report packages generated from persisted runs, findings, scorecards, class evidence, and sanitized logs. (live_data, /reports) - Prompt packages, class evidence grids, scorecards, findings summaries, and artifact inventory: Public-safe artifact inventory for run outputs, report package routes, class evidence, and downstream handoff artifacts. (live_data, /artifacts) - Event outbox, audit trail, and live run progress refresh: Durable lifecycle event outbox, structured audit rows, canonical event catalog, and live refresh for in-flight runs. (live_data, /activity) - Responsible-use audit and protected operator actions: Responsible-use audit policy and protected operator action boundary. (source_backed, /docs/responsible-use) - Runtime browser-session credential entry for protected setup and handoff operator auth: Browser-session runtime credential entry for explicit operator auth and missing runtime dependencies. (live_surface, /settings) - PlatPhorm Sandbox handoff preview and protected receive-handoff delivery: Sandbox handoff preview and protected receive-handoff delivery controls. (live_surface, /integrations) - PlatPhorm BrowserOps handoff preview and protected receive-handoff delivery: BrowserOps handoff preview and protected receive-handoff delivery controls. (live_surface, /integrations) - MCP, OpenAPI, llms, sitemap, RSS, robots, and well-known discovery: Discovery routes, API docs, MCP metadata, sitemap, RSS, robots, and well-known policy files. (generated, /docs) ## Public Routes - / - /runs - /runs/new - /findings - /matrix - /models - /scorecard - /reports - /artifacts - /activity - /integrations - /settings - /known-gaps - /registry - /app/setup - /app/setup/responsible-use - /docs - /docs/getting-started - /docs/safety - /docs/responsible-use - /docs/modes - /docs/pipeline - /docs/findings - /docs/integrations - /api/health - /api/v1/health - /api/coverage - /api/events - /api/findings - /api/stats - /api/v1/setup/status - /api/v1/responsible-use - /api/v1/models - /api/v1/models/status - /api/v1/integrations/status - /api/v1/integrations/platphorm/registry - /api/v1/integrations/platphorm/discovery - /api/v1/runtime/credentials - /api/v1/reports - /api/v1/events - /api/v1/webhooks - /api/docs - /api/mcp - /openapi.yaml - /openapi.json - /llms.txt - /llms-full.txt - /llms-index.json - /humans.txt - /robots.txt - /sitemap.xml - /sitemap-index.xml - /sitemap-full.xml - /rss.xml - /feed.xml - /manifest.webmanifest - /.well-known/mcp.json - /.well-known/agents.json - /.well-known/ai-plugin.json - /.well-known/agent-policy.json - /.well-known/ai-policy.json - /.well-known/security.txt - /.well-known/trust.json ## Protected Routes - /api/v1/runs custom dry-run scopes - /api/v1/runs/real-run - /api/v1/runs/:runId/rerun - /api/v1/runs/:runId/(pause|resume|cancel) - /api/v1/sandbox/jobs - /api/v1/integrations/sandbox/handoff - /api/v1/integrations/browserops/handoff - /api/v1/integrations/* - /api/v1/webhooks/* - /api/mcp protected tools ## Attack Classes - injection: Injection (A05:2025 / AML.T0051) - broken-access-control: Broken Access Control (A01:2025) - cryptographic-failures: Cryptographic Failures (A04:2025) - security-misconfiguration: Security Misconfiguration (A02:2025) - supply-chain-failures: Supply Chain Failures (A03:2025) - auth-failures: Authentication Failures (A07:2025) - ssrf: Server-Side Request Forgery (A01:2025 sub-class) - secrets-in-code: Secrets in Code (cross-cutting) - iac-privilege-escalation: IaC Privilege Escalation (cross-cutting) - header-csp-hygiene: Header / CSP Hygiene (A02:2025) - exceptional-conditions: Mishandling of Exceptional Conditions (A10:2025 (NEW)) - mcp-tool-poisoning: MCP Tool Poisoning (MCP / Agentic / AML.T0051) - mcp-rug-pull: MCP Rug Pull (OWASP MCP Top 10) - mcp-tool-shadowing: MCP Tool Shadowing (OWASP MCP Top 10) - mcp-indirect-injection: MCP Indirect Injection (MCP / Agentic / AML.T0051) - mcp-session-hijacking: MCP Session Hijacking (OWASP MCP Top 10) - mcp-dns-rebinding: MCP DNS Rebinding (CVE-2025-9611) - mcp-oauth-rce: MCP OAuth RCE (OWASP MCP Top 10) - mcp-resource-exhaustion: MCP Resource Exhaustion (OWASP MCP Top 10) - rag-retrieval-poisoning: RAG Retrieval Poisoning (USENIX Sec 2025) - rag-embedding-inversion: RAG Embedding Inversion (VectuTex) - rag-tenant-boundary-violation: RAG Tenant Boundary Violation (USENIX Sec 2025) - rag-indirect-injection: RAG Indirect Injection (USENIX Sec 2025) - agent-goal-hijacking: Agent Goal Hijacking (OWASP Agentic:2026) - insecure-tool-execution: Insecure Tool Execution (OWASP Agentic:2026) - memory-poisoning: Memory Poisoning (OWASP Agentic:2026 / AML.T0080) - excessive-agency: Excessive Agency (OWASP Agentic:2026) - agent-identity-abuse: Agent Identity Abuse (OWASP Agentic:2026) - insecure-inter-agent-comms: Insecure Inter-Agent Comms (OWASP Agentic:2026) - unbounded-autonomy: Unbounded Autonomy (OWASP Agentic:2026) - mcp-escape-to-host: MCP Escape to Host (ATLAS:2026) - emergent-offensive-reasoning: Emergent Offensive Reasoning (Cequence AZT v3.0) - api-bola: API Broken Object Level Authz (API1:2023) - api-bfla: API Broken Function Level Authz (API5:2023) - api-mass-assignment: API Mass Assignment (API3:2023 / BLA3:2025) - business-logic-abuse: Business Logic Abuse (OWASP BLA Top 10:2025) - non-human-identity-abuse: Non-Human Identity Abuse (NIST SP 800-207 / CISA ZTMM) - container-runtime-escape: Container Runtime Escape (MITRE ATT&CK T1611) - k8s-rbac-lateral-movement: K8s RBAC Lateral Movement (MITRE ATT&CK T1078.004) - cicd-pipeline-poisoning: CI/CD Pipeline Poisoning (CISA CSI CI/CD / SLSA) - api-zombie-shadow-endpoint: Zombie / Shadow Endpoint (API9:2023) - websocket-abuse: WebSocket Abuse (CVE-2026-24696 class) - llm-model-weight-backdoor: LLM Model Weight Backdoor (NIST AI 100-2:2025 / AML.T0020) - llm-inference-data-exfil: LLM Inference Data Exfil (AML.T0024 + AML.T0086)