digraph cvss_formula {
newrank=true
rankdir="LR"
subgraph cluster_legend {
label = "Legend";
edge [style=invis]
"Level chosen by user" [shape="rectangle"]
"Magic constant" [shape="hexagon" color="firebrick2"]
"Boring constant" [shape="hexagon"]
"Operation" [shape="diamond"]
"Function" [shape="parallelogram"]
"Calculated value"
"Level chosen by user" -> "Magic constant"
"Magic constant" -> "Boring constant"
"Boring constant" -> "Operation"
"Operation" -> "Function"
"Function" -> "Calculated value"
}
1.0 [shape="hexagon"]
6.42 [shape="hexagon" color="firebrick2"]
7.52 [shape="hexagon" color="firebrick2"]
0.029 [shape="hexagon" color="firebrick2"]
3.25 [shape="hexagon" color="firebrick2"]
0.02 [shape="hexagon" color="firebrick2"]
15 [shape="hexagon" color="firebrick2"]
8.22 [shape="hexagon" color="firebrick2"]
1.08 [shape="hexagon" color="firebrick2"]
changed_10 [label="10" shape="hexagon"]
unchanged_10 [label="10" shape="hexagon"]
attack_vector [label="Attack Vector" shape="rectangle"]
attack_complexity [label="Attack Complexity" shape="rectangle"]
privileges_required [label="Privileges Required" shape="rectangle"]
user_interaction [label="User Interaction" shape="rectangle"]
confidentiality [label="Confidentiality" shape="rectangle"]
integrity [label="Integrity" shape="rectangle"]
availability [label="Availability" shape="rectangle"]
iss [label="ISS"]
confidentiality_1 [label="1.0" shape="hexagon"]
minus_conf [label="-"]
integrity_1 [label="1.0" shape="hexagon"]
minus_intg [label="-"]
availability_1 [label="1.0" shape="hexagon"]
minus_avail [label="-"]
minus_iss [label="-" shape="diamond"]
times_iss [label="×" shape="diamond"]
base_score [label="CVSSv3.1 Base Score"]
subgraph cluster_iss {
label="Impact Sub-Score (ISS)"
minus_iss -> iss
1.0 -> minus_iss
times_iss -> minus_iss
confidentiality_1 -> minus_conf
confidentiality -> minus_conf
minus_conf -> times_iss
integrity_1 -> minus_intg
integrity -> minus_intg
minus_intg -> times_iss
availability_1 -> minus_avail
availability -> minus_avail
minus_avail -> times_iss
}
times_exploit [label="×" shape="diamond"]
subgraph cluster_exploitability {
rankdir="RL"
label="Exploitability"
exploitability [label="Exploitability"]
times_exploit -> exploitability
8.22 -> times_exploit
attack_vector -> times_exploit
attack_complexity -> times_exploit
privileges_required -> times_exploit
user_interaction -> times_exploit
}
times_changed_impact [label="×" shape="diamond"]
times_changed_108 [label="×" shape="diamond"]
plus_changed_impact [label="+" shape="diamond"]
scope_changed_impact [label="Impact"]
min_changed [label="Minimum(x, y)" shape="parallelogram"]
round_changed [label="Roundup(x)" shape="parallelogram"]
subgraph cluster_scope_changed {
label="Scope Changed"
iss -> times_changed_impact
6.42 -> times_changed_impact
1.08 -> times_changed_108
times_changed_impact -> scope_changed_impact
scope_changed_impact -> plus_changed_impact
exploitability -> plus_changed_impact
plus_changed_impact -> times_changed_108
times_changed_108 -> min_changed
changed_10 -> min_changed
min_changed -> round_changed
}
impact_unchanged [label="Impact"]
times_unchanged_impact_left [label="×" shape="diamond"]
minus_unchanged_impact_left [label="-" shape="diamond"]
times_unchanged_impact_right [label="×" shape="diamond"]
minus_unchanged_impact_right [label="-" shape="diamond"]
minus_unchanged_impact_both [label="-" shape="diamond"]
power [label="Power(value, power)" shape="parallelogram"]
min_unchanged [label="Minimum(x, y)" shape="parallelogram"]
round_unchanged [label="Roundup(x)" shape="parallelogram"]
plus_unchanged_impact [label="+" shape="diamond"]
subgraph cluster_scope_unchanged {
label="Scope Unchanged"
7.52 -> times_unchanged_impact_left
times_unchanged_impact_left -> minus_unchanged_impact_both
iss -> minus_unchanged_impact_left
0.029 -> minus_unchanged_impact_left
minus_unchanged_impact_left -> times_unchanged_impact_left
3.25 -> times_unchanged_impact_right
iss -> minus_unchanged_impact_right
0.02 -> minus_unchanged_impact_right
15 -> power
minus_unchanged_impact_right -> power
power -> times_unchanged_impact_right
times_unchanged_impact_right -> minus_unchanged_impact_both
minus_unchanged_impact_both -> impact_unchanged
impact_unchanged -> plus_unchanged_impact
unchanged_10 -> min_unchanged
plus_unchanged_impact -> min_unchanged
min_unchanged -> round_unchanged
exploitability -> plus_unchanged_impact
}
round_changed -> base_score
round_unchanged -> base_score
}