Inferensys

Prompt

Security Vulnerability Defect Report Prompt

A practical prompt playbook for using the Security Vulnerability Defect Report Prompt in production AppSec and QA workflows.
Developer doing prompt engineering on laptop, prompt variations visible on screen, casual coding session.
PROMPT PLAYBOOK

When to Use This Prompt

Understand the ideal user, required context, and boundaries for converting vulnerability findings into structured defect reports.

This prompt is designed for application security (AppSec) engineers, penetration testers, and security-focused QA teams who need to convert raw vulnerability findings into structured, actionable defect reports. Use it when you have a confirmed or suspected security weakness and must produce a triage-ready record that includes a clear attack vector, preconditions, a preliminary CVSS 3.1 score, and remediation guidance. The prompt enforces responsible disclosure language, evidence preservation, and impact assessment, making it suitable for workflows that feed into ticketing systems like Jira, vulnerability management platforms, or security review boards.

The prompt expects several concrete inputs to function reliably. You must supply the raw vulnerability finding, which can include scanner output, manual test notes, or proof-of-concept code. You should also provide the affected component or endpoint, the testing environment context, and any relevant compliance or policy constraints. The prompt uses square-bracket placeholders such as [VULNERABILITY_FINDING], [AFFECTED_COMPONENT], [TEST_ENVIRONMENT], and [COMPLIANCE_REQUIREMENTS] to structure these inputs. When adapting the template, replace each placeholder with the specific data from your assessment. If a placeholder is not applicable, explicitly mark it as 'Not Available' rather than deleting it, as the model uses placeholder presence to reason about missing information.

Do not use this prompt for general functional bugs, performance issues, or cosmetic defects. It is not a replacement for a formal penetration testing report or a certified CVSS calculation by a security analyst. The prompt produces a preliminary CVSS 3.1 vector and score intended for triage and prioritization, not for regulatory submission or vendor disclosure without review. Always require human security review before the report is accepted as final, especially for high-severity findings where the CVSS score exceeds 7.0 or the impact involves sensitive data exposure. The output should be treated as a draft that accelerates the reporting workflow, not as an authoritative security assessment.

PRACTICAL GUARDRAILS

Use Case Fit

Where this prompt works, where it fails, and the operational preconditions required before relying on it in a security workflow.

01

Good Fit: Structured Vulnerability Intake

Use when: AppSec engineers receive scanner output (SAST/DAST), penetration test notes, or bug bounty submissions that contain technical findings. The prompt excels at normalizing attack vectors, preconditions, and impact into a consistent defect record. Guardrail: Always provide the raw finding as [INPUT] and specify the [OUTPUT_SCHEMA] with CVSS fields to prevent the model from inventing missing severity data.

02

Bad Fit: Zero-Day Triage Without Human Review

Avoid when: The vulnerability is a novel zero-day, involves a critical supply chain component, or requires immediate disclosure coordination. The model cannot assess real-world exploitability or handle responsible disclosure timelines. Guardrail: Route zero-day findings to a human incident commander. Use this prompt only for post-incident documentation after the containment window closes.

03

Required Input: Evidence and Scanner Context

Risk: Without raw evidence (HTTP requests, code snippets, stack traces), the model will hallucinate reproduction steps or invent plausible but incorrect attack vectors. Guardrail: Require [EVIDENCE] as a mandatory input field. If evidence is missing, the prompt must return a missing_evidence flag and refuse to generate reproduction steps, instead producing a list of required artifacts.

04

Operational Risk: CVSS Score Misalignment

Risk: The model may generate a CVSS vector string that is internally inconsistent or misaligned with the organization's risk methodology. A 7.5 from the model might be a 9.0 under your policy. Guardrail: Implement a post-generation validation step that recalculates the CVSS base score from the vector string and flags discrepancies. Never auto-populate the CVSS into a ticketing system without this check.

05

Operational Risk: Responsible Disclosure Leakage

Risk: The prompt might generate a full defect report including exploit code or sensitive internal paths that should not be stored in a general-purpose ticketing system. Guardrail: Add a [CONSTRAINTS] block that instructs the model to redact raw exploit payloads and internal IPs from the public-facing description. Use a separate, encrypted field for forensic evidence.

06

Boundary: Remediation Guidance Scope

Risk: The model may suggest specific code fixes or configuration changes that are syntactically incorrect for your stack or introduce new weaknesses. Guardrail: Treat generated remediation guidance as a suggestion for a senior engineer, not a mergeable patch. Add a mandatory human approval step before any remediation text is shared with development teams.

PROMPT PLAYBOOK

Copy-Ready Prompt Template

Paste this prompt into your AI harness to convert raw security findings into a structured, CVSS-scored defect report ready for engineering triage.

This prompt instructs the model to act as a senior Application Security (AppSec) engineer. It is designed to receive an unstructured vulnerability finding—such as a pentest note, a scanner alert, or a researcher email—and produce a rigorous, structured JSON defect report. The output is built for direct ingestion into a bug tracker or security dashboard, not for casual reading. Every field in the output schema is chosen to reduce the back-and-forth between security and engineering teams.

text
You are a senior Application Security engineer writing a defect report for an engineering team. Your report must be precise, evidence-backed, and actionable. Do not speculate beyond the provided input. If critical information is missing, flag it explicitly instead of guessing.

Using the vulnerability finding below, produce a structured JSON defect report that conforms to the [OUTPUT_SCHEMA].

[INPUT]

[OUTPUT_SCHEMA]
{
  "defect_id": "string, a unique identifier for this report, prefixed with SEC-",
  "title": "string, a concise technical summary of the vulnerability (max 100 chars)",
  "severity": "string, one of: CRITICAL, HIGH, MEDIUM, LOW, INFO",
  "cvss_vector": "string, a valid CVSS v3.1 vector string (e.g., CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)",
  "cvss_score": "number, the calculated base score from the vector (0.0 to 10.0)",
  "attack_vector": "string, a description of how an attacker would deliver the exploit (e.g., network request, file upload, phishing link)",
  "preconditions": ["string, a list of conditions required before exploitation is possible (e.g., 'attacker must have a valid user account')"],
  "affected_component": "string, the specific software module, endpoint, or library that contains the vulnerability",
  "reproduction_steps": ["string, an ordered list of steps an engineer can follow to reproduce the issue in a test environment"],
  "observed_behavior": "string, what happens when the vulnerability is triggered",
  "expected_behavior": "string, what the system should do instead",
  "impact_assessment": "string, a plain-language description of the worst-case business or technical impact if exploited",
  "remediation_guidance": "string, specific, prioritized recommendations for fixing the root cause, not just the symptom",
  "evidence": ["string, a list of supporting evidence such as request/response snippets, log lines, or screenshot descriptions"],
  "missing_information": ["string, a list of facts not present in the input that would improve confidence or completeness"],
  "responsible_disclosure_note": "string, a reminder about disclosure obligations and handling restrictions for this report"
}

[CONSTRAINTS]
- If the input does not contain enough information to fill a required field, use null and add an entry to missing_information explaining what is needed.
- Do not invent CVSS scores. If the input lacks sufficient detail, use the lowest plausible score and flag it in missing_information.
- The reproduction_steps must be safe to execute in a sandboxed test environment. Do not include instructions that would exploit a production system.
- The responsible_disclosure_note must remind the reader not to share the report externally until the vulnerability is patched.

Adaptation notes: Replace [INPUT] with the raw vulnerability text. The [OUTPUT_SCHEMA] is provided inline for clarity, but you can move it to a separate system parameter if your harness supports structured output natively. The [CONSTRAINTS] section is critical for safety: it prevents the model from hallucinating CVSS scores and ensures reproduction steps are lab-safe. For high-risk workflows, add a [RISK_LEVEL] placeholder and conditionally require human review before the report is shared with engineering. If your platform supports tool use, consider adding a [TOOLS] section that allows the model to call a CVSS calculator function for accurate scoring rather than relying on its internal knowledge.

IMPLEMENTATION TABLE

Prompt Variables

Inputs the Security Vulnerability Defect Report Prompt needs to work reliably. Validate each before sending to prevent incomplete or misleading vulnerability records.

PlaceholderPurposeExampleValidation Notes

[VULNERABILITY_FINDING]

Raw vulnerability description from scanner, pentest, or manual review

Reflected XSS in search parameter 'q' on /results endpoint

Must contain at least 50 characters and include an attack vector or affected component. Reject empty or placeholder-only inputs.

[AFFECTED_COMPONENT]

The specific system, endpoint, library, or module with the vulnerability

webapp-frontend v2.4.1, search controller

Must match a known component in the asset inventory or be flagged for manual review. Null allowed if unknown.

[EVIDENCE_SOURCES]

List of evidence artifacts: logs, screenshots, request/response captures, scanner output

Burp scan report #442, HAR file from reproduction, screenshot of alert(1)

Each source must include a type and reference ID. At least one evidence source required. Validate that references are not fabricated.

[DISCOVERY_METHOD]

How the vulnerability was identified: automated scan, manual pentest, bug bounty, code review

Automated scan via OWASP ZAP 2.15.0

Must be one of: automated_scan, manual_pentest, bug_bounty, code_review, external_report, internal_review. Reject unknown methods.

[CVSS_VECTOR_STRING]

CVSS v3.1 vector string for base score calculation

CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N

Must parse as valid CVSS v3.1 vector. Validate with a CVSS calculator library. Reject malformed or v2.0 strings.

[REPRODUCTION_STEPS]

Step-by-step procedure to reproduce the vulnerability

  1. Navigate to /search
  2. Enter <script>alert(1)</script> in 'q' param
  3. Observe script execution

Must contain numbered steps with actions and expected outcomes. Minimum 2 steps. Validate that steps are sequential and actionable.

[SECURITY_CONTEXT]

Authentication level, user role, and network position required for exploitation

Unauthenticated, remote attacker, no special privileges

Must specify auth level (unauthenticated, user, admin, internal) and network position (remote, local, adjacent). Reject ambiguous context.

[RESPONSIBLE_DISCLOSURE_STATUS]

Current disclosure state: not_disclosed, vendor_notified, fix_pending, public, embargoed

vendor_notified on 2025-03-15, 30-day disclosure deadline

Must be one of the defined states. If embargoed, validate that the prompt output destination is authorized. Flag for human review if status is public before fix.

PROMPT PLAYBOOK

Implementation Harness Notes

How to wire the Security Vulnerability Defect Report Prompt into a secure application or triage workflow.

Integrating this prompt into a production security workflow requires treating the model output as a draft, not a final submission. The prompt is designed to produce a structured defect record with a CVSS vector, attack vector, and remediation guidance, but the model cannot independently verify the vulnerability or guarantee the accuracy of the severity score. The implementation harness must enforce a human-in-the-loop review step before any report is accepted into a defect tracker or disclosed to external stakeholders. This is non-negotiable for AppSec workflows where misclassification could delay critical patches or cause premature disclosure.

The harness should wrap the LLM call in a validation layer that checks the output schema before human review. Use a strict JSON Schema validator to confirm the presence and type of required fields: title, cvss_vector, cvss_score, attack_vector, preconditions, reproduction_steps, impact_assessment, remediation_guidance, and evidence_references. If the model output fails schema validation, retry once with a repair prompt that includes the validation error and the original input. After two failures, log the raw output and escalate to a human analyst with a flag indicating the model could not produce a well-formed report. Do not silently drop malformed outputs—they may contain partial findings that still need triage.

For evidence preservation, the harness must store the original vulnerability finding input (scanner output, pentest notes, researcher submission) alongside the generated defect report. This creates an audit trail for internal review and supports responsible disclosure workflows where the original evidence must be cited. If the input contains sensitive data—such as internal hostnames, credentials, or customer PII—redact it before passing it to the model, or use a local deployment where data never leaves your environment. The prompt's [EVIDENCE] placeholder should receive only sanitized, shareable evidence. For high-severity findings (CVSS >= 7.0), the harness should automatically flag the report for expedited review and notify the security on-call rotation rather than waiting for the normal triage queue.

Model choice matters here. Use a model with strong reasoning capabilities and a known safety profile for structured security analysis. Avoid models that are prone to hallucinating technical details or inventing CVE references. If your organization runs a private LLM deployment, prefer that path to keep vulnerability data off third-party infrastructure. When using an external API, ensure your data processing agreement covers security findings and that you are not sending exploit code or live credentials. The harness should log every model interaction—input, output, retries, and reviewer decisions—for compliance and post-incident review. Finally, never allow the model to autonomously file a defect in your tracker or send a disclosure email; the harness must require explicit human approval on the final record before any downstream action is taken.

IMPLEMENTATION TABLE

Expected Output Contract

Fields, format, and validation rules for the structured security vulnerability defect report. Use this table to build a parser, validator, or evaluation harness that checks whether the model output is complete and safe to surface in a ticketing system.

Field or ElementType or FormatRequiredValidation Rule

vulnerability_id

string (slug)

Must match pattern VULN-[YYYY]-[0-9]{4} or be null if auto-generated downstream. If provided, validate against existing registry.

title

string (<=120 chars)

Must contain the vulnerability type and affected component. Reject if it contains only generic terms like 'security issue' or 'bug'.

cve_id

string or null

If provided, must match CVE-ID regex CVE-\d{4}-\d{4,}. Null allowed for zero-days or internally discovered issues without assignment.

cvss_vector_string

string

Must parse as a valid CVSS v3.1 or v4.0 vector string. Reject if base score cannot be computed from the string.

attack_vector

enum

Must be one of: Network, Adjacent, Local, Physical. Reject if missing or not in the CVSS-specified enum.

preconditions

string[] (2-10 items)

Each item must describe a concrete, testable condition. Reject if array is empty or any item is a generic placeholder like 'access required'.

reproduction_steps

object[]

Each step must have step_number (int), action (string), and expected_result (string). Reject if fewer than 2 steps or if action is empty.

observed_behavior

string

Must differ materially from expected_behavior. Reject if Levenshtein similarity > 0.9 or if both fields are identical after whitespace normalization.

expected_behavior

string

Must describe the secure/intended behavior. Reject if it contains only a negation of observed behavior (e.g., 'should not happen').

affected_asset

string

Must identify a specific component, endpoint, or dependency. Reject if value is 'unknown', 'N/A', or a wildcard like '*'.

remediation_guidance

string

Must contain at least one actionable recommendation. Reject if it only says 'patch' or 'fix the code' without specifics. Must not suggest disabling security controls as a primary fix.

evidence_artifacts

object

Must contain screenshots (string[] URLs or null) and log_snippets (string[]). At least one array must be non-empty. Reject if both are empty or null.

responsible_disclosure_notes

string

Must contain a statement confirming whether the report contains sensitive exploit details. Reject if it includes full exploit code or hardcoded credentials without explicit redaction flags.

human_review_required

boolean

Must be true for any vulnerability with CVSS >= 7.0, or if attack_vector is 'Network' and preconditions count is 0. Validate programmatically before accepting output.

PRACTICAL GUARDRAILS

Common Failure Modes

Security vulnerability defect reports carry higher stakes than ordinary bugs. These failure modes surface where prompts drift, evidence gets lost, or severity is misjudged—and how to catch each before it reaches an incident response workflow.

01

CVSS Inflation Without Evidence

What to watch: The model assigns a Critical or High CVSS score based on narrative severity rather than measurable exploitability, impact sub-scores, or environmental factors. Guardrail: Require the prompt to output each CVSS vector component separately with a one-sentence justification per metric. Validate that the temporal and environmental score groups are not defaulted to 'Not Defined' without explicit instruction.

02

Reproduction Steps Leak Sensitive Artifacts

What to watch: The generated reproduction steps embed internal hostnames, tokens, session cookies, PII from logs, or proprietary endpoints that should not appear in a defect tracker. Guardrail: Add a post-generation redaction check that scans output for URI patterns, key-value secrets, and internal IP ranges. Flag any step containing credentials for human review before the defect is filed.

03

Remediation Guidance Over-Promises

What to watch: The model suggests a complete fix or configuration change without acknowledging that it lacks the full codebase, deployment architecture, or compensating controls. This can mislead triage teams into applying untested mitigations. Guardrail: Constrain the remediation section to 'Recommended Mitigation Direction' with an explicit disclaimer that the suggestion has not been tested against the live system and requires security review.

04

Attack Vector Omission in Complex Chains

What to watch: Multi-step exploits are collapsed into a single step, or the initial entry point is omitted because the model focuses on the final impact. The resulting defect under-represents the attack surface. Guardrail: Require the prompt template to include a dedicated 'Attack Chain' section with numbered stages, each listing preconditions, action, and observed effect. Validate that the first stage always describes the entry vector.

05

Responsible Disclosure Boundary Blur

What to watch: The model treats an unpatched zero-day or internally discovered vulnerability as if it should be fully documented in an unsecured ticket, ignoring embargo or coordinated disclosure requirements. Guardrail: Add a pre-generation classification step: if the finding is unpatched and externally reportable, the output must be routed to a secure disclosure template with restricted distribution markers, not a standard defect report.

06

Evidence-to-Claim Drift

What to watch: The model states a vulnerability exists but the cited log line, screenshot description, or request/response pair does not actually demonstrate the claimed weakness. The defect reads convincingly but is factually unsupported. Guardrail: Require each claim in the 'Impact Assessment' section to reference a specific evidence item by ID. Run an eval check that verifies every claim has at least one evidence pointer; flag orphan claims for human verification.

IMPLEMENTATION TABLE

Evaluation Rubric

Criteria for testing the Security Vulnerability Defect Report Prompt before production deployment. Each row defines a pass standard, a failure signal, and a concrete test method to validate responsible disclosure handling, evidence preservation, and output quality.

CriterionPass StandardFailure SignalTest Method

Responsible Disclosure Handling

Output includes a clear, prominent warning that the report contains sensitive security information and must be handled per the organization's disclosure policy. No actual exploit code is generated.

Output lacks any disclosure warning or includes executable exploit code, weaponized payloads, or step-by-step attack instructions.

Static check: scan output for disclosure warning string and absence of code blocks containing exploit patterns. Human review required for borderline cases.

Evidence Preservation

All claims about the vulnerability are grounded in the provided [INPUT] evidence. The report cites specific log lines, request/response snippets, or tool output from the input.

Report includes vulnerability claims, affected endpoints, or impact statements not present in or reasonably inferable from the provided evidence.

Evidence grounding check: for each claim in the output, verify a corresponding citation or direct quote exists in the input. Flag unsupported claims.

CVSS Score Accuracy

The CVSS v3.1 vector string and base score are internally consistent. The selected values for AV, AC, PR, UI, S, C, I, A match the described attack vector and impact.

CVSS vector string is malformed, score does not match the vector, or selected metric values contradict the written impact description.

Automated CVSS calculator validation: parse the vector string, recompute the score, and compare. Manual check that metric choices align with the written description.

Reproduction Steps Completeness

Reproduction steps include preconditions, ordered actions, and expected vulnerable behavior. Steps are specific enough that a security tester unfamiliar with the finding could attempt reproduction.

Steps are vague, skip preconditions, assume internal knowledge, or describe the vulnerability without actionable reproduction actions.

Reproducibility audit: have a second security tester follow the steps against a test environment. Flag steps that require clarification or fail to produce the described behavior.

Remediation Guidance Quality

Remediation section provides at least one concrete, technically specific recommendation tied to the root cause. Avoids generic advice like 'validate input' without specifics.

Remediation is missing, consists only of generic security platitudes, or recommends mitigations that do not address the described root cause.

Remediation specificity check: verify the recommendation names a specific control, library, configuration change, or code pattern. Flag generic-only responses.

Risk Rating Consistency

The severity/priority label is consistent with the CVSS score, the described business impact, and any provided organizational risk taxonomy in [CONSTRAINTS].

Severity label contradicts the CVSS score or impact description. For example, a CVSS 9.8 finding labeled as 'Low' without justification.

Cross-field consistency check: compare severity label, CVSS score, and impact description. Flag contradictions. If [CONSTRAINTS] provides a risk matrix, validate mapping.

Schema and Field Completeness

All required fields from [OUTPUT_SCHEMA] are present and non-null unless explicitly allowed. Optional fields are omitted or null when no data exists.

Required fields are missing, null, or contain placeholder text. The output structure does not parse against the expected schema.

Schema validation: parse the output against the expected JSON schema. Flag missing required fields, type mismatches, and null violations.

Handling of Incomplete Input

When [INPUT] lacks critical information needed for a complete report, the output explicitly flags missing fields with a structured 'missing_information' section and does not fabricate details.

Output fills in missing environment details, attack preconditions, or impact data with plausible but unsupported information without indicating uncertainty.

Input sufficiency test: provide a deliberately incomplete vulnerability finding. Verify the output identifies specific missing fields and does not invent values for them.

ADAPTATION OPTIONS

Adapt This Prompt

How to adapt

Use the base prompt with a frontier model and manual review of every output. Keep the CVSS scoring instruction but accept that the model may miscalculate vector strings—treat the score as a draft. Remove strict schema enforcement; accept structured markdown instead of validated JSON. Focus on getting the narrative sections right: attack vector, preconditions, impact assessment.

Prompt modification

  • Replace [OUTPUT_SCHEMA] with a markdown template instead of a JSON schema.
  • Add: If you are uncertain about any field, mark it with [NEEDS REVIEW] and explain why.
  • Remove retry and validation instructions.

Watch for

  • CVSS vector string errors (wrong metrics for the described impact)
  • Overconfident severity ratings without evidence
  • Missing responsible disclosure handling notes
  • Model hallucinating remediation steps it cannot verify
Prasad Kumkar

About the author

Prasad Kumkar

CEO & MD, Inference Systems

Prasad Kumkar is the CEO & MD of Inference Systems and writes about AI systems architecture, LLM infrastructure, model serving, evaluation, and production deployment. Over 5+ years, he has worked across computer vision models, L5 autonomous vehicle systems, and LLM research, with a focus on taking complex AI ideas into real-world engineering systems.

His work and writing cover AI systems, large language models, AI agents, multimodal systems, autonomous systems, inference optimization, RAG, evaluation, and production AI engineering.