Skip to content

Commit 96bd222

Browse files
authored
Merge pull request #1245 from TG1999/add_weakness_in_models_unique_constraints
Add weakness in unique content ID in advisories
2 parents c16824b + ef42bde commit 96bd222

File tree

4 files changed

+238
-234
lines changed

4 files changed

+238
-234
lines changed

vulnerabilities/import_runner.py

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -54,19 +54,23 @@ def process_advisories(advisory_datas: Iterable[AdvisoryData], importer_name: st
5454
for data in advisory_datas:
5555
# https://nvd.nist.gov/vuln/detail/CVE-2013-4314
5656
# https://github.com/cms-dev/cms/issues/888#issuecomment-516977572
57-
data.summary = data.summary.replace("\x00", "\uFFFD")
58-
obj, created = Advisory.objects.get_or_create(
59-
aliases=data.aliases,
60-
summary=data.summary,
61-
affected_packages=[pkg.to_dict() for pkg in data.affected_packages],
62-
references=[ref.to_dict() for ref in data.references],
63-
date_published=data.date_published,
64-
weaknesses=data.weaknesses,
65-
defaults={
66-
"created_by": importer_name,
67-
"date_collected": datetime.datetime.now(tz=datetime.timezone.utc),
68-
},
69-
)
57+
try:
58+
data.summary = data.summary.replace("\x00", "\uFFFD")
59+
obj, created = Advisory.objects.get_or_create(
60+
aliases=data.aliases,
61+
summary=data.summary,
62+
affected_packages=[pkg.to_dict() for pkg in data.affected_packages],
63+
references=[ref.to_dict() for ref in data.references],
64+
date_published=data.date_published,
65+
weaknesses=data.weaknesses,
66+
defaults={
67+
"created_by": importer_name,
68+
"date_collected": datetime.datetime.now(tz=datetime.timezone.utc),
69+
},
70+
)
71+
except Exception as e:
72+
logger.error(f"Error while processing {data!r} with aliases {data.aliases!r}: {e!r}")
73+
continue
7074
if created:
7175
logger.info(
7276
f"[*] New Advisory with aliases: {obj.aliases!r}, created_by: {obj.created_by}"

vulnerabilities/models.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -836,7 +836,7 @@ class Meta:
836836

837837
def save(self, *args, **kwargs):
838838
checksum = hashlib.md5()
839-
for field in (self.summary, self.affected_packages, self.references):
839+
for field in (self.summary, self.affected_packages, self.references, self.weaknesses):
840840
value = json.dumps(field, separators=(",", ":")).encode("utf-8")
841841
checksum.update(value)
842842
self.unique_content_id = checksum.hexdigest()

vulnerabilities/tests/test_data/nginx/security_advisories-importer-expected.json

Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[
22
{
3-
"unique_content_id": "9c968129f10b424807b830f0219b8d4c",
3+
"unique_content_id": "dabe133c6355b18f153a511f5829492c",
44
"aliases": [
55
"CORE-2010-0121"
66
],
@@ -40,7 +40,7 @@
4040
"weaknesses": []
4141
},
4242
{
43-
"unique_content_id": "b55c336a480792ece857368101645c0c",
43+
"unique_content_id": "c9dcd3bec014b1f9e351d9c7514e5f01",
4444
"aliases": [
4545
"CVE-2009-3896"
4646
],
@@ -116,7 +116,7 @@
116116
"weaknesses": []
117117
},
118118
{
119-
"unique_content_id": "5df3f01df0d85143bc51ddbb453c1581",
119+
"unique_content_id": "835e668ec8d9f005b4472e28421c2006",
120120
"aliases": [
121121
"CVE-2009-3898"
122122
],
@@ -158,7 +158,7 @@
158158
"weaknesses": []
159159
},
160160
{
161-
"unique_content_id": "480c77ca27341a47f11299017c7660b7",
161+
"unique_content_id": "a0007fe2ea8f6ddf29ea126d21f6956d",
162162
"aliases": [
163163
"CVE-2009-4487"
164164
],
@@ -188,7 +188,7 @@
188188
"weaknesses": []
189189
},
190190
{
191-
"unique_content_id": "20cecfba57d0a66b04e1b4b6fb4efb26",
191+
"unique_content_id": "a0928f78826f958a2432126b2a884e83",
192192
"aliases": [
193193
"CVE-2010-2263"
194194
],
@@ -234,7 +234,7 @@
234234
"weaknesses": []
235235
},
236236
{
237-
"unique_content_id": "646911f1d2f21611b0a3720f3523b3b2",
237+
"unique_content_id": "6717167491546825b89448925539ffba",
238238
"aliases": [
239239
"CVE-2010-2266"
240240
],
@@ -280,7 +280,7 @@
280280
"weaknesses": []
281281
},
282282
{
283-
"unique_content_id": "56a7ea32d809aa1a3181ab87eea4fe43",
283+
"unique_content_id": "73cb4dac8940113bcd2045ae82b8e2a8",
284284
"aliases": [
285285
"CVE-2011-4315"
286286
],
@@ -322,7 +322,7 @@
322322
"weaknesses": []
323323
},
324324
{
325-
"unique_content_id": "2bac8349cb492bcc4990b161b01dc414",
325+
"unique_content_id": "602ad465c0476fdbc1254919ae6021e2",
326326
"aliases": [
327327
"CVE-2011-4963"
328328
],
@@ -379,7 +379,7 @@
379379
"weaknesses": []
380380
},
381381
{
382-
"unique_content_id": "aff5af1bcc53f6fa1a49917e044acf79",
382+
"unique_content_id": "4d0d128ad68cd0640c62bfa2412269e0",
383383
"aliases": [
384384
"CVE-2012-1180"
385385
],
@@ -436,7 +436,7 @@
436436
"weaknesses": []
437437
},
438438
{
439-
"unique_content_id": "b0a336b612b378d72e93193756b3e376",
439+
"unique_content_id": "34fdffdb5803857f20519de081d5aa47",
440440
"aliases": [
441441
"CVE-2012-2089"
442442
],
@@ -493,7 +493,7 @@
493493
"weaknesses": []
494494
},
495495
{
496-
"unique_content_id": "e35afe5b1aadcb66c5ad82c8894dff17",
496+
"unique_content_id": "d4bc5fe3ed17d7a6eeebf9a4731ab245",
497497
"aliases": [
498498
"CVE-2013-2028"
499499
],
@@ -550,7 +550,7 @@
550550
"weaknesses": []
551551
},
552552
{
553-
"unique_content_id": "870c7bf846dc50554e9fa2290598b001",
553+
"unique_content_id": "014359d8701d1b0220a1d4a53938167e",
554554
"aliases": [
555555
"CVE-2013-2070"
556556
],
@@ -635,7 +635,7 @@
635635
"weaknesses": []
636636
},
637637
{
638-
"unique_content_id": "ce0711c66b7cdd60814c1abfbafdd3b9",
638+
"unique_content_id": "a98e3e8cc6c61be3e0bb0c766422000a",
639639
"aliases": [
640640
"CVE-2013-4547"
641641
],
@@ -698,7 +698,7 @@
698698
"weaknesses": []
699699
},
700700
{
701-
"unique_content_id": "55dccce79c4247faa1ed8db0f8fbd44f",
701+
"unique_content_id": "ca4a84fef474aa4dc5aec6cdedcb543a",
702702
"aliases": [
703703
"CVE-2014-0088"
704704
],
@@ -743,7 +743,7 @@
743743
"weaknesses": []
744744
},
745745
{
746-
"unique_content_id": "0c5952c29a54fdbc5526988c898e639d",
746+
"unique_content_id": "023ec91ead7d7978f99823b1b00fd8d0",
747747
"aliases": [
748748
"CVE-2014-0133"
749749
],
@@ -800,7 +800,7 @@
800800
"weaknesses": []
801801
},
802802
{
803-
"unique_content_id": "3637800165bcb0cf3917364af7654fee",
803+
"unique_content_id": "57b7911aa13a1c069fcd3dac8ec79a2f",
804804
"aliases": [
805805
"CVE-2014-3556"
806806
],
@@ -863,7 +863,7 @@
863863
"weaknesses": []
864864
},
865865
{
866-
"unique_content_id": "2024528d103453292ea1f23163cb7ad8",
866+
"unique_content_id": "0fb96728d775c491b25b9c5d9e509169",
867867
"aliases": [
868868
"CVE-2014-3616"
869869
],
@@ -916,7 +916,7 @@
916916
"weaknesses": []
917917
},
918918
{
919-
"unique_content_id": "4a748f6cbd00bbafac23faa271396b3a",
919+
"unique_content_id": "654bff8d56e5324da4c873438d75470e",
920920
"aliases": [
921921
"CVE-2016-0742"
922922
],
@@ -969,7 +969,7 @@
969969
"weaknesses": []
970970
},
971971
{
972-
"unique_content_id": "964babd1d8158846f348e9fa6df4e27f",
972+
"unique_content_id": "48c76ecddb554fe1274ed090b1692081",
973973
"aliases": [
974974
"CVE-2016-0746"
975975
],
@@ -1022,7 +1022,7 @@
10221022
"weaknesses": []
10231023
},
10241024
{
1025-
"unique_content_id": "e96daddac5c29ad0b9e157638fbeb3b2",
1025+
"unique_content_id": "8c61e735eef0a9205cee0bcd64d86c59",
10261026
"aliases": [
10271027
"CVE-2016-0747"
10281028
],
@@ -1075,7 +1075,7 @@
10751075
"weaknesses": []
10761076
},
10771077
{
1078-
"unique_content_id": "9cb4dc08fbceda238c4f45b00320ce42",
1078+
"unique_content_id": "04ebbd42272e64e6fc5a6f8d9f301fef",
10791079
"aliases": [
10801080
"CVE-2016-4450"
10811081
],
@@ -1148,7 +1148,7 @@
11481148
"weaknesses": []
11491149
},
11501150
{
1151-
"unique_content_id": "4ebd7508e9aaa3c3c89cac10397f47d4",
1151+
"unique_content_id": "4e89029cf59ea68756e72973eace4a6b",
11521152
"aliases": [
11531153
"CVE-2017-7529"
11541154
],
@@ -1211,7 +1211,7 @@
12111211
"weaknesses": []
12121212
},
12131213
{
1214-
"unique_content_id": "2fc1350472196c63ba9f7031fd456e76",
1214+
"unique_content_id": "f523c6c72d936bdb79de56b9fd46b1f0",
12151215
"aliases": [
12161216
"CVE-2018-16843"
12171217
],
@@ -1264,7 +1264,7 @@
12641264
"weaknesses": []
12651265
},
12661266
{
1267-
"unique_content_id": "1ae05361ffd7ba4b2a466afc6a3de34c",
1267+
"unique_content_id": "fd888e77e0b3b025f1fa65f761442d8c",
12681268
"aliases": [
12691269
"CVE-2018-16844"
12701270
],
@@ -1317,7 +1317,7 @@
13171317
"weaknesses": []
13181318
},
13191319
{
1320-
"unique_content_id": "c78f14d302f37c9241afbc18578c49b3",
1320+
"unique_content_id": "06084d7ef376d18305484283c2f3da73",
13211321
"aliases": [
13221322
"CVE-2018-16845"
13231323
],
@@ -1380,7 +1380,7 @@
13801380
"weaknesses": []
13811381
},
13821382
{
1383-
"unique_content_id": "dbbf831a29a655709b98cb79a5f90fac",
1383+
"unique_content_id": "ef70ce1787dad53097a6394e92cee831",
13841384
"aliases": [
13851385
"CVE-2019-9511"
13861386
],
@@ -1433,7 +1433,7 @@
14331433
"weaknesses": []
14341434
},
14351435
{
1436-
"unique_content_id": "834d4d1067390d7f84ebd3cea8f60fb4",
1436+
"unique_content_id": "42fe9391f57db8d38624dc2e07b35c33",
14371437
"aliases": [
14381438
"CVE-2019-9513"
14391439
],
@@ -1486,7 +1486,7 @@
14861486
"weaknesses": []
14871487
},
14881488
{
1489-
"unique_content_id": "8e94de6ae6386d8e0af0241a0989cdcd",
1489+
"unique_content_id": "1bf350eb789fa415c4d971caf298be95",
14901490
"aliases": [
14911491
"CVE-2019-9516"
14921492
],
@@ -1539,7 +1539,7 @@
15391539
"weaknesses": []
15401540
},
15411541
{
1542-
"unique_content_id": "fa52846658ab31e85334ad4af2fa7529",
1542+
"unique_content_id": "67435c71e6737dfa1a122184ee431e14",
15431543
"aliases": [
15441544
"CVE-2021-23017"
15451545
],
@@ -1602,7 +1602,7 @@
16021602
"weaknesses": []
16031603
},
16041604
{
1605-
"unique_content_id": "34b7ff4154010452c4dd186b7cbbcc5d",
1605+
"unique_content_id": "56ee126958340832e9b235a38b0c4495",
16061606
"aliases": [
16071607
"VU#120541",
16081608
"CVE-2009-3555"
@@ -1655,7 +1655,7 @@
16551655
"weaknesses": []
16561656
},
16571657
{
1658-
"unique_content_id": "cef6afb87317112ea248571bd6991994",
1658+
"unique_content_id": "b6f863030bb4fe1e2d3061bbcbc54d0c",
16591659
"aliases": [
16601660
"VU#180065",
16611661
"CVE-2009-2629"

0 commit comments

Comments
 (0)