1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.owasp.dependencycheck.dependency;
19
20 import java.io.Serializable;
21
22
23
24
25
26
27 public class CvssV2 implements Serializable {
28
29
30
31
32 private static final long serialVersionUID = -2203955879356702367L;
33
34
35
36
37 private final float score;
38
39
40
41 private final String accessVector;
42
43
44
45 private final String accessComplexity;
46
47
48
49 private final String authentication;
50
51
52
53 private final String confidentialityImpact;
54
55
56
57 private final String integrityImpact;
58
59
60
61 private final String availabilityImpact;
62
63
64
65 private final String version;
66
67
68
69
70 private final String severity;
71
72
73
74 private final Float exploitabilityScore;
75
76
77
78 private final Float impactScore;
79
80
81
82 private final Boolean acInsufInfo;
83
84
85
86 private final Boolean obtainAllPrivilege;
87
88
89
90 private final Boolean obtainUserPrivilege;
91
92
93
94 private final Boolean obtainOtherPrivilege;
95
96
97
98 private final Boolean userInteractionRequired;
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113 public CvssV2(float score, String accessVector, String accessComplexity, String authentication,
114 String confidentialityImpact, String integrityImpact, String availabilityImpact, String severity) {
115 this(score, accessVector, accessComplexity, authentication, confidentialityImpact,
116 integrityImpact, availabilityImpact, severity, null, null, null, null, null, null, null, null);
117 }
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140 public CvssV2(float score, String accessVector, String accessComplexity, String authentication,
141 String confidentialityImpact, String integrityImpact, String availabilityImpact, String severity,
142 Float exploitabilityScore, Float impactScore, Boolean acInsufInfo, Boolean obtainAllPrivilege,
143 Boolean obtainUserPrivilege, Boolean obtainOtherPrivilege, Boolean userInteractionRequired, String version) {
144 this.score = score;
145 this.accessVector = accessVector;
146 this.accessComplexity = accessComplexity;
147 this.authentication = authentication;
148 this.confidentialityImpact = confidentialityImpact;
149 this.integrityImpact = integrityImpact;
150 this.availabilityImpact = availabilityImpact;
151
152 this.severity = severity;
153 this.exploitabilityScore = exploitabilityScore;
154 this.impactScore = impactScore;
155 this.acInsufInfo = acInsufInfo;
156 this.obtainAllPrivilege = obtainAllPrivilege;
157 this.obtainUserPrivilege = obtainUserPrivilege;
158 this.obtainOtherPrivilege = obtainOtherPrivilege;
159 this.userInteractionRequired = userInteractionRequired;
160 this.version = version;
161 }
162
163
164
165
166
167
168
169 public float getScore() {
170 return score;
171 }
172
173
174
175
176
177
178 public String getAccessVector() {
179 return accessVector;
180 }
181
182
183
184
185
186
187 public String getAccessComplexity() {
188 return accessComplexity;
189 }
190
191
192
193
194
195
196 public String getAuthentication() {
197 return authentication;
198 }
199
200
201
202
203
204
205 public String getConfidentialityImpact() {
206 return confidentialityImpact;
207 }
208
209
210
211
212
213
214 public String getIntegrityImpact() {
215 return integrityImpact;
216 }
217
218
219
220
221
222
223 public String getAvailabilityImpact() {
224 return availabilityImpact;
225 }
226
227
228
229
230
231
232 public String getVersion() {
233 return version;
234 }
235
236
237
238
239
240
241 public String getSeverity() {
242 return severity;
243 }
244
245
246
247
248
249
250 public Float getExploitabilityScore() {
251 return exploitabilityScore;
252 }
253
254
255
256
257
258
259 public Float getImpactScore() {
260 return impactScore;
261 }
262
263
264
265
266
267
268 public Boolean isAcInsufInfo() {
269 return acInsufInfo;
270 }
271
272
273
274
275
276
277 public Boolean isObtainAllPrivilege() {
278 return obtainAllPrivilege;
279 }
280
281
282
283
284
285
286 public Boolean isObtainUserPrivilege() {
287 return obtainUserPrivilege;
288 }
289
290
291
292
293
294
295 public Boolean isObtainOtherPrivilege() {
296 return obtainOtherPrivilege;
297 }
298
299
300
301
302
303
304 public Boolean isUserInteractionRequired() {
305 return userInteractionRequired;
306 }
307
308 @Override
309 public String toString() {
310 return String.format("/AV:%s/AC:%s/Au:%s/C:%s/I:%s/A:%s",
311 accessVector == null ? "" : accessVector.substring(0, 1),
312 accessComplexity == null ? "" : accessComplexity.substring(0, 1),
313 authentication == null ? "" : authentication.substring(0, 1),
314 confidentialityImpact == null ? "" : confidentialityImpact.substring(0, 1),
315 integrityImpact == null ? "" : integrityImpact.substring(0, 1),
316 availabilityImpact == null ? "" : availabilityImpact.substring(0, 1));
317 }
318 }