dradis-calculator_cvss 4.10.0 → 4.12.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/pull_request_template.md +12 -3
- data/CHANGELOG.md +6 -0
- data/README.md +2 -2
- data/app/assets/javascripts/dradis/plugins/calculators/cvss/cvss.js +32 -0
- data/app/assets/javascripts/dradis/plugins/calculators/cvss/manifests/application.js +16 -5
- data/app/assets/javascripts/dradis/plugins/calculators/cvss/manifests/tylium.js +16 -5
- data/app/assets/javascripts/dradis/plugins/calculators/cvss/{calculator.js.coffee → v3/calculator.js.coffee} +10 -32
- data/app/assets/javascripts/dradis/plugins/calculators/cvss/v4/calculator.js +168 -0
- data/app/assets/javascripts/dradis/plugins/calculators/cvss/v4/vendor/app.js +435 -0
- data/app/assets/javascripts/dradis/plugins/calculators/cvss/v4/vendor/cvss_config.js +858 -0
- data/app/assets/javascripts/dradis/plugins/calculators/cvss/v4/vendor/cvss_details.js +18 -0
- data/app/assets/javascripts/dradis/plugins/calculators/cvss/v4/vendor/cvss_lookup.js +275 -0
- data/app/assets/javascripts/dradis/plugins/calculators/cvss/v4/vendor/max_composed.js +35 -0
- data/app/assets/javascripts/dradis/plugins/calculators/cvss/v4/vendor/max_severity.js +30 -0
- data/app/assets/javascripts/dradis/plugins/calculators/cvss/v4/vendor/metrics.js +42 -0
- data/app/assets/stylesheets/dradis/plugins/calculators/cvss/manifests/application.css.scss +2 -1
- data/app/assets/stylesheets/dradis/plugins/calculators/cvss/manifests/tylium.scss +1 -2
- data/app/controllers/dradis/plugins/calculators/cvss/base_controller.rb +3 -1
- data/app/controllers/dradis/plugins/calculators/cvss/issues_controller.rb +35 -9
- data/app/models/dradis/plugins/calculators/cvss/v4.rb +89 -0
- data/app/views/dradis/plugins/calculators/cvss/_version_menu.html.erb +8 -0
- data/app/views/dradis/plugins/calculators/cvss/base/index.html.erb +9 -70
- data/app/views/dradis/plugins/calculators/cvss/base/v3/_base.html.erb +123 -0
- data/app/views/dradis/plugins/calculators/cvss/base/v3/_environmental.html.erb +192 -0
- data/app/views/dradis/plugins/calculators/cvss/base/v3/_index.html.erb +69 -0
- data/app/views/dradis/plugins/calculators/cvss/base/v3/_temporal.html.erb +67 -0
- data/app/views/dradis/plugins/calculators/cvss/base/v4/_base.html.erb +143 -0
- data/app/views/dradis/plugins/calculators/cvss/base/v4/_environmental.html.erb +220 -0
- data/app/views/dradis/plugins/calculators/cvss/base/v4/_index.html.erb +82 -0
- data/app/views/dradis/plugins/calculators/cvss/base/v4/_supplemental.html.erb +85 -0
- data/app/views/dradis/plugins/calculators/cvss/base/v4/_threat.html.erb +19 -0
- data/app/views/dradis/plugins/calculators/cvss/issues/_show-content.html.erb +21 -7
- data/app/views/dradis/plugins/calculators/cvss/issues/edit/_v3.html.erb +91 -0
- data/app/views/dradis/plugins/calculators/cvss/issues/edit/_v4.html.erb +103 -0
- data/app/views/dradis/plugins/calculators/cvss/issues/edit.html.erb +3 -93
- data/lib/dradis/plugins/calculators/cvss/gem_version.rb +1 -1
- metadata +34 -17
- data/app/assets/stylesheets/dradis/plugins/calculators/cvss/_version_switch.scss +0 -26
- data/app/views/dradis/plugins/calculators/cvss/_version_switch.html.erb +0 -10
- data/app/views/dradis/plugins/calculators/cvss/base/_base.html.erb +0 -123
- data/app/views/dradis/plugins/calculators/cvss/base/_environmental.html.erb +0 -192
- data/app/views/dradis/plugins/calculators/cvss/base/_temporal.html.erb +0 -67
- /data/app/assets/javascripts/dradis/plugins/calculators/cvss/{vendor → v3/vendor}/cvsscalc30.js +0 -0
- /data/app/assets/javascripts/dradis/plugins/calculators/cvss/{vendor → v3/vendor}/cvsscalc30_helptext.js +0 -0
- /data/app/assets/javascripts/dradis/plugins/calculators/cvss/{vendor → v3/vendor}/cvsscalc31.js +0 -0
- /data/app/assets/javascripts/dradis/plugins/calculators/cvss/{vendor → v3/vendor}/cvsscalc31_helptext.js +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ea68a10e94cb20e0854d84fa245cfbd8cbf26f6dd3ae9c9c30602667a216856f
|
4
|
+
data.tar.gz: 2883a651f2bd078b4c707a78fd5081dd7dde1294c91bd9ac90e1ff3e0af3495e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 97bdfdfc740b2d81b59e5082a2c89e71d261ce40613ad1692484d643c92326bf28797c3dad3aa68cb6110f25493f1403482ade15fa44c081e00699f3dd13f15a
|
7
|
+
data.tar.gz: 3725740d1aa3c93d36d10931e14cd67b755e2c75c0bb974efc9d3684d591b65dd024e01c8666f2e6e60dd66c423c68779110db876dd8e7f55e39bdc9663aedad
|
@@ -1,3 +1,5 @@
|
|
1
|
+
Please review [CONTRIBUTING.md](https://github.com/dradis/dradis-ce/blob/develop/CONTRIBUTING.md) and remove this line.
|
2
|
+
|
1
3
|
### Summary
|
2
4
|
|
3
5
|
Provide a general description of the code changes in your pull
|
@@ -6,6 +8,11 @@ these bugs have open GitHub issues, be sure to tag them here as well,
|
|
6
8
|
to keep the conversation linked together.
|
7
9
|
|
8
10
|
|
11
|
+
### Testing Steps
|
12
|
+
|
13
|
+
Provide steps to test functionality, described in detail for someone not familiar with this part of the application / code base
|
14
|
+
|
15
|
+
|
9
16
|
### Other Information
|
10
17
|
|
11
18
|
If there's anything else that's important and relevant to your pull
|
@@ -26,11 +33,13 @@ products, we must have the copyright associated with the entire
|
|
26
33
|
codebase. Any code you create which is merged must be owned by us.
|
27
34
|
That's not us trying to be a jerks, that's just the way it works.
|
28
35
|
|
29
|
-
Please review the [CONTRIBUTING.md](https://github.com/dradis/dradis-ce/blob/master/CONTRIBUTING.md)
|
30
|
-
file for the details.
|
31
|
-
|
32
36
|
You can delete this section, but the following sentence needs to
|
33
37
|
remain in the PR's description:
|
34
38
|
|
35
39
|
> I assign all rights, including copyright, to any future Dradis
|
36
40
|
> work by myself to Security Roots.
|
41
|
+
|
42
|
+
### Check List
|
43
|
+
|
44
|
+
- [ ] Added a CHANGELOG entry
|
45
|
+
- [ ] Added specs
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -22,12 +22,12 @@ Restart your Dradis server and you should be good to go.
|
|
22
22
|
|
23
23
|
## More information
|
24
24
|
|
25
|
-
See the Dradis Framework's [README.md](https://github.com/dradis/
|
25
|
+
See the Dradis Framework's [README.md](https://github.com/dradis/dradis-ce/blob/develop/README.md)
|
26
26
|
|
27
27
|
|
28
28
|
## Contributing
|
29
29
|
|
30
|
-
See the Dradis Framework's [CONTRIBUTING.md](https://github.com/dradis/
|
30
|
+
See the Dradis Framework's [CONTRIBUTING.md](https://github.com/dradis/dradis-ce/blob/develop/CONTRIBUTING.md)
|
31
31
|
|
32
32
|
|
33
33
|
## License
|
@@ -0,0 +1,32 @@
|
|
1
|
+
$(document).on('turbolinks:load', function () {
|
2
|
+
if ($('[data-behavior~=cvss-version]').length) {
|
3
|
+
function handleVersionSelection() {
|
4
|
+
var selectedValue = $('[data-behavior~=cvss-version]').val();
|
5
|
+
$('[data-cvss-version]').addClass('d-none');
|
6
|
+
switch (selectedValue) {
|
7
|
+
case '40':
|
8
|
+
$('[data-cvss-version=4]').removeClass('d-none');
|
9
|
+
window.calculator = new CVSS40Calculator();
|
10
|
+
break;
|
11
|
+
case '31':
|
12
|
+
$('[data-cvss-version=3]').removeClass('d-none');
|
13
|
+
window.calculator = new CVSS31Calculator();
|
14
|
+
break;
|
15
|
+
case '30':
|
16
|
+
$('[data-cvss-version=3]').removeClass('d-none');
|
17
|
+
window.calculator = new CVSS30Calculator();
|
18
|
+
break;
|
19
|
+
}
|
20
|
+
}
|
21
|
+
handleVersionSelection();
|
22
|
+
$('[data-behavior~=cvss-error]').addClass('d-none');
|
23
|
+
$('[data-behavior~=cvss-buttons] button').on('click', function () {
|
24
|
+
var $this = $(this);
|
25
|
+
$this.parent().find('button').removeClass('active btn-primary');
|
26
|
+
$this.addClass('active btn-primary');
|
27
|
+
$(`input[name="${$this.attr('name')}"]`).val($this.val());
|
28
|
+
window.calculator.calculate();
|
29
|
+
});
|
30
|
+
$('[data-behavior~=cvss-version]').on('change', handleVersionSelection);
|
31
|
+
}
|
32
|
+
});
|
@@ -3,8 +3,19 @@
|
|
3
3
|
//= require bootstrap
|
4
4
|
//= require turbolinks
|
5
5
|
|
6
|
-
//= require dradis/plugins/calculators/cvss/vendor/cvsscalc30
|
7
|
-
//= require dradis/plugins/calculators/cvss/vendor/cvsscalc30_helptext
|
8
|
-
//= require dradis/plugins/calculators/cvss/vendor/cvsscalc31
|
9
|
-
//= require dradis/plugins/calculators/cvss/vendor/cvsscalc31_helptext
|
10
|
-
//= require dradis/plugins/calculators/cvss/calculator
|
6
|
+
//= require dradis/plugins/calculators/cvss/v3/vendor/cvsscalc30
|
7
|
+
//= require dradis/plugins/calculators/cvss/v3/vendor/cvsscalc30_helptext
|
8
|
+
//= require dradis/plugins/calculators/cvss/v3/vendor/cvsscalc31
|
9
|
+
//= require dradis/plugins/calculators/cvss/v3/vendor/cvsscalc31_helptext
|
10
|
+
//= require dradis/plugins/calculators/cvss/v3/calculator
|
11
|
+
|
12
|
+
//= require dradis/plugins/calculators/cvss/v4/vendor/app
|
13
|
+
//= require dradis/plugins/calculators/cvss/v4/vendor/cvss_config
|
14
|
+
//= require dradis/plugins/calculators/cvss/v4/vendor/cvss_details
|
15
|
+
//= require dradis/plugins/calculators/cvss/v4/vendor/cvss_lookup
|
16
|
+
//= require dradis/plugins/calculators/cvss/v4/vendor/max_composed
|
17
|
+
//= require dradis/plugins/calculators/cvss/v4/vendor/max_severity
|
18
|
+
//= require dradis/plugins/calculators/cvss/v4/vendor/metrics
|
19
|
+
//= require dradis/plugins/calculators/cvss/v4/calculator
|
20
|
+
|
21
|
+
//= require dradis/plugins/calculators/cvss/cvss
|
@@ -1,5 +1,16 @@
|
|
1
|
-
//= require dradis/plugins/calculators/cvss/vendor/cvsscalc30
|
2
|
-
//= require dradis/plugins/calculators/cvss/vendor/cvsscalc30_helptext
|
3
|
-
//= require dradis/plugins/calculators/cvss/vendor/cvsscalc31
|
4
|
-
//= require dradis/plugins/calculators/cvss/vendor/cvsscalc31_helptext
|
5
|
-
//= require dradis/plugins/calculators/cvss/calculator
|
1
|
+
//= require dradis/plugins/calculators/cvss/v3/vendor/cvsscalc30
|
2
|
+
//= require dradis/plugins/calculators/cvss/v3/vendor/cvsscalc30_helptext
|
3
|
+
//= require dradis/plugins/calculators/cvss/v3/vendor/cvsscalc31
|
4
|
+
//= require dradis/plugins/calculators/cvss/v3/vendor/cvsscalc31_helptext
|
5
|
+
//= require dradis/plugins/calculators/cvss/v3/calculator
|
6
|
+
|
7
|
+
//= require dradis/plugins/calculators/cvss/v4/vendor/app
|
8
|
+
//= require dradis/plugins/calculators/cvss/v4/vendor/cvss_config
|
9
|
+
//= require dradis/plugins/calculators/cvss/v4/vendor/cvss_details
|
10
|
+
//= require dradis/plugins/calculators/cvss/v4/vendor/cvss_lookup
|
11
|
+
//= require dradis/plugins/calculators/cvss/v4/vendor/max_composed
|
12
|
+
//= require dradis/plugins/calculators/cvss/v4/vendor/max_severity
|
13
|
+
//= require dradis/plugins/calculators/cvss/v4/vendor/metrics
|
14
|
+
//= require dradis/plugins/calculators/cvss/v4/calculator
|
15
|
+
|
16
|
+
//= require dradis/plugins/calculators/cvss/cvss
|
@@ -128,38 +128,16 @@ class CVSSCalculator
|
|
128
128
|
$('input[type=submit]').attr('disabled', 'disabled')
|
129
129
|
$('[data-behavior~=cvss-error]').removeClass('d-none').text(errorMessage)
|
130
130
|
|
131
|
-
class CVSS30Calculator extends CVSSCalculator
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
super()
|
137
|
-
|
138
|
-
class CVSS31Calculator extends CVSSCalculator
|
139
|
-
constructor: ->
|
140
|
-
@calc = CVSS31
|
141
|
-
@cvssHelp = CVSS31_Help
|
142
|
-
|
143
|
-
super()
|
144
|
-
|
145
|
-
document.addEventListener "turbolinks:load", ->
|
146
|
-
if $('[data-behavior~=cvss-buttons]').length
|
147
|
-
if $('[data-behavior~=cvss-version-toggle]').prop('checked')
|
148
|
-
window.calculator = new CVSS30Calculator()
|
149
|
-
else
|
150
|
-
window.calculator = new CVSS31Calculator()
|
131
|
+
class @CVSS30Calculator extends CVSSCalculator
|
132
|
+
constructor: ->
|
133
|
+
@calc = CVSS
|
134
|
+
@cvssHelp = CVSS_Help
|
151
135
|
|
152
|
-
|
136
|
+
super()
|
153
137
|
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
$("input[name=#{$this.attr('name')}]").val($this.val())
|
159
|
-
window.calculator.calculate()
|
138
|
+
class @CVSS31Calculator extends CVSSCalculator
|
139
|
+
constructor: ->
|
140
|
+
@calc = CVSS31
|
141
|
+
@cvssHelp = CVSS31_Help
|
160
142
|
|
161
|
-
|
162
|
-
if $('[data-behavior~=cvss-version-toggle]').prop('checked')
|
163
|
-
window.calculator = new CVSS30Calculator()
|
164
|
-
else
|
165
|
-
window.calculator = new CVSS31Calculator()
|
143
|
+
super()
|
@@ -0,0 +1,168 @@
|
|
1
|
+
class CVSS4Calculator {
|
2
|
+
constructor() {
|
3
|
+
$('[data-cvss-heading], [data-cvss-option]').each(function (_, item) {
|
4
|
+
let heading, metrics, metricGroup, tooltipContent;
|
5
|
+
|
6
|
+
metrics = $(item).parents('[data-cvss-metrics]').data('cvss-metrics');
|
7
|
+
metricGroup = $(item)
|
8
|
+
.parents('[data-cvss-metric-group]')
|
9
|
+
.data('cvss-metric-group');
|
10
|
+
|
11
|
+
if ($(item).is('[data-cvss-option]')) {
|
12
|
+
let option = $(item).data('cvss-option');
|
13
|
+
heading = $(item)
|
14
|
+
.parent()
|
15
|
+
.prevAll('[data-cvss-heading]:first')
|
16
|
+
.data('cvss-heading');
|
17
|
+
tooltipContent =
|
18
|
+
cvss40Config[metrics].metric_groups[metricGroup][heading].options[
|
19
|
+
option
|
20
|
+
].tooltip;
|
21
|
+
} else {
|
22
|
+
heading = $(item).data('cvss-heading');
|
23
|
+
tooltipContent =
|
24
|
+
cvss40Config[metrics].metric_groups[metricGroup][heading].tooltip;
|
25
|
+
}
|
26
|
+
|
27
|
+
$(item).attr('title', tooltipContent);
|
28
|
+
});
|
29
|
+
}
|
30
|
+
}
|
31
|
+
|
32
|
+
class CVSS40Calculator extends CVSS4Calculator {
|
33
|
+
constructor() {
|
34
|
+
super()
|
35
|
+
|
36
|
+
this.app = cvss_v4_app();
|
37
|
+
this.calculate();
|
38
|
+
}
|
39
|
+
|
40
|
+
calculate() {
|
41
|
+
const regex = / \(.+?\)/i;
|
42
|
+
|
43
|
+
$('input[type=submit]').attr('disabled', null);
|
44
|
+
|
45
|
+
const that = this;
|
46
|
+
$('[data-cvss-metrics] .btn-group').each(function(){
|
47
|
+
const selected = $(this).find('[data-cvss-option].active');
|
48
|
+
|
49
|
+
if (selected.length == 1) {
|
50
|
+
that.app.cvssSelected[selected.attr('name').toUpperCase()] = selected.attr('value');
|
51
|
+
|
52
|
+
const label = selected.data('cvss-option');
|
53
|
+
that.app.cvssSelectedValue[selected.attr('name').toUpperCase()] = label.replace(regex, '');
|
54
|
+
}
|
55
|
+
});
|
56
|
+
|
57
|
+
this.setResult();
|
58
|
+
|
59
|
+
return true;
|
60
|
+
}
|
61
|
+
|
62
|
+
baseVector() {
|
63
|
+
let baseVector = 'CVSS:4.0';
|
64
|
+
const that = this;
|
65
|
+
|
66
|
+
Object.keys(expectedMetricOrder).forEach(function(metric) {
|
67
|
+
if (that.app.cvssSelected[metric] && that.app.cvssSelected[metric] != 'X') {
|
68
|
+
baseVector += `/${metric}:${that.app.cvssSelected[metric]}`
|
69
|
+
}
|
70
|
+
})
|
71
|
+
|
72
|
+
return baseVector;
|
73
|
+
}
|
74
|
+
|
75
|
+
setResult() {
|
76
|
+
let issue_cvss = ''
|
77
|
+
|
78
|
+
issue_cvss += "#[CVSSv4.BaseVector]#\n"
|
79
|
+
issue_cvss += `${this.baseVector()}\n\n`
|
80
|
+
issue_cvss += "#[CVSSv4.BaseScore]#\n"
|
81
|
+
issue_cvss += `${this.app.score()}\n\n`
|
82
|
+
issue_cvss += "#[CVSSv4.BaseSeverity]#\n"
|
83
|
+
issue_cvss += `${this.app.qualScore()}\n\n`
|
84
|
+
|
85
|
+
issue_cvss += "#[CVSSv4.MacroVector]#\n";
|
86
|
+
issue_cvss += `${this.app.macroVector()}\n\n`
|
87
|
+
|
88
|
+
const that = this;
|
89
|
+
[
|
90
|
+
'Exploitability', 'Complexity', 'VulnerableSystem', 'SubsequentSystem',
|
91
|
+
'Exploitation', 'SecurityRequirements'
|
92
|
+
].forEach(function(macroMetric) {
|
93
|
+
issue_cvss += "#[CVSSv4." + macroMetric + "]#\n"
|
94
|
+
issue_cvss += cvssMacroVectorValues[that.app.macroVector()[cvssMacroVectorDetails[macroMetric]]] + "\n\n"
|
95
|
+
});
|
96
|
+
|
97
|
+
issue_cvss += "#[CVSSv4.BaseExploitableAttackVector]#\n"
|
98
|
+
issue_cvss += `${this.app.cvssSelectedValue['AV']}\n\n`
|
99
|
+
issue_cvss += "#[CVSSv4.BaseExploitableAttackComplexity]#\n"
|
100
|
+
issue_cvss += `${this.app.cvssSelectedValue['AC']}\n\n`
|
101
|
+
issue_cvss += "#[CVSSv4.BaseExploitableAttackRequirements]#\n"
|
102
|
+
issue_cvss += `${this.app.cvssSelectedValue['AT']}\n\n`
|
103
|
+
issue_cvss += "#[CVSSv4.BaseExploitablePrivilegesRequired]#\n"
|
104
|
+
issue_cvss += `${this.app.cvssSelectedValue['PR']}\n\n`
|
105
|
+
issue_cvss += "#[CVSSv4.BaseExploitableUserInteraction]#\n"
|
106
|
+
issue_cvss += `${this.app.cvssSelectedValue['UI']}\n\n`
|
107
|
+
issue_cvss += "#[CVSSv4.BaseVulnerableConfidentiality]#\n"
|
108
|
+
issue_cvss += `${this.app.cvssSelectedValue['VC']}\n\n`
|
109
|
+
issue_cvss += "#[CVSSv4.BaseVulnerableIntegrity]#\n"
|
110
|
+
issue_cvss += `${this.app.cvssSelectedValue['VI']}\n\n`
|
111
|
+
issue_cvss += "#[CVSSv4.BaseVulnerableAvailability]#\n"
|
112
|
+
issue_cvss += `${this.app.cvssSelectedValue['VA']}\n\n`
|
113
|
+
issue_cvss += "#[CVSSv4.BaseSubsequentConfidentiality]#\n"
|
114
|
+
issue_cvss += `${this.app.cvssSelectedValue['SC']}\n\n`
|
115
|
+
issue_cvss += "#[CVSSv4.BaseSubsequentIntegrity]#\n"
|
116
|
+
issue_cvss += `${this.app.cvssSelectedValue['SI']}\n\n`
|
117
|
+
issue_cvss += "#[CVSSv4.BaseSubsequentAvailability]#\n"
|
118
|
+
issue_cvss += `${this.app.cvssSelectedValue['SA']}\n\n`
|
119
|
+
|
120
|
+
issue_cvss += "#[CVSSv4.SupplementalSafety]#\n"
|
121
|
+
issue_cvss += `${this.app.cvssSelectedValue['S']}\n\n`
|
122
|
+
issue_cvss += "#[CVSSv4.SupplementalAutomatable]#\n"
|
123
|
+
issue_cvss += `${this.app.cvssSelectedValue['AU']}\n\n`
|
124
|
+
issue_cvss += "#[CVSSv4.SupplementalRecovery]#\n"
|
125
|
+
issue_cvss += `${this.app.cvssSelectedValue['R']}\n\n`
|
126
|
+
issue_cvss += "#[CVSSv4.SupplementalValueDensity]#\n"
|
127
|
+
issue_cvss += `${this.app.cvssSelectedValue['V']}\n\n`
|
128
|
+
issue_cvss += "#[CVSSv4.SupplementalVulnerabilityResponseEffort]#\n"
|
129
|
+
issue_cvss += `${this.app.cvssSelectedValue['RE']}\n\n`
|
130
|
+
issue_cvss += "#[CVSSv4.SupplementalProviderUrgency]#\n"
|
131
|
+
issue_cvss += `${this.app.cvssSelectedValue['U']}\n\n`
|
132
|
+
|
133
|
+
issue_cvss += "#[CVSSv4.EnvironmentalExploitabilityAttackVector]#\n"
|
134
|
+
issue_cvss += `${this.app.cvssSelectedValue['MAV']}\n\n`
|
135
|
+
issue_cvss += "#[CVSSv4.EnvironmentalExploitabilityAttackComplexity]#\n"
|
136
|
+
issue_cvss += `${this.app.cvssSelectedValue['MAC']}\n\n`
|
137
|
+
issue_cvss += "#[CVSSv4.EnvironmentalExploitabilityAttackRequirements]#\n"
|
138
|
+
issue_cvss += `${this.app.cvssSelectedValue['MAT']}\n\n`
|
139
|
+
issue_cvss += "#[CVSSv4.EnvironmentalExploitabilityPrivilegesRequired]#\n"
|
140
|
+
issue_cvss += `${this.app.cvssSelectedValue['MPR']}\n\n`
|
141
|
+
issue_cvss += "#[CVSSv4.EnvironmentalExploitabilityUserInteraction]#\n"
|
142
|
+
issue_cvss += `${this.app.cvssSelectedValue['MUI']}\n\n`
|
143
|
+
issue_cvss += "#[CVSSv4.EnvironmentalVulnerableConfidentiality]#\n"
|
144
|
+
issue_cvss += `${this.app.cvssSelectedValue['MVC']}\n\n`
|
145
|
+
issue_cvss += "#[CVSSv4.EnvironmentalVulnerableIntegrity]#\n"
|
146
|
+
issue_cvss += `${this.app.cvssSelectedValue['MVI']}\n\n`
|
147
|
+
issue_cvss += "#[CVSSv4.EnvironmentalVulnerableAvailability]#\n"
|
148
|
+
issue_cvss += `${this.app.cvssSelectedValue['MVA']}\n\n`
|
149
|
+
issue_cvss += "#[CVSSv4.EnvironmentalSubsequentConfidentiality]#\n"
|
150
|
+
issue_cvss += `${this.app.cvssSelectedValue['MSC']}\n\n`
|
151
|
+
issue_cvss += "#[CVSSv4.EnvironmentalSubsequentIntegrity]#\n"
|
152
|
+
issue_cvss += `${this.app.cvssSelectedValue['MSI']}\n\n`
|
153
|
+
issue_cvss += "#[CVSSv4.EnvironmentalSubsequentAvailability]#\n"
|
154
|
+
issue_cvss += `${this.app.cvssSelectedValue['MSA']}\n\n`
|
155
|
+
issue_cvss += "#[CVSSv4.EnvironmentalConfidentialityRequirements]#\n"
|
156
|
+
issue_cvss += `${this.app.cvssSelectedValue['CR']}\n\n`
|
157
|
+
issue_cvss += "#[CVSSv4.EnvironmentalIntegrityRequirements]#\n"
|
158
|
+
issue_cvss += `${this.app.cvssSelectedValue['IR']}\n\n`
|
159
|
+
issue_cvss += "#[CVSSv4.EnvironmentalAvailabilityRequirements]#\n"
|
160
|
+
issue_cvss += `${this.app.cvssSelectedValue['AR']}\n\n`
|
161
|
+
|
162
|
+
issue_cvss += "#[CVSSv4.ThreatExploitMaturity]#\n"
|
163
|
+
issue_cvss += `${this.app.cvssSelectedValue['E']}\n\n`
|
164
|
+
|
165
|
+
$('[data-behavior=cvss4-result-text] textarea').val(issue_cvss)
|
166
|
+
$('[data-behavior=cvss4-result]').html(this.app.score() + ' (' + this.app.qualScore() + ')')
|
167
|
+
}
|
168
|
+
}
|