|
23 | 23 | let(:invalid_cvss2) { CvssSuite.new('AV:N/AC:P/C:P/AV:U/RL:OF/RC:C') } |
24 | 24 | let(:invalid_cvss2_parenthesis_closed) { CvssSuite.new('(AV:N/AC:L/Au:N/C:P/I:P/A:P') } |
25 | 25 | let(:invalid_cvss2_parenthesis) { CvssSuite.new('(AV:N/AC:L/Au:N()/C:P/I:P/A:P') } |
| 26 | + let(:invalid_cvss2_missing_metric) { CvssSuite.new('AV:N/Au:N/C:P/I:P/A:P/E:U/RL:OF/RC:C') } |
| 27 | + let(:invalid_cvss2_multiple_metrics) { CvssSuite.new('AV:N/AV:N/AC:L/Au:N/C:P/I:P/A:P/E:U/RL:OF/RC:C') } |
| 28 | + let(:invalid_cvss2_additional_fields) do |
| 29 | + CvssSuite.new('AV:N/AC:L/Au:N/C:P/I:P/A:P/E:U/RL:OF/RC:C/Extra/') |
| 30 | + end |
| 31 | + let(:invalid_cvss2_additional_fields_missing_temporal) do |
| 32 | + CvssSuite.new('AV:N/AC:L/Au:N/C:P/I:P/A:P/RL:OF/RC:C/Extra/') |
| 33 | + end |
| 34 | + let(:invalid_cvss2_extra_slash) { CvssSuite.new('AV:N//AC:L/Au:N/C:P/I:P/A:P/E:U/RL:OF/RC:C') } |
| 35 | + let(:invalid_cvss2_wrong_value) { CvssSuite.new('AV:N/AC:L/Au:N/C:P/I:P/A:P/E:R/RL:OF/RC:C') } |
26 | 36 |
|
27 | 37 | describe 'valid cvss2' do |
28 | 38 | subject { valid_cvss2 } |
|
90 | 100 | it_behaves_like 'a invalid cvss vector with version', 2 |
91 | 101 | end |
92 | 102 |
|
| 103 | + describe 'invalid cvss2 with missing base metric' do |
| 104 | + subject { invalid_cvss2_missing_metric } |
| 105 | + |
| 106 | + it_behaves_like 'a invalid cvss vector with version', 2 |
| 107 | + end |
| 108 | + |
| 109 | + describe 'invalid cvss2 with multiple base metrics' do |
| 110 | + subject { invalid_cvss2_multiple_metrics } |
| 111 | + |
| 112 | + it_behaves_like 'a invalid cvss vector with version', 2 |
| 113 | + end |
| 114 | + |
| 115 | + describe 'invalid cvss2 with additional fields' do |
| 116 | + subject { invalid_cvss2_additional_fields } |
| 117 | + |
| 118 | + it_behaves_like 'a invalid cvss vector with version', 2 |
| 119 | + end |
| 120 | + |
| 121 | + describe 'invalid cvss2 with additional fields missing temporal' do |
| 122 | + subject { invalid_cvss2_additional_fields_missing_temporal } |
| 123 | + |
| 124 | + it_behaves_like 'a invalid cvss vector with version', 2 |
| 125 | + end |
| 126 | + |
| 127 | + describe 'invalid cvss2 with extra slash' do |
| 128 | + subject { invalid_cvss2_extra_slash } |
| 129 | + |
| 130 | + it_behaves_like 'a invalid cvss vector with version', 2 |
| 131 | + end |
| 132 | + |
| 133 | + describe 'invalid cvss2 with wrong value for Exploit Code Maturity (E)' do |
| 134 | + subject { invalid_cvss2_wrong_value } |
| 135 | + |
| 136 | + it_behaves_like 'a invalid cvss vector with version', 2 |
| 137 | + end |
| 138 | + |
93 | 139 | # Severity tests https://nvd.nist.gov/vuln-metrics/cvss |
94 | 140 | # v2 Severity High: 7.0 - 10.0 |
95 | 141 | describe 'valid cvss2_severity_high' do |
|
0 commit comments