dradis-calculator_cvss 4.11.0 → 4.12.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +3 -0
  3. data/app/assets/javascripts/dradis/plugins/calculators/cvss/cvss.js +32 -0
  4. data/app/assets/javascripts/dradis/plugins/calculators/cvss/manifests/application.js +16 -5
  5. data/app/assets/javascripts/dradis/plugins/calculators/cvss/manifests/tylium.js +16 -5
  6. data/app/assets/javascripts/dradis/plugins/calculators/cvss/{calculator.js.coffee → v3/calculator.js.coffee} +10 -32
  7. data/app/assets/javascripts/dradis/plugins/calculators/cvss/v4/calculator.js +168 -0
  8. data/app/assets/javascripts/dradis/plugins/calculators/cvss/v4/vendor/app.js +435 -0
  9. data/app/assets/javascripts/dradis/plugins/calculators/cvss/v4/vendor/cvss_config.js +858 -0
  10. data/app/assets/javascripts/dradis/plugins/calculators/cvss/v4/vendor/cvss_details.js +18 -0
  11. data/app/assets/javascripts/dradis/plugins/calculators/cvss/v4/vendor/cvss_lookup.js +275 -0
  12. data/app/assets/javascripts/dradis/plugins/calculators/cvss/v4/vendor/max_composed.js +35 -0
  13. data/app/assets/javascripts/dradis/plugins/calculators/cvss/v4/vendor/max_severity.js +30 -0
  14. data/app/assets/javascripts/dradis/plugins/calculators/cvss/v4/vendor/metrics.js +42 -0
  15. data/app/assets/stylesheets/dradis/plugins/calculators/cvss/manifests/application.css.scss +2 -1
  16. data/app/assets/stylesheets/dradis/plugins/calculators/cvss/manifests/tylium.scss +1 -2
  17. data/app/controllers/dradis/plugins/calculators/cvss/base_controller.rb +3 -1
  18. data/app/controllers/dradis/plugins/calculators/cvss/issues_controller.rb +35 -9
  19. data/app/models/dradis/plugins/calculators/cvss/v4.rb +89 -0
  20. data/app/views/dradis/plugins/calculators/cvss/_version_menu.html.erb +8 -0
  21. data/app/views/dradis/plugins/calculators/cvss/base/index.html.erb +9 -70
  22. data/app/views/dradis/plugins/calculators/cvss/base/v3/_base.html.erb +123 -0
  23. data/app/views/dradis/plugins/calculators/cvss/base/v3/_environmental.html.erb +192 -0
  24. data/app/views/dradis/plugins/calculators/cvss/base/v3/_index.html.erb +69 -0
  25. data/app/views/dradis/plugins/calculators/cvss/base/v3/_temporal.html.erb +67 -0
  26. data/app/views/dradis/plugins/calculators/cvss/base/v4/_base.html.erb +143 -0
  27. data/app/views/dradis/plugins/calculators/cvss/base/v4/_environmental.html.erb +220 -0
  28. data/app/views/dradis/plugins/calculators/cvss/base/v4/_index.html.erb +82 -0
  29. data/app/views/dradis/plugins/calculators/cvss/base/v4/_supplemental.html.erb +85 -0
  30. data/app/views/dradis/plugins/calculators/cvss/base/v4/_threat.html.erb +19 -0
  31. data/app/views/dradis/plugins/calculators/cvss/issues/_show-content.html.erb +21 -7
  32. data/app/views/dradis/plugins/calculators/cvss/issues/edit/_v3.html.erb +91 -0
  33. data/app/views/dradis/plugins/calculators/cvss/issues/edit/_v4.html.erb +103 -0
  34. data/app/views/dradis/plugins/calculators/cvss/issues/edit.html.erb +3 -93
  35. data/lib/dradis/plugins/calculators/cvss/gem_version.rb +1 -1
  36. metadata +30 -13
  37. data/app/assets/stylesheets/dradis/plugins/calculators/cvss/_version_switch.scss +0 -26
  38. data/app/views/dradis/plugins/calculators/cvss/_version_switch.html.erb +0 -10
  39. data/app/views/dradis/plugins/calculators/cvss/base/_base.html.erb +0 -123
  40. data/app/views/dradis/plugins/calculators/cvss/base/_environmental.html.erb +0 -192
  41. data/app/views/dradis/plugins/calculators/cvss/base/_temporal.html.erb +0 -67
  42. /data/app/assets/javascripts/dradis/plugins/calculators/cvss/{vendor → v3/vendor}/cvsscalc30.js +0 -0
  43. /data/app/assets/javascripts/dradis/plugins/calculators/cvss/{vendor → v3/vendor}/cvsscalc30_helptext.js +0 -0
  44. /data/app/assets/javascripts/dradis/plugins/calculators/cvss/{vendor → v3/vendor}/cvsscalc31.js +0 -0
  45. /data/app/assets/javascripts/dradis/plugins/calculators/cvss/{vendor → v3/vendor}/cvsscalc31_helptext.js +0 -0
@@ -0,0 +1,103 @@
1
+ <div class="inner note-text-inner d-none" data-cvss-version="4">
2
+
3
+ <%= simple_form_for [:cvss, current_project, @issue] do |f| %>
4
+
5
+ <div class="alert alert-error" data-behavior="cvss-error">
6
+ <p><strong>Warning</strong>: all Base metrics are required</p>
7
+ </div>
8
+
9
+ <ul class="nav nav-pills w-100" id="cvss-tabs">
10
+ <li class="nav-item">
11
+ <a href="#cvss4-edit-base" data-bs-toggle="pill" class="nav-link active">Base</a>
12
+ </li>
13
+ <li class="nav-item">
14
+ <a href="#cvss4-edit-supplemental" data-bs-toggle="pill" class="nav-link">Supplemental</a>
15
+ </li>
16
+ <li class="nav-item">
17
+ <a href="#cvss4-edit-environmental" data-bs-toggle="pill" class="nav-link">Environmental</a>
18
+ </li>
19
+ <li class="nav-item">
20
+ <a href="#cvss4-edit-threat" data-bs-toggle="pill" class="nav-link">Threat</a>
21
+ </li>
22
+ <li class="nav-item pull-right">
23
+ <a href="#cvss4-edit-result" data-bs-toggle="pill" class="nav-link">Result: <span data-behavior="cvss4-result">0.0 (None)</span></a>
24
+ </li>
25
+ </ul>
26
+
27
+ <div class="tab-content mt-4">
28
+ <div class="tab-pane active" id="cvss4-edit-base">
29
+ <%= render 'dradis/plugins/calculators/cvss/base/v4/base' %>
30
+ </div>
31
+ <div class="tab-pane" id="cvss4-edit-supplemental">
32
+ <%= render 'dradis/plugins/calculators/cvss/base/v4/supplemental' %>
33
+ </div>
34
+ <div class="tab-pane" id="cvss4-edit-environmental">
35
+ <%= render 'dradis/plugins/calculators/cvss/base/v4/environmental' %>
36
+ </div>
37
+ <div class="tab-pane" id="cvss4-edit-threat">
38
+ <%= render 'dradis/plugins/calculators/cvss/base/v4/threat' %>
39
+ </div>
40
+
41
+ <div class="tab-pane" id="cvss4-edit-result" data-behavior="cvss4-result-text">
42
+ <textarea class="form-control" name="cvss_fields" rows="10" style="width:95%">#[CVSSv4.Vector]#
43
+ N/A
44
+
45
+ #[CVSSv4.BaseScore]#
46
+ N/A
47
+
48
+ #[CVSSv4.BaseSeverity]#
49
+ N/A
50
+
51
+ #[CVSSv4.MacroVector]#
52
+ #[CVSSv4.Expoitability]#
53
+ #[CVSSv4.Complexity]#
54
+ #[CVSSv4.VulnerableSystem]#
55
+ #[CVSSv4.SubsequentSystem]#
56
+ #[CVSSv4.Exploitation]#
57
+ #[CVSSv4.SecurityRequirements]#
58
+
59
+ #[CVSSv4.BaseExploitableAttackVector]#
60
+ #[CVSSv4.BaseExploitableAttackComplexity]#
61
+ #[CVSSv4.BaseExploitableAttackRequirements]#
62
+ #[CVSSv4.BaseExploitablePrivilegesRequired]#
63
+ #[CVSSv4.BaseExploitableUserInteraction]#
64
+ #[CVSSv4.BaseVulnerableConfidentiality]#
65
+ #[CVSSv4.BaseVulnerableIntegrity]#
66
+ #[CVSSv4.BaseVulnerableAvailability]#
67
+ #[CVSSv4.BaseSubsequentConfidentiality]#
68
+ #[CVSSv4.BaseSubsequentIntegrity]#
69
+ #[CVSSv4.BaseSubsequentAvailability]#
70
+
71
+ #[CVSSv4.SupplementalSafety]#
72
+ #[CVSSv4.SupplementalAutomatable]#
73
+ #[CVSSv4.SupplementalRecovery]#
74
+ #[CVSSv4.SupplementalValueDensity]#
75
+ #[CVSSv4.SupplementalVulnerabilityResponseEffort]#
76
+ #[CVSSv4.SupplementalProviderUrgency]#
77
+
78
+ #[CVSSv4.EnvironmentalExploitabilityAttackVector]#
79
+ #[CVSSv4.EnvironmentalExploitabilityAttackComplexity]#
80
+ #[CVSSv4.EnvironmentalExploitabilityAttackRequirements]#
81
+ #[CVSSv4.EnvironmentalExploitabilityPrivilegesRequired]#
82
+ #[CVSSv4.EnvironmentalExploitabilityUserInteraction]#
83
+ #[CVSSv4.EnvironmentalVulnerableConfidentiality]#
84
+ #[CVSSv4.EnvironmentalVulnerableIntegrity]#
85
+ #[CVSSv4.EnvironmentalVulnerableAvailability]#
86
+ #[CVSSv4.EnvironmentalSubsequentConfidentiality]#
87
+ #[CVSSv4.EnvironmentalSubsequentIntegrity]#
88
+ #[CVSSv4.EnvironmentalSubsequentAvailability]#
89
+ #[CVSSv4.EnvironmentalConfidentialityRequirements]#
90
+ #[CVSSv4.EnvironmentalIntegrityRequirements]#
91
+ #[CVSSv4.EnvironmentalAvailabilityRequirements]#
92
+
93
+ #[CVSSv4.ThreatExploitMaturity]#
94
+ </textarea>
95
+ </div>
96
+ </div>
97
+
98
+ <div class="form-actions">
99
+ <%= f.button :submit, nil, class: 'btn btn-primary' %> or
100
+ <%= link_to 'Cancel', main_app.project_issue_path(current_project, @issue), class: 'cancel-link' %>
101
+ </div>
102
+ <% end %>
103
+ </div>
@@ -7,100 +7,10 @@
7
7
  <div class="content-container">
8
8
  <h4 class="header-underline d-flex justify-content-between">
9
9
  <span>Edit CVSS Risk Scoring</span>
10
- <%= render 'dradis/plugins/calculators/cvss/version_switch' %>
10
+ <%= render 'dradis/plugins/calculators/cvss/version_menu' %>
11
11
  </h4>
12
12
  <div id="issues_editor">
13
- <div class="inner note-text-inner">
14
-
15
- <%= simple_form_for [:cvss, current_project, @issue] do |f| %>
16
-
17
- <div class="alert alert-error" data-behavior="cvss-error">
18
- <p><strong>Warning</strong>: all Base metrics are required</p>
19
- </div>
20
-
21
- <ul class="nav nav-pills w-100" id="cvss-tabs">
22
- <li class="nav-item">
23
- <a href="#cvss-edit-base" data-bs-toggle="pill" class="nav-link active">Base: <span id="base-score">0</span></a>
24
- </li>
25
- <li class="nav-item">
26
- <a href="#cvss-edit-temporal" data-bs-toggle="pill" class="nav-link">Temporal: <span id="temporal-score">0</span></a>
27
- </li>
28
- <li class="nav-item">
29
- <a href="#cvss-edit-environmental" data-bs-toggle="pill" class="nav-link">Environmental: <span id="environmental-score">0</span></a>
30
- </li>
31
- <li class="nav-item pull-right">
32
- <a href="#cvss-edit-result" data-bs-toggle="pill" class="nav-link">Result</a>
33
- </li>
34
- </ul>
35
-
36
- <div class="tab-content mt-4">
37
- <div class="tab-pane active" id="cvss-edit-base">
38
- <%= render 'dradis/plugins/calculators/cvss/base/base' %>
39
- </div>
40
- <div class="tab-pane" id="cvss-edit-temporal">
41
- <%= render 'dradis/plugins/calculators/cvss/base/temporal' %>
42
- </div>
43
- <div class="tab-pane" id="cvss-edit-environmental">
44
- <%= render 'dradis/plugins/calculators/cvss/base/environmental' %>
45
- </div>
46
-
47
- <div class="tab-pane" id="cvss-edit-result">
48
- <textarea class="form-control" name="cvss_fields" rows="10" style="width:95%">#[CVSSv3.Vector]#
49
- N/A
50
-
51
- #[CVSSv3.BaseScore]#
52
- N/A
53
-
54
- #[CVSSv3.BaseSeverity]#
55
- N/A
56
-
57
- #[CVSSv3.TemporalScore]#
58
- N/A
59
-
60
- #[CVSSv3.TemporalSeverity]#
61
- N/A
62
-
63
- #[CVSSv3.EnvironmentalScore]#
64
- N/A
65
-
66
- #[CVSSv3.EnvironmentalSeverity]#
67
- N/A
68
-
69
- #[CVSSv3.BaseAttackVector]#
70
- #[CVSSv3.BaseAttackComplexity]#
71
- #[CVSSv3.BasePrivilegesRequired]#
72
- #[CVSSv3.BaseUserInteraction]#
73
- #[CVSSv3.BaseScope]#
74
- #[CVSSv3.BaseConfidentiality]#
75
- #[CVSSv3.BaseIntegrity]#
76
- #[CVSSv3.BaseAvailability]#
77
-
78
- #[CVSSv3.TemporalExploitCodeMaturity]#
79
- #[CVSSv3.TemporalRemediationLevel]#
80
- #[CVSSv3.TemporalReportConfidence]#
81
-
82
- #[CVSSv3.EnvironmentalConfidentialityRequirement]#
83
- #[CVSSv3.EnvironmentalIntegrityRequirement]#
84
- #[CVSSv3.EnvironmentalAvailabilityRequirement]#
85
-
86
- #[CVSSv3.ModifiedAttackVector]#
87
- #[CVSSv3.ModifiedAttackComplexity]#
88
- #[CVSSv3.ModifiedPrivilegesRequired]#
89
- #[CVSSv3.ModifiedUserInteraction]#
90
- #[CVSSv3.ModifiedScope]#
91
- #[CVSSv3.ModifiedConfidentiality]#
92
- #[CVSSv3.ModifiedIntegrity]#
93
- #[CVSSv3.ModifiedAvailability]#
94
-
95
- </textarea>
96
- </div>
97
- </div>
98
-
99
- <div class="form-actions">
100
- <%= f.button :submit, nil, class: 'btn btn-primary' %> or
101
- <%= link_to 'Cancel', main_app.project_issue_path(current_project, @issue), class: 'cancel-link' %>
102
- </div>
103
- <% end %>
104
- </div>
13
+ <%= render 'dradis/plugins/calculators/cvss/issues/edit/v3' %>
14
+ <%= render 'dradis/plugins/calculators/cvss/issues/edit/v4' %>
105
15
  </div>
106
16
  </div>
@@ -9,7 +9,7 @@ module Dradis
9
9
 
10
10
  module VERSION
11
11
  MAJOR = 4
12
- MINOR = 11
12
+ MINOR = 12
13
13
  TINY = 0
14
14
  PRE = nil
15
15
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dradis-calculator_cvss
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.11.0
4
+ version: 4.12.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Martin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-01-17 00:00:00.000000000 Z
11
+ date: 2024-05-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dradis-plugins
@@ -68,28 +68,45 @@ files:
68
68
  - LICENSE
69
69
  - README.md
70
70
  - Rakefile
71
- - app/assets/javascripts/dradis/plugins/calculators/cvss/calculator.js.coffee
71
+ - app/assets/javascripts/dradis/plugins/calculators/cvss/cvss.js
72
72
  - app/assets/javascripts/dradis/plugins/calculators/cvss/manifests/application.js
73
73
  - app/assets/javascripts/dradis/plugins/calculators/cvss/manifests/tylium.js
74
- - app/assets/javascripts/dradis/plugins/calculators/cvss/vendor/cvsscalc30.js
75
- - app/assets/javascripts/dradis/plugins/calculators/cvss/vendor/cvsscalc30_helptext.js
76
- - app/assets/javascripts/dradis/plugins/calculators/cvss/vendor/cvsscalc31.js
77
- - app/assets/javascripts/dradis/plugins/calculators/cvss/vendor/cvsscalc31_helptext.js
78
- - app/assets/stylesheets/dradis/plugins/calculators/cvss/_version_switch.scss
74
+ - app/assets/javascripts/dradis/plugins/calculators/cvss/v3/calculator.js.coffee
75
+ - app/assets/javascripts/dradis/plugins/calculators/cvss/v3/vendor/cvsscalc30.js
76
+ - app/assets/javascripts/dradis/plugins/calculators/cvss/v3/vendor/cvsscalc30_helptext.js
77
+ - app/assets/javascripts/dradis/plugins/calculators/cvss/v3/vendor/cvsscalc31.js
78
+ - app/assets/javascripts/dradis/plugins/calculators/cvss/v3/vendor/cvsscalc31_helptext.js
79
+ - app/assets/javascripts/dradis/plugins/calculators/cvss/v4/calculator.js
80
+ - app/assets/javascripts/dradis/plugins/calculators/cvss/v4/vendor/app.js
81
+ - app/assets/javascripts/dradis/plugins/calculators/cvss/v4/vendor/cvss_config.js
82
+ - app/assets/javascripts/dradis/plugins/calculators/cvss/v4/vendor/cvss_details.js
83
+ - app/assets/javascripts/dradis/plugins/calculators/cvss/v4/vendor/cvss_lookup.js
84
+ - app/assets/javascripts/dradis/plugins/calculators/cvss/v4/vendor/max_composed.js
85
+ - app/assets/javascripts/dradis/plugins/calculators/cvss/v4/vendor/max_severity.js
86
+ - app/assets/javascripts/dradis/plugins/calculators/cvss/v4/vendor/metrics.js
79
87
  - app/assets/stylesheets/dradis/plugins/calculators/cvss/manifests/application.css.scss
80
88
  - app/assets/stylesheets/dradis/plugins/calculators/cvss/manifests/tylium.scss
81
89
  - app/controllers/dradis/plugins/calculators/cvss/base_controller.rb
82
90
  - app/controllers/dradis/plugins/calculators/cvss/issues_controller.rb
83
91
  - app/models/dradis/plugins/calculators/cvss/v3.rb
92
+ - app/models/dradis/plugins/calculators/cvss/v4.rb
84
93
  - app/views/dradis/plugins/calculators/cvss/_tools_menu.html.erb
85
- - app/views/dradis/plugins/calculators/cvss/_version_switch.html.erb
86
- - app/views/dradis/plugins/calculators/cvss/base/_base.html.erb
87
- - app/views/dradis/plugins/calculators/cvss/base/_environmental.html.erb
88
- - app/views/dradis/plugins/calculators/cvss/base/_temporal.html.erb
94
+ - app/views/dradis/plugins/calculators/cvss/_version_menu.html.erb
89
95
  - app/views/dradis/plugins/calculators/cvss/base/index.html.erb
96
+ - app/views/dradis/plugins/calculators/cvss/base/v3/_base.html.erb
97
+ - app/views/dradis/plugins/calculators/cvss/base/v3/_environmental.html.erb
98
+ - app/views/dradis/plugins/calculators/cvss/base/v3/_index.html.erb
99
+ - app/views/dradis/plugins/calculators/cvss/base/v3/_temporal.html.erb
100
+ - app/views/dradis/plugins/calculators/cvss/base/v4/_base.html.erb
101
+ - app/views/dradis/plugins/calculators/cvss/base/v4/_environmental.html.erb
102
+ - app/views/dradis/plugins/calculators/cvss/base/v4/_index.html.erb
103
+ - app/views/dradis/plugins/calculators/cvss/base/v4/_supplemental.html.erb
104
+ - app/views/dradis/plugins/calculators/cvss/base/v4/_threat.html.erb
90
105
  - app/views/dradis/plugins/calculators/cvss/issues/_show-content.html.erb
91
106
  - app/views/dradis/plugins/calculators/cvss/issues/_show-tabs.html.erb
92
107
  - app/views/dradis/plugins/calculators/cvss/issues/edit.html.erb
108
+ - app/views/dradis/plugins/calculators/cvss/issues/edit/_v3.html.erb
109
+ - app/views/dradis/plugins/calculators/cvss/issues/edit/_v4.html.erb
93
110
  - app/views/layouts/dradis/plugins/calculators/cvss/base.html.erb
94
111
  - config/routes.rb
95
112
  - dradis-calculator_cvss.gemspec
@@ -116,7 +133,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
116
133
  - !ruby/object:Gem::Version
117
134
  version: '0'
118
135
  requirements: []
119
- rubygems_version: 3.3.7
136
+ rubygems_version: 3.5.6
120
137
  signing_key:
121
138
  specification_version: 4
122
139
  summary: This plugin adds a CVSS score calculator to Dradis.
@@ -1,26 +0,0 @@
1
- .form-switch.cvss {
2
- display: inline-flex;
3
- font-size: 1rem;
4
- white-space: nowrap;
5
-
6
- .form-check-input,
7
- .form-check-input:focus {
8
- background-color: $primaryColor;
9
- background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e");
10
- transform: translateX(1.5rem);
11
- }
12
-
13
- .form-check-label {
14
- font-size: 1rem;
15
- text-transform: lowercase;
16
-
17
- span {
18
- line-height: normal;
19
-
20
- &:first-of-type {
21
- display: inline-block;
22
- transform: translateX(-2.5rem);
23
- }
24
- }
25
- }
26
- }
@@ -1,10 +0,0 @@
1
- <div class="form-check form-switch cvss">
2
- <input
3
- class="form-check-input"
4
- data-behavior="cvss-version-toggle"
5
- id="cvss-version-toggle"
6
- type="checkbox"
7
- <%= 'checked' if @issue && @issue.fields['CVSSv3.Vector'] && @issue.fields['CVSSv3.Vector'].include?('CVSS:3.0') %>
8
- >
9
- <label class="form-check-label" for="cvss-version-toggle"><span>v3.1</span><span>v3.0</span></label>
10
- </div>
@@ -1,123 +0,0 @@
1
- <section data-behavior="cvss-buttons">
2
- <div class="row">
3
-
4
- <div class="col-6">
5
- <div class="inner">
6
- <h5 class="header-underline mt-0" data-cvss="AV_Heading">Attack Vector (AV)</h5>
7
-
8
- <%= hidden_field_tag :av, @cvss_vector['AV'] %>
9
-
10
- <div class="btn-group mb-4 text-nowrap">
11
- <button type="button" class="btn <%= 'active btn-primary' if @cvss_vector['AV'] == 'N' %>" name="av" value="N" data-label="Network" data-cvss="AV_N_Label">Net. <i class="fa-regular fa-question-circle" aria-hidden="true"></i></button>
12
-
13
- <button type="button" class="btn <%= 'active btn-primary' if @cvss_vector['AV'] == 'A' %>" name="av" value="A" data-label="Adjacent" data-cvss="AV_A_Label">Adjacent <i class="fa-regular fa-question-circle" aria-hidden="true"></i></button>
14
-
15
- <button type="button" class="btn <%= 'active btn-primary' if @cvss_vector['AV'] == 'L' %>" name="av" value="L" data-label="Local" data-cvss="AV_L_Label">Local <i class="fa-regular fa-question-circle" aria-hidden="true"></i></button>
16
-
17
- <button type="button" class="btn <%= 'active btn-primary' if @cvss_vector['AV'] == 'P' %>" name="av" value="P" data-label="Physical" data-cvss="AV_P_Label">Physical <i class="fa-regular fa-question-circle" aria-hidden="true"></i></button>
18
- </div>
19
- </div>
20
-
21
- <div class="inner">
22
- <h5 class="header-underline mt-0" data-cvss="AC_Heading">Attack Complexity (AC)</h5>
23
-
24
- <%= hidden_field_tag :ac, @cvss_vector['AC'] %>
25
-
26
- <div class="btn-group mb-4">
27
- <button type="button" class="btn <%= 'active btn-primary' if @cvss_vector['AC'] == 'L' %>" name="ac" value="L" data-label="Low" data-cvss="AC_L_Label">Low <i class="fa-regular fa-question-circle" aria-hidden="true"></i></button>
28
-
29
- <button type="button" class="btn <%= 'active btn-primary' if @cvss_vector['AC'] == 'H' %>" name="ac" value="H" data-label="High" data-cvss="AC_H_Label">High <i class="fa-regular fa-question-circle" aria-hidden="true"></i></button>
30
- </div>
31
- </div>
32
-
33
- <div class="inner">
34
- <h5 class="header-underline mt-0" data-cvss="PR_Heading">Privileges Required (PR)</h5>
35
-
36
- <%= hidden_field_tag :pr, @cvss_vector['PR'] %>
37
-
38
- <div class="btn-group mb-4">
39
- <button type="button" class="btn <%= 'active btn-primary' if @cvss_vector['PR'] == 'N' %>" name="pr" value="N" data-label="None" data-cvss="PR_N_Label">None <i class="fa-regular fa-question-circle" aria-hidden="true"></i></button>
40
-
41
- <button type="button" class="btn <%= 'active btn-primary' if @cvss_vector['PR'] == 'L' %>" name="pr" value="L" data-label="Low" data-cvss="PR_L_Label">Low <i class="fa-regular fa-question-circle" aria-hidden="true"></i></button>
42
-
43
- <button type="button" class="btn <%= 'active btn-primary' if @cvss_vector['PR'] == 'H' %>" name="pr" value="H" data-label="High" data-cvss="PR_H_Label">High <i class="fa-regular fa-question-circle" aria-hidden="true"></i></button>
44
- </div>
45
- </div>
46
-
47
- <div class="inner">
48
- <h5 class="header-underline mt-0" data-cvss="UI_Heading">User Interaction (UI)</h5>
49
-
50
- <%= hidden_field_tag :ui, @cvss_vector['UI'] %>
51
-
52
- <div class="btn-group mb-4">
53
- <button type="button" class="btn <%= 'active btn-primary' if @cvss_vector['UI'] == 'N' %>" name="ui" value="N" data-label="None" data-cvss="UI_N_Label">None <i class="fa-regular fa-question-circle" aria-hidden="true"></i></button>
54
- <button type="button" class="btn <%= 'active btn-primary' if @cvss_vector['UI'] == 'R' %>" name="ui" value="R" data-label="Required" data-cvss="UI_R_Label">Required <i class="fa-regular fa-question-circle" aria-hidden="true"></i></button>
55
- </div>
56
- </div>
57
- </div>
58
-
59
- <div class="col-6">
60
- <div class="inner">
61
- <h5 class="header-underline mt-0" data-cvss="S_Heading">Scope (S)</h5>
62
-
63
- <%= hidden_field_tag :s, @cvss_vector['S'] %>
64
-
65
- <div class="btn-group mb-4">
66
- <button type="button" class="btn <%= 'active btn-primary' if @cvss_vector['S'] == 'U' %>" name="s" value="U" data-label="Unchanged" data-cvss="S_U_Label">Unchanged <i class="fa-regular fa-question-circle" aria-hidden="true"></i></button>
67
-
68
- <button type="button" class="btn <%= 'active btn-primary' if @cvss_vector['S'] == 'C' %>" name="s" value="C" data-label="Changed" data-cvss="S_C_Label">Changed <i class="fa-regular fa-question-circle" aria-hidden="true"></i></button>
69
- </div>
70
- </div>
71
-
72
- <div class="inner">
73
- <h5 class="header-underline mt-0" data-cvss="C_Heading">Confidentiality (C)</h5>
74
-
75
- <%= hidden_field_tag :c, @cvss_vector['C'] %>
76
-
77
- <div class="btn-group mb-4">
78
- <button type="button" class="btn <%= 'active btn-primary' if @cvss_vector['C'] == 'N' %>" name="c" value="N" data-label="None" data-cvss="C_N_Label">None <i class="fa-regular fa-question-circle" aria-hidden="true"></i></button>
79
-
80
- <button type="button" class="btn <%= 'active btn-primary' if @cvss_vector['C'] == 'L' %>" name="c" value="L" data-label="Low" data-cvss="C_L_Label">Low <i class="fa-regular fa-question-circle" aria-hidden="true"></i></button>
81
-
82
- <button type="button" class="btn <%= 'active btn-primary' if @cvss_vector['C'] == 'H' %>" name="c" value="H" data-label="High" data-cvss="C_H_Label">High <i class="fa-regular fa-question-circle" aria-hidden="true"></i></button>
83
- </div>
84
- </div>
85
-
86
- <div class="inner">
87
- <h5 class="header-underline mt-0" data-cvss="I_Heading">Integrity (I)</h5>
88
-
89
- <%= hidden_field_tag :i, @cvss_vector['I'] %>
90
-
91
- <div class="btn-group mb-4">
92
- <button type="button" class="btn <%= 'active btn-primary' if @cvss_vector['I'] == 'N' %>" name="i" value="N" data-label="None" data-cvss="I_N_Label">None <i class="fa-regular fa-question-circle" aria-hidden="true"></i></button>
93
-
94
- <button type="button" class="btn <%= 'active btn-primary' if @cvss_vector['I'] == 'L' %>" name="i" value="L" data-label="Low" data-cvss="I_L_Label">Low <i class="fa-regular fa-question-circle" aria-hidden="true"></i></button>
95
-
96
- <button type="button" class="btn <%= 'active btn-primary' if @cvss_vector['I'] == 'H' %>" name="i" value="H" data-label="High" data-cvss="I_H_Label">High <i class="fa-regular fa-question-circle" aria-hidden="true"></i></button>
97
- </div>
98
- </div>
99
-
100
- <div class="inner">
101
- <h5 class="header-underline mt-0" data-cvss="A_Heading">Availability (A)</h5>
102
-
103
- <%= hidden_field_tag :a, @cvss_vector['A'] %>
104
-
105
- <div class="btn-group mb-4">
106
- <button type="button" class="btn <%= 'active btn-primary' if @cvss_vector['A'] == 'N' %>" name="a" value="N" data-label="None" data-cvss="A_N_Label">None <i class="fa-regular fa-question-circle" aria-hidden="true"></i></button>
107
-
108
- <button type="button" class="btn <%= 'active btn-primary' if @cvss_vector['A'] == 'L' %>" name="a" value="L" data-label="Low" data-cvss="A_L_Label">Low <i class="fa-regular fa-question-circle" aria-hidden="true"></i></button>
109
-
110
- <button type="button" class="btn <%= 'active btn-primary' if @cvss_vector['A'] == 'H' %>" name="a" value="H" data-label="High" data-cvss="A_H_Label">High <i class="fa-regular fa-question-circle" aria-hidden="true"></i></button>
111
- </div>
112
- </div>
113
- </div>
114
-
115
- </div>
116
-
117
- <p>
118
- The Base Metric group represents the intrinsic characteristics of a
119
- vulnerability that are constant over time and across user environments.
120
- Determine the vulnerable component and score Attack Vector, Attack
121
- Complexity, Privileges Required and User Interaction relative to this.
122
- </p>
123
- </section>