Skip to content

Commit bf17aa4

Browse files
authored
Merge pull request #899 from TG1999/ref_url_mandatory
Make URLs mandatory for references #891
2 parents 56c952f + 6a142cb commit bf17aa4

File tree

10 files changed

+1217
-1178
lines changed

10 files changed

+1217
-1178
lines changed

vulnerabilities/importer.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,8 @@ class Reference:
7171
severities: List[VulnerabilitySeverity] = dataclasses.field(default_factory=list)
7272

7373
def __post_init__(self):
74-
if not any([self.url, self.reference_id]):
75-
raise TypeError
74+
if not self.url:
75+
raise TypeError("Reference must have a url")
7676

7777
def normalized(self):
7878
severities = sorted(self.severities)

vulnerabilities/importers/openssl.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,9 @@ def to_advisory_data(xml_issue) -> AdvisoryData:
8888
cve = f"CVE-{cve}"
8989
madeup_alias = f"{madeup_alias}-{cve}"
9090
aliases.append(cve)
91-
references.append(Reference(reference_id=cve))
91+
references.append(
92+
Reference(reference_id=cve, url=f"https://nvd.nist.gov/vuln/detail/{cve}")
93+
)
9294
aliases.append(madeup_alias)
9395

9496
elif info.tag == "affects":
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# Generated by Django 4.0.4 on 2022-09-05 12:48
2+
3+
from django.db import migrations
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
dependencies = [
9+
('vulnerabilities', '0019_alter_vulnerabilityreference_options'),
10+
]
11+
12+
def delete_reference_with_empty_urls(apps, _):
13+
"""
14+
Delete all references with empty URLs.
15+
"""
16+
Reference = apps.get_model("vulnerabilities", "VulnerabilityReference")
17+
Reference.objects.filter(url="").delete()
18+
19+
operations = [
20+
migrations.RunPython(delete_reference_with_empty_urls, migrations.RunPython.noop),
21+
]
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Generated by Django 4.0.4 on 2022-09-05 13:02
2+
3+
from django.db import migrations, models
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
dependencies = [
9+
('vulnerabilities', '0020_auto_20220905_1248'),
10+
]
11+
12+
operations = [
13+
migrations.AlterField(
14+
model_name='vulnerabilityreference',
15+
name='url',
16+
field=models.URLField(help_text='URL to the vulnerability reference', max_length=1024),
17+
),
18+
]

vulnerabilities/models.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -106,9 +106,7 @@ class VulnerabilityReference(models.Model):
106106
through="VulnerabilityRelatedReference",
107107
)
108108

109-
url = models.URLField(
110-
max_length=1024, help_text="URL to the vulnerability reference", blank=True
111-
)
109+
url = models.URLField(max_length=1024, help_text="URL to the vulnerability reference")
112110
reference_id = models.CharField(
113111
max_length=200,
114112
help_text="An optional reference ID, such as DSA-4465-1 when available",

vulnerabilities/tests/test_data/openssl/improver/improver-advisories.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
"references": [
4747
{
4848
"reference_id": "CVE-2022-0778",
49-
"url": "",
49+
"url": "https://nvd.nist.gov/vuln/detail/CVE-2022-0778",
5050
"severities": []
5151
},
5252
{
@@ -124,7 +124,7 @@
124124
"references": [
125125
{
126126
"reference_id": "CVE-2021-4160",
127-
"url": "",
127+
"url": "https://nvd.nist.gov/vuln/detail/CVE-2021-4160",
128128
"severities": []
129129
},
130130
{
@@ -178,7 +178,7 @@
178178
"references": [
179179
{
180180
"reference_id": "CVE-2021-4044",
181-
"url": "",
181+
"url": "https://nvd.nist.gov/vuln/detail/CVE-2021-4044",
182182
"severities": []
183183
},
184184
{
@@ -234,7 +234,7 @@
234234
"references": [
235235
{
236236
"reference_id": "CVE-2020-1971",
237-
"url": "",
237+
"url": "https://nvd.nist.gov/vuln/detail/CVE-2020-1971",
238238
"severities": []
239239
},
240240
{

vulnerabilities/tests/test_data/openssl/improver/improver-inferences-expected.json

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
"references": [
3737
{
3838
"reference_id": "CVE-2022-0778",
39-
"url": "",
39+
"url": "https://nvd.nist.gov/vuln/detail/CVE-2022-0778",
4040
"severities": []
4141
},
4242
{
@@ -199,7 +199,7 @@
199199
"references": [
200200
{
201201
"reference_id": "CVE-2022-0778",
202-
"url": "",
202+
"url": "https://nvd.nist.gov/vuln/detail/CVE-2022-0778",
203203
"severities": []
204204
},
205205
{
@@ -482,7 +482,7 @@
482482
"references": [
483483
{
484484
"reference_id": "CVE-2022-0778",
485-
"url": "",
485+
"url": "https://nvd.nist.gov/vuln/detail/CVE-2022-0778",
486486
"severities": []
487487
},
488488
{
@@ -541,7 +541,7 @@
541541
"references": [
542542
{
543543
"reference_id": "CVE-2021-4160",
544-
"url": "",
544+
"url": "https://nvd.nist.gov/vuln/detail/CVE-2021-4160",
545545
"severities": []
546546
},
547547
{
@@ -696,7 +696,7 @@
696696
"references": [
697697
{
698698
"reference_id": "CVE-2021-4160",
699-
"url": "",
699+
"url": "https://nvd.nist.gov/vuln/detail/CVE-2021-4160",
700700
"severities": []
701701
},
702702
{
@@ -971,7 +971,7 @@
971971
"references": [
972972
{
973973
"reference_id": "CVE-2021-4160",
974-
"url": "",
974+
"url": "https://nvd.nist.gov/vuln/detail/CVE-2021-4160",
975975
"severities": []
976976
},
977977
{
@@ -1030,7 +1030,7 @@
10301030
"references": [
10311031
{
10321032
"reference_id": "CVE-2021-4044",
1033-
"url": "",
1033+
"url": "https://nvd.nist.gov/vuln/detail/CVE-2021-4044",
10341034
"severities": []
10351035
},
10361036
{
@@ -1143,7 +1143,7 @@
11431143
"references": [
11441144
{
11451145
"reference_id": "CVE-2020-1971",
1146-
"url": "",
1146+
"url": "https://nvd.nist.gov/vuln/detail/CVE-2020-1971",
11471147
"severities": []
11481148
},
11491149
{
@@ -1381,7 +1381,7 @@
13811381
"references": [
13821382
{
13831383
"reference_id": "CVE-2020-1971",
1384-
"url": "",
1384+
"url": "https://nvd.nist.gov/vuln/detail/CVE-2020-1971",
13851385
"severities": []
13861386
},
13871387
{

0 commit comments

Comments
 (0)