AI analysis

Five tools compose a deterministic database result with an AI-derived analysis section.

Note The analysis can never be why a tool fails. The database half is always returned. If inference is unconfigured, tier-gated, disabled with ai: false, or errors outright, you still get the data plus analysisSkipped explaining why nothing was added. Every one of these tools is useful with the AI layer switched off.

Requires Pro or above. Pass ai: false on any of them to skip it.

vulnetix_triage_reason

Fetches the decision inputs, then produces a prioritisation rationale.

ArgumentType
identifierstring, required
contextstring, optional
aiboolean, optional

context is where you say what the model cannot know:

{
  "identifier": "CVE-2021-44228",
  "context": "internal service, no untrusted input, behind a WAF, Java 8"
}

Returns a priority band (P1–P4), the rationale, the factors that dominated, and what would change the answer. That last one is what makes it defensible to someone else.


vulnetix_secure_code_write

CWE guidance for an advisory, plus language-specific guidance on not writing the same weakness.

ArgumentType
identifierstring, required
cweIdstring, optional
languagestring, optional
aiboolean, optional

Returns a summary, one clearly-unsafe example, a safe replacement, and the review checks that would catch the unsafe form.

Naming a cweId returns that entry’s guidance in full and its ATT&CK mappings; the rest come back as a short index. An aggregated CVE maps to dozens of weaknesses (36 for Log4Shell), so returning all of them in full would not fit.


vulnetix_detection_rules

Deployable content: Snort/Suricata signatures, YARA rules and Nuclei templates.

ArgumentTypeDefault
identifierstring, requirednone
familiesarray of snort, yara, nucleiall three
stackstring, optionalnone
aiboolean, optionalnone
Note Rules are returned complete, because you cannot deploy a Snort rule from a description of it. The tool therefore returns fewer whole rules (10 Snort and 8 YARA by default) instead of truncating many. Page the endpoint directly for the full set; Log4Shell has 239 Snort and 280 YARA.

With stack supplied, the analysis says which to deploy first, what each is matching, where false positives are likely, and what the content does not cover.


vulnetix_exploit_test

A copy-pasteable command to check whether a target is still vulnerable.

ArgumentType
identifierstring, required
targetstring, optional
aiboolean, optional

Returns the command, how to read its output, prerequisites, and a destructive boolean.

Important This tool never executes anything. It returns text for a human to run against a system they are authorised to test. Running an exploit check against infrastructure you do not own is likely a criminal offence in most jurisdictions. The command is non-destructive by construction, which is not the same as being lawful for you to run.

vulnetix_fix_plan

A concrete upgrade plan from a package coordinate.

ArgumentType
packageNamestring, required
ecosystemenum, required
currentVersionstring, optional
targetVersionstring, optional
aiboolean, optional

Returns the recommended version, the exact manifest edit, the install command, a verification command, the rollback, whether it is a major bump, and the risks.

No file content is sent. The tool takes coordinates only: package name, ecosystem, versions. Your agent applies the edit locally.


How the AI layer is kept safe

CVE descriptions, advisory prose and cached proof-of-concept source are attacker-influenced by construction: anyone who can get text into an advisory can get text in front of the model. Since the output becomes a tool result your agent may act on, a successful injection would not be cosmetic.

Four rules, enforced in the server rather than left to each tool:

  1. Upstream content is data, never instructions. It is passed inside a delimited block, never concatenated into the prompt.
  2. The system prompt is fixed and states that the block is material to analyse, not instructions to follow.
  3. Output is schema-constrained JSON. The model cannot emit free-form prose that a caller might mistake for an instruction.
  4. Output never influences control flow. It does not choose an endpoint, set a parameter, or select a tool. It is decoration on a deterministic result, never a step in producing one.

AI-derived fields are labelled distinctly from database fact, and every augmented result carries the model id and token counts in _meta["vulnetix/ai"].

On privacy: because no repository content reaches this server, what reaches the model is public advisory data plus the structured parameters you passed.