> For the complete documentation index, see [llms.txt](https://support.attackforge.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://support.attackforge.com/app/getting-started/creating-vulnerabilities.md).

# Creating Vulnerabilities

## Overview <a href="#overview" id="overview"></a>

Vulnerabilities are the findings from testing. Each one records what was found, where, how serious it is, how to reproduce it and how to fix it. Every vulnerability is created on a project and linked to the asset or assets in that project's scope that it affects.

<figure><img src="https://372186556-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8s1QY2Q6YTHB4a6DMu%2Fuploads%2FfiZ7pop9cRQlIsgotq6y%2Fcreating-vulnerabilities-at-a-glance.svg?alt=media&amp;token=9771249f-a706-48cb-a7c0-631afd9f9e2b" alt=""><figcaption></figcaption></figure>

## Why it matters how vulnerabilities are created <a href="#why-it-matters-how-vulnerabilities-are-created" id="why-it-matters-how-vulnerabilities-are-created"></a>

A vulnerability is often the only part of a test that developers, asset owners and executives read, so its quality matters.

* **Consistent, client-ready writing.** Starting from a writeup library means descriptions, attack scenarios and remediation advice are written once, reviewed, and reused, rather than rewritten under deadline pressure.
* **Accurate prioritisation.** Scoring sets the priority that drives SLAs, dashboards and the order fixes happen in.
* **Faster remediation.** Vulnerabilities are visible to the project team as soon as they're created, so fixes can start before the report is issued, which reduces time to remediate.
* **Less noise from scanners.** Imports can group thousands of scanner results into a manageable set of unique findings, without losing any asset detail.
* **Traceability.** Each vulnerability is linked to its assets and the test cases it failed, so you can see where it came from and track it through to closure.

## Who benefits <a href="#who-benefits" id="who-benefits"></a>

| Who                                | How                                                                                                                           |
| ---------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
| **Testers**                        | Reuse proven writeups, score consistently, import tool output instead of retyping it, and attach evidence once                |
| **QA reviewers**                   | Review fewer, better-structured findings, using Pending visibility as a draft stage                                           |
| **Developers and asset owners**    | Clear steps to reproduce, evidence, affected components and remediation advice, available as soon as each finding is released |
| **Security and delivery managers** | Consistent priorities and data that feed SLAs, dashboards, analytics and reports                                              |

## Seven ways to create vulnerabilities <a href="#seven-ways-to-create-vulnerabilities" id="seven-ways-to-create-vulnerabilities"></a>

There are seven methods you can use to create a vulnerability:

| Method                                                                                                          | Best for                                                                                                                    |
| --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
| **1.** [**Add manually**](#add-a-vulnerability-manually)**, using the writeups library**                        | Findings from manual testing, where a tester writes up what they found                                                      |
| **2.** [**Import**](#import-vulnerabilities) **from natively supported tools**, such as Nessus, Burp and Qualys | Scanner and tool output, especially large volumes                                                                           |
| **3.** [**Import**](#import-vulnerabilities) **from CSV or JSON**                                               | Output from tools without native support, or findings exported from other systems                                           |
| **4. Create through the** [**Self-Service RESTful APIs**](https://docs.attackforge.com/)                        | Pipelines and integrations that push findings automatically                                                                 |
| **5. Import from** [**Flows**](https://support.attackforge.com/app/modules/flows)                               | Automated workflows that create or transform findings                                                                       |
| **6. Import from** [**Actions**](https://support.attackforge.com/app/actions)                                   | Findings created by actions run from the project                                                                            |
| **7. Create from** [**AI MCP**](https://support.attackforge.com/app/modules/ai-mcp-and-skills)                  | AI assistants and agents that create findings through AttackForge's MCP tools, for example while working through test cases |

## Who can create vulnerabilities <a href="#who-can-create-vulnerabilities" id="who-can-create-vulnerabilities"></a>

Only users with **Edit** access to the project can add vulnerabilities. That's usually the pentesters and security consultants.

## Things to know <a href="#things-to-know" id="things-to-know"></a>

* **Visibility follows project access.** You only see a vulnerability if you have access to a project it's linked to. Administrators are the exception and can see all vulnerabilities.
* **Projects can hold up to 10,000 vulnerabilities.** The limit makes sure reports can still be generated. If an import would go over it, use the Grouped option to combine findings.
* **Every vulnerability is linked to at least one asset.** When it's created, the vulnerability is assigned to at least one asset in the project's scope. If the asset isn't in scope, it's created automatically during imports.

## Vulnerabilities at a glance <a href="#vulnerabilities-at-a-glance" id="vulnerabilities-at-a-glance"></a>

However a vulnerability is created, it ends up as one consistent finding. It's linked to its affected assets and the test cases it failed, its priority drives SLAs and dashboards, its steps and evidence go into reports, and it feeds attack chains, portfolios and external systems such as ticketing tools.

<figure><img src="https://372186556-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8s1QY2Q6YTHB4a6DMu%2Fuploads%2FF6JmDxutnJnhD25LqYLE%2FScreenshot%202026-10-29%20at%203.02.35%E2%80%AFpm.png?alt=media&amp;token=d3e478da-c824-4968-9171-54534642647d" alt=""><figcaption></figcaption></figure>

## Add a vulnerability manually <a href="#add-a-vulnerability-manually" id="add-a-vulnerability-manually"></a>

Select `Create Vulnerability` from the project menu. The form has six required steps and five optional ones.

<figure><img src="https://372186556-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8s1QY2Q6YTHB4a6DMu%2Fuploads%2FMHpOfIqBX464xLAyTcZI%2FScreenshot%202026-10-29%20at%203.03.38%E2%80%AFpm.png?alt=media&amp;token=f77b8839-eaa4-4ae6-b9e7-41de361778a7" alt=""><figcaption></figcaption></figure>

### 1. Choose a writeups library <a href="#id-1-choose-a-writeups-library" id="id-1-choose-a-writeups-library"></a>

Writeups are reusable, reviewed descriptions of vulnerabilities: the title, description, attack scenario and remediation advice. Starting from a writeup saves time, and every client gets the same quality of explanation for the same issue. Choose which library to search:

| Library                      | Contains                                                                                                                                                |
| ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **All Writeups**             | Every writeup you have access to, across all libraries                                                                                                  |
| **Main Vulnerabilities**     | Most vulnerability writeups                                                                                                                             |
| **Imported Vulnerabilities** | Writeups for vulnerabilities imported from tools and scanners                                                                                           |
| **Project Vulnerabilities**  | Writeups specific to this project, for information that shouldn't be shared outside it, or variations of other writeups (see Project-specific writeups) |
| **Custom libraries**         | Any custom libraries you have access to                                                                                                                 |

<figure><img src="https://372186556-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8s1QY2Q6YTHB4a6DMu%2Fuploads%2F2AMEKxyKu52wlmkO2R6e%2FScreenshot%202026-10-29%20at%203.05.37%E2%80%AFpm.png?alt=media&amp;token=d649c412-541a-4761-a56c-2bb4b0bfca85" alt=""><figcaption></figcaption></figure>

<figure><img src="https://372186556-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8s1QY2Q6YTHB4a6DMu%2Fuploads%2FBOv9acP2QgCfD3CjXaaT%2FScreenshot%202026-10-29%20at%203.06.01%E2%80%AFpm.png?alt=media&amp;token=3549665d-03d7-45c3-9470-aad2829d2769" alt=""><figcaption></figcaption></figure>

### 2. Choose a writeup <a href="#id-2-choose-a-writeup" id="id-2-choose-a-writeup"></a>

Search the library by keyword, and hover over a writeup to preview its details on the right.

<figure><img src="https://372186556-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8s1QY2Q6YTHB4a6DMu%2Fuploads%2FKgkvd4CeC9gckQgk8HoK%2FScreenshot%202026-10-29%20at%203.08.19%E2%80%AFpm.png?alt=media&amp;token=6c850035-02b5-48e1-bd4a-bb2d8143e9be" alt=""><figcaption></figcaption></figure>

If nothing fits, select `Create Writeup` to add a new entry to the relevant library, so the next tester can reuse it.

<figure><img src="https://372186556-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8s1QY2Q6YTHB4a6DMu%2Fuploads%2F7wp6QQWlNb2CqJLVnKT8%2FScreenshot%202026-10-29%20at%203.07.47%E2%80%AFpm.png?alt=media&amp;token=b458bcec-2b3c-4741-bfb8-52ca040768b1" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
If you need to create a modified writeup for just your project - select the writeup and then click on `Duplicate` and select the `Project Library`
{% endhint %}

<figure><img src="https://372186556-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8s1QY2Q6YTHB4a6DMu%2Fuploads%2FLpquanKboKFcxVHnDbqt%2FScreenshot%202026-10-29%20at%203.10.59%E2%80%AFpm.png?alt=media&amp;token=769410f0-90f2-4b3a-bfff-78127fba8ed5" alt=""><figcaption></figcaption></figure>

<figure><img src="https://372186556-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8s1QY2Q6YTHB4a6DMu%2Fuploads%2FQqi0x0GX38HnYtLtfltU%2FScreenshot%202026-10-29%20at%203.11.20%E2%80%AFpm.png?alt=media&amp;token=e659803f-69ee-410f-a8f2-f49ee32a8793" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
If you need to modify a writeup in place - select the writeup and click `Edit`&#x20;
{% endhint %}

<figure><img src="https://372186556-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8s1QY2Q6YTHB4a6DMu%2Fuploads%2FKyeTgN4aTBwrahM1suI9%2FScreenshot%202026-10-29%20at%203.14.21%E2%80%AFpm.png?alt=media&amp;token=c5bbe92e-067a-436f-bc01-1cf15539b3a2" alt=""><figcaption></figcaption></figure>

### 3. Select the affected assets <a href="#id-3-select-the-affected-assets" id="id-3-select-the-affected-assets"></a>

Select one or more assets from the project's scope. Then choose how to record them:

| Option         | Creates                                              | Use it when                                                                                   |
| -------------- | ---------------------------------------------------- | --------------------------------------------------------------------------------------------- |
| **Individual** | A separate vulnerability for each affected asset     | Each asset will be fixed and tracked by a different team, or assets need different priorities |
| **Grouped**    | One vulnerability, linked to all the affected assets | The same issue appears on many assets, as is common in infrastructure tests                   |

<figure><img src="https://372186556-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8s1QY2Q6YTHB4a6DMu%2Fuploads%2FsEQxgF1aO19ujzExhDEk%2FScreenshot%202026-10-29%20at%203.16.05%E2%80%AFpm.png?alt=media&amp;token=c51c429d-8e21-4419-ac83-1aa2d728348e" alt=""><figcaption></figcaption></figure>

You can mix both on the same project, with some vulnerabilities grouped and others individual.

**Why use Grouped:**

* it's more efficient on infrastructure tests, where one issue often affects dozens of hosts
* there are fewer vulnerabilities to manage, with no asset information lost
* there's less to quality review

In a grouped vulnerability, each asset can still have its own notes, tags and **affected components**. A component is the specific part of the asset that's affected, such as a URL, a port or a line of code, and components can have their own notes and tags too. Each asset can also be tracked and actioned individually, so you can follow remediation progress asset by asset.

Select which assets and components are affected:

<figure><img src="https://372186556-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8s1QY2Q6YTHB4a6DMu%2Fuploads%2Fgs25R93DIisZyJPEGrJ8%2FScreenshot%202026-10-29%20at%203.17.22%E2%80%AFpm.png?alt=media&amp;token=aea46b14-cb31-44a1-9a7a-053316532b91" alt=""><figcaption></figcaption></figure>

The Affected Assets table will update to store the affected asset data:

<figure><img src="https://372186556-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8s1QY2Q6YTHB4a6DMu%2Fuploads%2FXwtiNH9QJjN7FQRAB2YE%2FScreenshot%202026-10-29%20at%203.18.44%E2%80%AFpm.png?alt=media&amp;token=738b7915-d7b2-4634-9173-da64af365122" alt=""><figcaption></figcaption></figure>

Clicking on an asset will bring up more information including ability to modify components:

<figure><img src="https://372186556-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8s1QY2Q6YTHB4a6DMu%2Fuploads%2FZHJM7qE1GDuwqtfZzXTD%2FScreenshot%202026-10-29%20at%203.18.59%E2%80%AFpm.png?alt=media&amp;token=901e0e9f-75ba-41c6-90a7-d4e3ac20c977" alt=""><figcaption></figcaption></figure>

Clicking on a component will bring up more information on that affected component:

<figure><img src="https://372186556-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8s1QY2Q6YTHB4a6DMu%2Fuploads%2FOxLYSuin88MhsWLSUAYP%2FScreenshot%202026-10-29%20at%203.19.15%E2%80%AFpm.png?alt=media&amp;token=34cfcc05-32db-4b30-a70f-b45ff1acecb4" alt=""><figcaption></figcaption></figure>

You can also Add or Import assets inline:

<figure><img src="https://372186556-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8s1QY2Q6YTHB4a6DMu%2Fuploads%2F04v930efoq5NIhDqddJ7%2FScreenshot%202026-10-29%20at%203.17.43%E2%80%AFpm.png?alt=media&amp;token=04ad2d98-9879-4dbf-915a-6865d0adddae" alt=""><figcaption></figcaption></figure>

Adding provides the option to input freetext assets if the Assets module is disabled, or select from existing assets if the Assets module is enabled:

<figure><img src="https://372186556-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8s1QY2Q6YTHB4a6DMu%2Fuploads%2FAz0d3zgpGGGq4OWO4Zqu%2FScreenshot%202026-10-29%20at%203.25.06%E2%80%AFpm.png?alt=media&amp;token=a74ccd17-aa74-4319-a721-6c6e82aa9c48" alt=""><figcaption></figcaption></figure>

<figure><img src="https://372186556-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8s1QY2Q6YTHB4a6DMu%2Fuploads%2FP1lLo5esB8CenTeI3L1e%2FScreenshot%202026-10-29%20at%203.17.53%E2%80%AFpm.png?alt=media&amp;token=360ff71c-239e-45c6-9989-78284cc1f5c6" alt=""><figcaption></figcaption></figure>

Importing provides various workflows to import from tools like NMAP and Masscan, generic formats like JSON and CSV, or a delimeted list of assets.

<figure><img src="https://372186556-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8s1QY2Q6YTHB4a6DMu%2Fuploads%2FZEJlL9BUzyDuyC9wD76S%2FScreenshot%202026-10-29%20at%203.18.09%E2%80%AFpm.png?alt=media&amp;token=66d1da7a-56f2-4385-a10b-77fce66663e3" alt=""><figcaption></figcaption></figure>

### 4. Set visibility <a href="#id-4-set-visibility" id="id-4-set-visibility"></a>

By default, a new vulnerability is visible to the whole project team straight away. This is deliberate: developers and asset owners can start fixing issues before the report is written, which reduces time to remediate.

If the finding needs checking first, set visibility to **Pending**. Pending works like a draft: only users with Edit access to the project can see it, which leaves time for quality, technical or peer review before the wider team sees it.

<figure><img src="https://372186556-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8s1QY2Q6YTHB4a6DMu%2Fuploads%2F6l3VrFbMEFx7skQwthkI%2FScreenshot%202026-10-29%20at%203.27.58%E2%80%AFpm.png?alt=media&amp;token=f7ed36e0-44ff-4362-a7a0-3d8ae75df4d0" alt=""><figcaption></figcaption></figure>

AttackForge autosaves new vulnerabilities automatically for you. You can access your drafts from the Vulnerabilities section on the project.

<figure><img src="https://372186556-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8s1QY2Q6YTHB4a6DMu%2Fuploads%2FCxxQqxkrMe0TyrwtI8Sk%2FScreenshot%202026-10-29%20at%203.29.57%E2%80%AFpm.png?alt=media&amp;token=689c3d48-2efc-498d-9fd4-4883db5395e9" alt=""><figcaption></figcaption></figure>

<figure><img src="https://372186556-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8s1QY2Q6YTHB4a6DMu%2Fuploads%2FoRyu6ZF0OwW4gAfKlc0T%2FScreenshot%202026-10-29%20at%203.30.33%E2%80%AFpm.png?alt=media&amp;token=ef852dd9-76ec-4726-b36c-6402c9f74b04" alt=""><figcaption></figcaption></figure>

#### **Draft, Pending and Visible compared:**

|                                            | Draft                                                                    | Pending                                                                  | Visible                                                                              |
| ------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ |
| **What it is**                             | A vulnerability that's still being written and hasn't been submitted yet | A created vulnerability that's being held back for review                | A created vulnerability that's been released to the project team                     |
| **Who can see it**                         | Only its author                                                          | Only users with **Edit** access to the project                           | Everyone with access to the project, including clients and developers                |
| **Typical use**                            | Saving work in progress, so a finding isn't lost before it's complete    | Quality, technical or peer review before the wider team sees the finding | Getting findings to developers and asset owners quickly, to reduce time to remediate |
| **Counts in dashboards, SLAs and reports** | No                                                                       | No                                                                       | Yes                                                                                  |
| **Notifications sent**                     | No                                                                       | No                                                                       | Yes, to team members who've opted in to new vulnerability emails                     |
| **How it moves on**                        | The author completes and submits it, as Pending or Visible               | A user with Edit access changes its visibility to Visible                | It's already released. It can be set back to Pending if needed.                      |
| **Default?**                               | No                                                                       | No. Choose it when you create the vulnerability.                         | Yes, the default for new vulnerabilities                                             |

{% hint style="info" %}
Default to Visible or Pending can be configured globally within the Administration module.
{% endhint %}

### 5. Score the vulnerability <a href="#id-5-score-the-vulnerability" id="id-5-score-the-vulnerability"></a>

The project's settings decide which scoring systems are available.

* **Manual scoring** is always available, and testers can't have it turned off. Choose a **Likelihood of Exploitation**, from 1 (*difficult to exploit*) to 10 (*trivial to exploit*), and a **Priority**: Critical, High, Medium, Low or Info.

<figure><img src="https://372186556-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8s1QY2Q6YTHB4a6DMu%2Fuploads%2F17dwEPFVeBPnkejeSyGN%2FScreenshot%202026-10-29%20at%203.55.44%E2%80%AFpm.png?alt=media&amp;token=411d5205-31d0-4bec-8967-e3cbd7fb203e" alt=""><figcaption></figcaption></figure>

* **Scoring systems** enabled on the project, such as CVSS v3.1, CVSS v4, the OWASP Risk Rating Methodology, Microsoft DREAD, or a custom scoring system, have their own calculators. With CVSS, for example, the calculator works out the score, which sets the Likelihood of Exploitation and Priority automatically, and the score and vector string are added as tags.

<figure><img src="https://372186556-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8s1QY2Q6YTHB4a6DMu%2Fuploads%2FMUlJ9PSUEAOMSlPHCtVs%2FScreenshot%202026-10-29%20at%203.56.25%E2%80%AFpm.png?alt=media&amp;token=5872f8fa-f22f-4568-977a-d5f09f7541df" alt=""><figcaption></figcaption></figure>

<figure><img src="https://372186556-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8s1QY2Q6YTHB4a6DMu%2Fuploads%2FPGIolykDo4oLBvw1pWY9%2FScreenshot%202026-10-29%20at%203.56.39%E2%80%AFpm.png?alt=media&amp;token=dd05324f-c933-4f81-ae5a-83063e8f0543" alt=""><figcaption></figcaption></figure>

<figure><img src="https://372186556-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8s1QY2Q6YTHB4a6DMu%2Fuploads%2F9M88ImlKWzEaotYcZeoc%2FScreenshot%202026-10-29%20at%203.56.50%E2%80%AFpm.png?alt=media&amp;token=cfa1f30f-ffb8-4d25-8df1-3038a8fb0a11" alt=""><figcaption></figcaption></figure>

<figure><img src="https://372186556-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8s1QY2Q6YTHB4a6DMu%2Fuploads%2FwZOkKqLAhXrQKrsk9ObO%2FScreenshot%202026-10-29%20at%203.57.01%E2%80%AFpm.png?alt=media&amp;token=08b95906-d2fa-4d37-a9d1-a8caf291cf37" alt=""><figcaption></figcaption></figure>

* If the project uses **more than one scoring system**, AttackForge shows the score from each, and the tester picks the most suitable priority.

<figure><img src="https://372186556-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8s1QY2Q6YTHB4a6DMu%2Fuploads%2FA3pxhdn5UPSFehMiquGy%2FScreenshot%202026-10-29%20at%203.59.21%E2%80%AFpm.png?alt=media&amp;token=7fb295c4-5306-4e95-9141-15fa6db48920" alt=""><figcaption></figcaption></figure>

### 6. Write the steps to reproduce <a href="#id-6-write-the-steps-to-reproduce" id="id-6-write-the-steps-to-reproduce"></a>

The steps to reproduce, or proof of concept, are what developers use to confirm the issue and check their fix, so make them detailed enough to follow without asking you. The field is rich text, and HTML payloads are allowed.

<figure><img src="https://372186556-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8s1QY2Q6YTHB4a6DMu%2Fuploads%2F2oqqKtLVBMMsTPL424Ax%2FScreenshot%202026-10-29%20at%204.01.53%E2%80%AFpm.png?alt=media&amp;token=813fc032-f3e5-4d98-854c-bc5162f80d94" alt=""><figcaption></figcaption></figure>

### 7. Add notes (optional) <a href="#id-7-add-notes-optional" id="id-7-add-notes-optional"></a>

Add as many notes as you need, for example context for the reviewer or remediation tips for this particular environment.

<figure><img src="https://372186556-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8s1QY2Q6YTHB4a6DMu%2Fuploads%2FLyIaBdPXkVH78Cn1vbun%2FScreenshot%202026-10-29%20at%204.07.29%E2%80%AFpm.png?alt=media&amp;token=d35cf490-8ffa-40a0-8db5-19927e59ec29" alt=""><figcaption></figcaption></figure>

### 8. Fill in custom fields (optional) <a href="#id-8-fill-in-custom-fields-optional" id="id-8-fill-in-custom-fields-optional"></a>

The custom fields and sections you see depend on how your organisation has configured the vulnerability form in the **Administration** module. They can change by type of testing. See Custom vulnerability forms.

<figure><img src="https://372186556-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8s1QY2Q6YTHB4a6DMu%2Fuploads%2Fv8dXGGaaqL9IAS6JdVg6%2FScreenshot%202026-10-29%20at%204.08.09%E2%80%AFpm.png?alt=media&amp;token=8e8d39e2-79f0-4756-80c0-096ce17ec334" alt=""><figcaption></figcaption></figure>

<figure><img src="https://372186556-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8s1QY2Q6YTHB4a6DMu%2Fuploads%2Faw9k3UPyAmNRFg9a70pB%2FScreenshot%202026-10-29%20at%204.10.41%E2%80%AFpm.png?alt=media&amp;token=a1570829-ca0c-4e37-a703-e5ab72be2374" alt=""><figcaption></figcaption></figure>

<figure><img src="https://372186556-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8s1QY2Q6YTHB4a6DMu%2Fuploads%2F8KHkRpAEbw3sdH7AVYs1%2FScreenshot%202026-10-29%20at%204.09.01%E2%80%AFpm.png?alt=media&amp;token=cf951fa2-8c12-4f8b-a093-64a0c9ad75d0" alt=""><figcaption></figcaption></figure>

### 9. Adjust tags (optional) <a href="#id-9-adjust-tags-optional" id="id-9-adjust-tags-optional"></a>

Tags are copied from the writeup, and you can add more. Using CVSS v3 scoring adds CVSS tags automatically. **Custom tags** let you add any key and value pair, such as `tls_weakness: protocol`, which you can then use for filtering, reporting or import mapping.

<figure><img src="https://372186556-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8s1QY2Q6YTHB4a6DMu%2Fuploads%2FSsLnJO6yewbCT9lrMnWm%2FScreenshot%202026-10-29%20at%204.09.56%E2%80%AFpm.png?alt=media&amp;token=92b1cd90-1ed0-484b-9016-10c716ec5c62" alt=""><figcaption></figcaption></figure>

### 10. Link test cases (optional) <a href="#id-10-link-test-cases-optional" id="id-10-link-test-cases-optional"></a>

Link the vulnerability to the test case or cases it failed. Developers then see what was tested and why it failed, which helps them avoid making the same mistake again. Linking also marks the test cases as **Failed**, and they change to Remediated once the vulnerability is closed. You can link several test cases.

<figure><img src="https://372186556-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8s1QY2Q6YTHB4a6DMu%2Fuploads%2FUPvcI8ACdV62jUIIOsIi%2FScreenshot%202026-10-29%20at%204.10.07%E2%80%AFpm.png?alt=media&amp;token=e0f6622b-6839-4eb5-8889-7a69b73b4b56" alt=""><figcaption></figcaption></figure>

### 11. Add evidence (optional) <a href="#id-11-add-evidence-optional" id="id-11-add-evidence-optional"></a>

Upload files and supporting evidence.

<figure><img src="https://372186556-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8s1QY2Q6YTHB4a6DMu%2Fuploads%2FLcnHekzUvryBJvlPjVQr%2FScreenshot%202026-10-29%20at%204.13.14%E2%80%AFpm.png?alt=media&amp;token=c605c512-4c06-497d-b50d-42755d062424" alt=""><figcaption></figcaption></figure>

<figure><img src="https://372186556-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8s1QY2Q6YTHB4a6DMu%2Fuploads%2FpvVlDSQeRf8SSY97izQ0%2FScreenshot%202026-10-29%20at%204.15.33%E2%80%AFpm.png?alt=media&amp;token=036d5e5d-8af0-4599-b9fd-d74c232d3c1f" alt=""><figcaption></figcaption></figure>

When you create the vulnerability, it's assigned to the affected assets on the project.

## Project-specific writeups <a href="#project-specific-writeups" id="project-specific-writeups"></a>

Sometimes a standard writeup almost fits but needs changing for one project. For example, the description or remediation advice may need to refer to the client's own technology. Or a writeup may contain details that should only be visible on this project. A project-specific writeup lets you make those changes without altering the shared writeup everyone else uses.

1. Select the standard writeup you want to start from.
2. Select `Duplicate` → `Project Library`.
3. Make your changes and select `Update`.
4. Confirm the new project-specific writeup.

If nothing fits, select `Create Writeup` to add a new entry to the relevant library, so the next tester can reuse it.

<figure><img src="https://372186556-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8s1QY2Q6YTHB4a6DMu%2Fuploads%2FLpquanKboKFcxVHnDbqt%2FScreenshot%202026-10-29%20at%203.10.59%E2%80%AFpm.png?alt=media&amp;token=769410f0-90f2-4b3a-bfff-78127fba8ed5" alt=""><figcaption></figcaption></figure>

<figure><img src="https://372186556-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8s1QY2Q6YTHB4a6DMu%2Fuploads%2FQqi0x0GX38HnYtLtfltU%2FScreenshot%202026-10-29%20at%203.11.20%E2%80%AFpm.png?alt=media&amp;token=e659803f-69ee-410f-a8f2-f49ee32a8793" alt=""><figcaption></figcaption></figure>

You can also create a brand-new writeup straight in the Project Library.

## Custom vulnerability forms <a href="#custom-vulnerability-forms" id="custom-vulnerability-forms"></a>

Different kinds of testing need different information about each finding. A red team finding might need attack path details, while a PCI DSS finding needs the requirement it breaches. You can tailor the vulnerability form by testing type, such as web application, infrastructure, code review, red team, purple team or PCI DSS. Testers then only see the fields that apply. The custom fields also appear when anyone views the vulnerability so long as they have view access to the custom field.

<figure><img src="https://372186556-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8s1QY2Q6YTHB4a6DMu%2Fuploads%2F4kcWQ6Dd20xSROLiJJj5%2FScreenshot%202026-10-29%20at%204.19.34%E2%80%AFpm.png?alt=media&amp;token=fd5494ce-8d5c-410b-aa5f-98a8e272179f" alt=""><figcaption></figcaption></figure>

This example adds a Red Team section that only appears on red team projects.

1. **Add a testing types field to projects.** In **Project Custom Fields**, create a multi-select field for testing types, such as `testing_types`.

<figure><img src="https://372186556-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8s1QY2Q6YTHB4a6DMu%2Fuploads%2FeLO29zsUktguP25UELP6%2FScreenshot%202026-10-29%20at%204.21.11%E2%80%AFpm.png?alt=media&amp;token=dbfb76a2-7bea-41c5-a260-aa5c49c3d684" alt=""><figcaption></figcaption></figure>

2. **Add conditional fields to the vulnerability form.** In **Vulnerability Custom Fields**, create the fields or section, and give them a **Hide Expression** so they only show for the relevant testing type:

```
NOT ("Red Team" $in project.custom.testing_types)
```

<figure><img src="https://372186556-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8s1QY2Q6YTHB4a6DMu%2Fuploads%2FLLMwXAhVohL0quNlInlS%2FScreenshot%202026-10-29%20at%204.22.36%E2%80%AFpm.png?alt=media&amp;token=30908c3d-7a5e-4bb8-b08b-b08ac980d379" alt=""><figcaption></figcaption></figure>

The expression hides the section or field when the project has no testing types set, when none are selected, or when Red Team isn't one of them. In other words, the field only shows when **Red Team** is selected.

1. **Select the testing type on the project.** Create or edit a project and choose the testing type, such as `Red Team`.

<figure><img src="https://372186556-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8s1QY2Q6YTHB4a6DMu%2Fuploads%2FMBvN3ornrjR4FuBLO4iR%2FScreenshot%202026-10-29%20at%204.24.12%E2%80%AFpm.png?alt=media&amp;token=0f169a7d-5229-48bb-b391-7b142fbaca74" alt=""><figcaption></figcaption></figure>

2. **Create a vulnerability.** The Red Team section now appears on the form.

You can use the same approach to tailor the form for any other type of testing.

## Import vulnerabilities <a href="#import-vulnerabilities" id="import-vulnerabilities"></a>

Importing turns tool output into vulnerabilities in minutes. You don't retype scanner results, and with grouping, thousands of raw results become a manageable list of unique findings.

1. Select `Import Vulnerabilities` from the project's quick actions menu.

<figure><img src="https://372186556-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8s1QY2Q6YTHB4a6DMu%2Fuploads%2FyjCTxYEvFALkoYOohlLf%2FScreenshot%202026-10-29%20at%204.25.16%E2%80%AFpm.png?alt=media&amp;token=aaeeca6b-bb33-4ce9-90e1-ef632c320979" alt=""><figcaption></figcaption></figure>

2. Select the tool, such as Nessus, Burp or Qualys.

<figure><img src="https://372186556-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8s1QY2Q6YTHB4a6DMu%2Fuploads%2FlL21LBKgwyLZ3klEhyWI%2FScreenshot%202026-10-29%20at%204.25.25%E2%80%AFpm.png?alt=media&amp;token=04c71be3-1ed4-4222-830e-6f6f01fea78c" alt=""><figcaption></figcaption></figure>

3. Select the tool's output file. AttackForge parses it.

<figure><img src="https://372186556-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8s1QY2Q6YTHB4a6DMu%2Fuploads%2FgsqvhrWYrv7SsY59iLaf%2FScreenshot%202026-10-29%20at%204.26.14%E2%80%AFpm.png?alt=media&amp;token=3925e484-0437-4362-83e3-cbb7c15a973b" alt=""><figcaption></figcaption></figure>

4. Select the vulnerabilities to import.

<figure><img src="https://372186556-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8s1QY2Q6YTHB4a6DMu%2Fuploads%2FvkcLqXI86rlxoOQA8Pt9%2FScreenshot%202026-10-29%20at%204.26.38%E2%80%AFpm.png?alt=media&amp;token=25830549-94ae-4745-8783-64ac8f520c7d" alt=""><figcaption></figcaption></figure>

5. Choose **Individual** (one vulnerability per affected asset) or **Grouped** (vulnerabilities grouped automatically, one per issue). You can view the affected assets and each asset's component data, and configure the grouping rules.

{% hint style="info" %}
In the example shown, choosing **Grouped** reduced the number of vulnerabilities by **94%**, with the same data kept.
{% endhint %}

6. Select `Edit and Review` to check and adjust the vulnerabilities before they're imported.

<figure><img src="https://372186556-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8s1QY2Q6YTHB4a6DMu%2Fuploads%2FuJrfrJ311by6137X5mXE%2FScreenshot%202026-10-29%20at%204.27.08%E2%80%AFpm.png?alt=media&amp;token=1a6de4fb-7ba6-463c-9610-f0dcc7d24351" alt=""><figcaption></figcaption></figure>

7. Choose your import options, including dynamic parser actions and the writeups library to map to.
8. Import. Progress is shown as the import runs, and you'll see a summary with a link to the vulnerabilities when it's done.

<figure><img src="https://372186556-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8s1QY2Q6YTHB4a6DMu%2Fuploads%2FwoGqZzgMHYvyGd1TGzQU%2FScreenshot%202026-10-29%20at%204.29.45%E2%80%AFpm.png?alt=media&amp;token=5425616c-d52a-4837-958a-c52d8e48a9b4" alt=""><figcaption></figcaption></figure>

**What's created automatically:**

* If a vulnerability doesn't match a writeup in the library, or can't be mapped to one, a new writeup is created.
* If an affected asset isn't in the project's scope, it's created.

Grouped vulnerabilities appear as single rows in vulnerability tables. Expand a row to see its affected assets.

<figure><img src="https://372186556-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8s1QY2Q6YTHB4a6DMu%2Fuploads%2FGsV7Vc44t4kmida4JTcN%2FScreenshot%202026-10-29%20at%204.30.37%E2%80%AFpm.png?alt=media&amp;token=f4ab6c5d-d7a2-49ea-af2e-7a303017f476" alt=""><figcaption></figcaption></figure>

<figure><img src="https://372186556-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8s1QY2Q6YTHB4a6DMu%2Fuploads%2Fzr3UMVgEPXQPPIBepUaH%2FScreenshot%202026-10-29%20at%204.30.57%E2%80%AFpm.png?alt=media&amp;token=fc5c5f82-d062-40db-ba31-07d56d48ebe4" alt=""><figcaption></figcaption></figure>

### Custom import mapping <a href="#custom-import-mapping" id="custom-import-mapping"></a>

Custom import mapping matches imported vulnerabilities to writeups in your library, using expressions you write. Instead of importing a scanner's own wording, findings are matched to your reviewed, client-ready writeups. This lets you:

* combine several scanner findings into one unique writeup
* use writeups you know are good and ready for clients
* speed up QA and review
* avoid duplicate and near-duplicate entries in your library

<figure><img src="https://372186556-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8s1QY2Q6YTHB4a6DMu%2Fuploads%2FPB6OuOSf0dXuaS41HL4E%2FScreenshot%202026-10-29%20at%204.32.44%E2%80%AFpm.png?alt=media&amp;token=4fb523ec-afcb-4a3e-bc73-2886fcbb70fa" alt=""><figcaption></figcaption></figure>

**Example:** Nessus reports three separate findings: *SSL Version 2 and 3 Protocol Detection*, *TLS Version 1.0 Protocol Detection* and *TLS Version 1.1 Protocol Detection*. They're really one issue. With custom mapping, all three map to a single writeup, *Weak TLS Implementation*. These examples use the **Individual** import option.

#### Example 1: map on tags <a href="#example-1-map-on-tags" id="example-1-map-on-tags"></a>

```
vuln.tags.pluginID $in writeup.tags.pluginID
```

For each imported vulnerability, AttackForge checks each writeup in the selected library. If the vulnerability's `pluginID` tag is found in the writeup's `pluginID` tags, the vulnerability is mapped to that writeup. If no writeup matches, the vulnerability is imported as usual.

<figure><img src="https://372186556-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8s1QY2Q6YTHB4a6DMu%2Fuploads%2FFTixaESX09cqIIPRvqi5%2FScreenshot%202026-10-29%20at%204.32.54%E2%80%AFpm.png?alt=media&amp;token=35b9fd9a-3ebb-4518-a33a-16e3719d791b" alt=""><figcaption></figcaption></figure>

#### Example 2: map on custom tags <a href="#example-2-map-on-custom-tags" id="example-2-map-on-custom-tags"></a>

```
vuln.custom_tags.tls_weakness === writeup.custom_tags.tls_weakness
```

This works the same way as Example 1, but matches when the `tls_weakness` custom tag on the vulnerability exactly equals the one on the writeup.

The full list of datapoints and operators you can use is in [Reference: import mapping expressions](#reference-import-mapping-expressions).

## Tips and best practices <a href="#tips-and-best-practices" id="tips-and-best-practices"></a>

* **Start from a writeup.** Reviewed writeups give every client the same quality of explanation, and new ones you create help the next tester.
* **Group infrastructure findings.** Grouped vulnerabilities cut volume dramatically without losing asset detail, and each asset can still be tracked separately.
* **Use Pending for findings that need review.** Edit users can QA them before developers and clients see them.
* **Write steps to reproduce for the person fixing the issue.** Clear steps and inline screenshots mean fewer questions and faster fixes.
* **Always link test cases.** It sets test case results automatically and shows developers what was tested.
* **Map imports to your writeups.** Custom import mapping replaces scanner wording with your reviewed text and merges near-duplicates.
* **Use project-specific writeups for one-off changes,** rather than editing a shared writeup everyone relies on.

## FAQ <a href="#faq" id="faq"></a>

**I can't see Create Vulnerability.** You need Edit access to the project. Ask a Project Coordinator to check your access level.

**Should I use Individual or Grouped?** Use Grouped when the same issue affects many assets, as in most infrastructure tests. Use Individual when each asset will be fixed by a different team or needs a different priority. You can use both on one project.

**Why can't the client see a vulnerability I just created?** Its visibility may be set to Pending. Pending vulnerabilities are only visible to users with Edit access until they're released.

**Why can't I upload evidence yet?** Evidence can only be added once the vulnerability has been created. Create it first, then upload.

**My import created lots of new writeups. How do I stop that?** Writeups are created when an imported vulnerability doesn't match or can't be mapped to an existing one. Use custom import mapping to match imports to the writeups you already have.

**Is there a limit on vulnerabilities per project?** Yes, 10,000, so reports can still be generated. Grouping helps you stay well within it.

## Related pages <a href="#related-pages" id="related-pages"></a>

* [Test Cases](https://support.attackforge.com/app/getting-started/test-cases): linking vulnerabilities to test cases
* [Project Scope](https://support.attackforge.com/app/getting-started/project-scope): affected assets
* [Creating and Managing Projects](https://support.attackforge.com/app/getting-started/creating-and-managing-projects): scoring systems and SLAs
* [Reviewing and QA Vulnerabilities](https://support.attackforge.com/app/getting-started/reviewing-and-qa-vulnerabilities)
* [Writeups libraries](/app/modules/vulnerability-library.md)
* [Flows](https://support.attackforge.com/app/modules/flows) and [Actions](https://support.attackforge.com/app/actions)
* [Self-Service RESTful APIs](https://docs.attackforge.com/)

## Reference: import mapping expressions <a href="#reference-import-mapping-expressions" id="reference-import-mapping-expressions"></a>

### Imported vulnerability datapoints <a href="#imported-vulnerability-datapoints" id="imported-vulnerability-datapoints"></a>

| Datapoint                         | Type    | Description                                                                          |
| --------------------------------- | ------- | ------------------------------------------------------------------------------------ |
| `vuln.priority`                   | String  | Critical, High, Medium, Low or Info                                                  |
| `vuln.title`                      | String  | Title of the vulnerability                                                           |
| `vuln.tags.<tag>`                 | String  | A tag on the vulnerability. The tag must use a colon separator, such as `key:value`. |
| `vuln.custom_tags.<tag>`          | String  | A custom tag. Replace `<tag>` with the custom tag's name.                            |
| `vuln.likelihood_of_exploitation` | Integer | 1 to 10                                                                              |
| `vuln.description`                | String  | Description                                                                          |
| `vuln.attack_scenario`            | String  | Attack scenario                                                                      |
| `vuln.remediation_recommendation` | String  | Remediation recommendation                                                           |
| `vuln.custom_field.<key>`         | String  | A custom field. Replace `<key>` with the custom field's key.                         |
| `vuln.proof_of_concept`           | String  | Steps to reproduce                                                                   |
| `vuln.import_source`              | String  | Import source of the vulnerability                                                   |
| `vuln.import_source_id`           | String  | Import source ID of the vulnerability                                                |

### Writeup datapoints <a href="#writeup-datapoints" id="writeup-datapoints"></a>

| Datapoint                            | Type    | Description                                                                    |
| ------------------------------------ | ------- | ------------------------------------------------------------------------------ |
| `writeup.title`                      | String  | Title of the writeup                                                           |
| `writeup.tags.<tag>`                 | String  | A tag on the writeup. The tag must use a colon separator, such as `key:value`. |
| `writeup.custom_tags.<tag>`          | String  | A custom tag. Replace `<tag>` with the custom tag's name.                      |
| `writeup.likelihood_of_exploitation` | Integer | 1 to 10                                                                        |
| `writeup.description`                | String  | Description                                                                    |
| `writeup.attack_scenario`            | String  | Attack scenario                                                                |
| `writeup.remediation_recommendation` | String  | Remediation recommendation                                                     |
| `writeup.custom_field.<key>`         | String  | A custom field. Replace `<key>` with the custom field's key.                   |
| `writeup.import_source`              | String  | Import source of the writeup                                                   |
| `writeup.import_source_id`           | String  | Import source ID of the writeup                                                |

### Operators <a href="#operators" id="operators"></a>

| Operator          | Meaning                                                         |
| ----------------- | --------------------------------------------------------------- |
| `NOT` or `!`      | Negation                                                        |
| `AND` or `&&`     | And                                                             |
| `OR` or `\|\|`    | Or                                                              |
| `==`              | Equivalent (loose comparison)                                   |
| `===`             | Equal (strict comparison)                                       |
| `!=`              | Not equivalent (loose comparison)                               |
| `!==`             | Not equal (strict comparison)                                   |
| `>` `<` `>=` `<=` | Comparisons                                                     |
| `( )`             | Grouping. Use `!( )` to negate a group. **\[Confirm]**          |
| `$in`             | Value is in a list, or partly matches                           |
| `$nin`            | Value is not in a list                                          |
| `=~ /RegEx/i`     | Regular expression match, for example `writeup.title =~ /SSL/i` |

### Example expressions <a href="#example-expressions" id="example-expressions"></a>

| Expression                                                                                       | Matches when                                                                                                                                                                                               |
| ------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `writeup.title $in vuln.title`                                                                   | The writeup's title fully or partly matches the vulnerability's title. For example, *Out-of-date Version (React)* and *Out-of-date Version (Bootstrap)* both match a writeup titled *Out-of-date Version*. |
| `vuln.tags.pluginID $in writeup.tags.pluginID`                                                   | The vulnerability's `pluginID` tag is in the writeup's `pluginID` tags                                                                                                                                     |
| `vuln.custom_tags.tls_weakness === writeup.custom_tags.tls_weakness`                             | The `tls_weakness` custom tags are exactly equal                                                                                                                                                           |
| `(vuln.tags.pluginID $in writeup.tags.pluginID) OR (vuln.tags.someID $in writeup.tags.pluginID)` | Either the vulnerability's `pluginID` or its `someID` tag is in the writeup's `pluginID` tags                                                                                                              |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://support.attackforge.com/app/getting-started/creating-vulnerabilities.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
