2.3.0 - 2026-03-14 #60
samugit83
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Added
Global Settings Page — new
/settingspage (gear icon in header) for managing all user-level configuration through the UI. AI provider keys and Tavily API key are configured exclusively here — no.envfile needed. Two sections:Test Connection — each LLM provider can be tested before saving with a "Test Connection" button that sends a simple message and shows the response
DB-only settings — AI provider keys and Tavily API key are stored exclusively in the database (per-user). No env-var fallback —
.envis reserved for infrastructure variables only (NVD, tunneling, database credentials, ports)Prisma schema — added
UserLlmProviderandUserSettingsmodels with relations toUserCentralized LLM setup — CypherFix triage and codefix orchestrators now use the shared
setup_llm()function instead of duplicating provider routing logicPentest Report Generation — generate professional, client-ready penetration testing reports as self-contained HTML files from the
/reportspage. Reports compile all reconnaissance data, vulnerability findings, CVE intelligence, attack chain results, and remediation recommendations into an 11-section document (Cover, Executive Summary, Scope & Methodology, Risk Summary, Findings, Other Vulnerability Details, Attack Surface, CVE Intelligence, GitHub Secrets, Attack Chains, Recommendations, Appendix). Features include:Ctrl+PexportTarget Guardrail — LLM-based safety check that prevents targeting unauthorized domains and IPs. Blocks government sites (
.gov,.mil), major tech companies, financial institutions, social media platforms, and other well-known public services. Two layers: project creation (fail-open) and agent initialization (fail-closed). For IP mode, public IPs are resolved via reverse DNS before evaluation; private/RFC1918 IPs are auto-allowed. Blocked targets show a centered modal with the reason.Expanded CPE Technology Mappings — CPE_MAPPINGS table in
recon/helpers/cve_helpers.pyexpanded from 82 to 133 entries, significantly improving CVE lookup accuracy for Wappalyzer-detected technologies. New coverage includes:normalize_product_name()aliases for Wappalyzer output variations (e.g., "Atlassian Jira" → "jira", "Moment" → "moment.js", "Concrete5" → "concrete cms")skip_listentries (Cloudflare, Google Analytics, Google Tag Manager, Facebook Pixel, Hotjar, Google Font API) to avoid wasting NVD API calls on SaaS/CDN technologiesInsights Dashboard — Real-time analytics page (
/insights) with interactive charts and tables covering attack chains, exploit successes, finding severity, targets attacked, strategic decisions, vulnerability distributions, attack surface composition, and agent activity. All data is pulled directly from the Neo4j graph and organized into sections: Attack Chains & Exploits, Attack Surface, Vulnerabilities & CVE Intelligence, Graph Overview, and Activity & Timeline.Rules of Engagement (RoE) — upload a RoE document (PDF, TXT, MD, DOCX) at project creation and an LLM auto-parses it into structured settings enforced across the entire platform:
RULES OF ENGAGEMENT (MANDATORY)section injected into every reasoning step with excluded hosts, permissions, and constraints; (2) hard gate inexecute_tool_node: deterministic code blocks forbidden tools, forbidden categories, permission flags, and phase cap violations regardless of LLM output; (3) recon pipeline: excluded hosts filtered from target lists, rate limits capped viamin(tool_rate, global_max), time window blocks scan starts outside allowed hoursroeMaxSeverityPhaseinstead of stripping phases from individual toolsEmergency PAUSE ALL button — red/yellow danger-styled button on the Graph toolbar that instantly freezes every running pipeline (Recon, GVM, GitHub Hunt) and stops all AI agent conversations in one click. Shows "PAUSING..." with spinner during operation. Always visible on the toolbar, disabled when nothing is running. New
POST /emergency-stop-allendpoint on the agent service cancels all active agent tasks via the WebSocket managerWave Runner (Parallel Tool Plans) — when the LLM identifies two or more independent tools that don't depend on each other's outputs, it groups them into a wave and executes them concurrently via
asyncio.gather()instead of sequentially. Key components:plan_toolsalongsideuse_tool— the LLM emits aToolPlanwith multipleToolPlanStepentries and a plan rationaleexecute_planruns all steps in parallel, each with its own RoE gate check, tool_start/tool_complete streaming, and progress updatesplan_start(wave begins with tool list),plan_complete(success/failure counts),plan_analysis(LLM interpretation). Existingtool_start,tool_output_chunk, andtool_completeevents carry an optionalwave_idto group tools within a waveToolPlanandToolPlanStepPydantic models,_current_planfield inAgentStatetool_planobjects or plans with no steps are automatically downgraded to sequentialuse_toolexecutionAttack Skills System — modular attack path management with built-in and user-uploaded skills:
.mdfiles defining attack workflows from Global Settings. Each skill file contains a full workflow description that the agent follows across all three phases (informational, exploitation, post-exploitation). User skills are stored per-user in the database (UserAttackSkillmodel) and become available as toggles in all project settings.mdfiles, max 50KB), skill list with download and delete actions, and a name-entry modal on uploadattackSkillConfigJSON field in the project stores{ builtIn: { skill_id: bool }, user: { skill_id: bool } }controlling which skills are active. Built-in skills default to enabled; user skills default to enabled when presentuser_skill:<id>attack path type. Skill.mdcontent is injected into the system prompt for all three phases with phase-appropriate guidance. Falls back to unclassified workflow if skill content is missingGET/POST /api/users/[id]/attack-skills(list/create),GET/DELETE /api/users/[id]/attack-skills/[skillId](read/delete),GET /api/users/[id]/attack-skills/available(with content for agent consumption)Kali Shell — Library Installation Control — new prompt-based setting in Agent Behaviour to control whether the agent can install packages via
pip installorapt installinkali_shellduring a pentest:build_kali_install_prompt()dynamically generates the installation rules section, injected into the system prompt wheneverkali_shellis in the allowed tools for the current phaseShodan OSINT Integration — full Shodan integration at two levels: automated recon pipeline and interactive AI agent tool:
recon/shodan_enrich.pymodule runs after domain/IP discovery, before port scanning. Four independently toggled features: Host Lookup (IP geolocation, OS, ISP, open ports, services, banners), Reverse DNS (hostname discovery), Domain DNS (subdomain enumeration + DNS records, paid plan), and Passive CVEs (extract known CVEs from host data)internetdb.shodan.io) which provides ports, hostnames, CPEs, CVEs, and tags without requiring a paid planupdate_graph_from_shodan()inneo4j_client.pycreates/updates IP nodes (os, isp, org, country, city), Port + Service nodes, Subdomain nodes from reverse DNS, DNSRecord nodes from domain DNS, and Vulnerability + CVE nodes from passive CVEs — all using MERGE for deduplication with existing pipeline datashodantool with 5 actions:search(device search, paid key),host(detailed IP info),dns_reverse(reverse DNS),dns_domain(DNS records + subdomains, paid key), andcount(host count without search credits). Available in all agent phasesShodanSection.tsx): Host Lookup, Reverse DNS, Domain DNS, Passive CVEs. Toggles are disabled with a warning banner when no Shodan API key is configured in Global SettingsShodanApiKeyErrorexception for immediate abort on invalid keys (401); per-function 403 handling with InternetDB fallback; pipeline continues even if Shodan enrichment fails entirelyGoogle Dork Tool (SerpAPI) — new
google_dorkagent tool for passive OSINT via Google advanced search operators. Uses the SerpAPI Google engine to find exposed files (filetype:sql,filetype:env), admin panels (inurl:admin), directory listings (intitle:"index of"), and sensitive data leaks (intext:password). Returns up to 10 results with titles, URLs, snippets, and total result count. SerpAPI key configured in Global Settings. No packets are sent to the target — purely passive reconnaissanceDeep Think (Strategic Reasoning) — automatic strategic analysis at key decision points during agent operation. Triggers on: first iteration (initial strategy), phase transitions (re-evaluation), failure loops (3+ consecutive failures trigger pivot), and agent self-request (when stuck or going in circles). Produces structured JSON analysis with situation assessment, identified attack vectors, recommended approach with rationale, priority-ordered action steps, and risk mitigations. The analysis is injected into subsequent reasoning steps to guide the agent's strategy:
DEEP_THINK_ENABLEDin Agent Behaviour settings (default: off)"need_deep_think": truein its output to trigger a strategic re-evaluation on the next iterationDeepThinkCardin the Agent Timeline displays the analysis with trigger reason, situation assessment, attack vectors, recommended approach, priority steps, and risks — collapsible with a lightbulb icondeep_thinkevent streams the analysis result to the frontend in real-timeInline Agent Settings — Agent Behaviour, Tool Matrix, and Attack Skills sections are now accessible directly from the AI Assistant drawer via a gear icon in the toolbar. Opens a modal overlay for quick configuration changes without navigating away from the graph page. Changes are saved to the project and take effect on the next agent iteration
Inline API Key Configuration — when an agent tool is unavailable due to a missing API key (web_search, shodan, google_dork), the AI Assistant drawer shows a warning badge with a one-click modal to enter the key directly. No need to navigate to Global Settings
Tool Registry Overhaul — compressed and restructured the agent's tool registry descriptions for all tools (query_graph, web_search, shodan, google_dork, curl, nmap, kali_shell, hydra, metasploit_command). Descriptions are more concise with inline argument formats and usage examples, reducing prompt token usage while maintaining clarity
Fixed
Remediationtable (CypherFix vulnerability remediations, code fixes, GitHub PR integrations, file changes) was not included in project export/import. Exports now includeremediations/remediations.jsonin the ZIP archive, and imports restore all remediation records under the new project. Backward-compatible with older exports that lack the remediations file.Changed
docker.iopackage withdocker-ce-clifrom Docker's official APT repository. Fixes compatibility issues with newer host Docker daemons (closes Recon Tools not running | Naabu | httpx | katana | nuclei | gau #30, based on Use newer docker install to work with later version of ubuntu #35). Only the CLI is installed — no full engine, containerd, or compose plugins.This discussion was created from the release 2.3.0 - 2026-03-14.
Beta Was this translation helpful? Give feedback.
All reactions