Skip to content

Acquire Exploit Behavior

Some Vendors or other CVD Participants might require a proof-of-concept exploit to accompany an incoming report for it to pass their validation checks. To that end, an Acquire Exploit Behavior Tree is shown below.

---
title: Acquire Exploit Behavior Tree
---
flowchart LR
    fb["?"]
    have_exploit(["have exploit?"])
    fb --> have_exploit
    seq["→"]
    fb --> seq
    fb2["?"]
    seq --> fb2
    exp_priority(["exploit priority<br/>set?"])
    fb2 --> exp_priority
    eval_priority["evaluate<br/>priority"]
    fb2 --> eval_priority
    exp_desired(["exploit desired?"])
    seq --> exp_desired
    fb3["?"]
    seq --> fb3
    find_exploit["find exploit"]
    fb3 --> find_exploit
    dev_exploit["develop exploit"]
    fb3 --> dev_exploit
    pay_exploit["purchase exploit"]
    fb3 --> pay_exploit

The goal of this behavior is for the Participant to be in possession of an exploit.

If the Participant does not already have one, the main acquisition sequence is triggered. The sequence begins by ensuring that the exploit acquisition activity has sufficient priority to continue. If it does, the Participant has one of three options to choose from: they can find one somewhere else, develop it themselves, or pay someone for the privilege.

The overall behavior returns Success when either an exploit is acquired or when one is not desired and is therefore deferred. It can fail in the scenario where an exploit is desired but not acquired.