|
8 | 8 | # |
9 | 9 |
|
10 | 10 |
|
11 | | -import json |
12 | 11 | from collections import Counter |
13 | 12 | from collections import defaultdict |
14 | 13 | from itertools import chain |
|
28 | 27 | from vulnerabilities.models import ToDoRelatedAdvisoryV2 |
29 | 28 | from vulnerabilities.pipelines import VulnerableCodePipeline |
30 | 29 | from vulnerabilities.pipes.advisory import advisories_checksum |
31 | | -from vulnerabilities.severity_systems import CVSS4 |
32 | | -from vulnerabilities.severity_systems import CVSSV3 |
33 | 30 | from vulnerabilities.severity_systems import SCORING_SYSTEMS |
34 | 31 | from vulnerabilities.utils import canonical_value |
35 | 32 | from vulnerabilities.utils import normalize_text |
@@ -425,90 +422,6 @@ def detect_conflicting_cvss_scores(self): |
425 | 422 | total_count_conflicting_advisory += count_conflicting_advisory |
426 | 423 | total_successfully_compared_advisory_count += initial_advisory_group_size |
427 | 424 |
|
428 | | - # adv_by_cvss = { |
429 | | - # "cvssv4": {}, |
430 | | - # "cvssv3": {}, |
431 | | - # "cvssv3.1": {}, |
432 | | - # } |
433 | | - # cvss_version = { |
434 | | - # "cvssv4": "4.0", |
435 | | - # "cvssv3": "3.0", |
436 | | - # "cvssv3.1": "3.1", |
437 | | - # } |
438 | | - # for v_type in ["cvssv4"]: |
439 | | - # for avid, value in comparable_adv_map.items(): |
440 | | - # if value[v_type]: |
441 | | - # adv_by_cvss[v_type][avid] = value |
442 | | - |
443 | | - # all_conflict_items = [] |
444 | | - # conflicting_advisories = [] |
445 | | - # for v_type, item in adv_by_cvss.items(): |
446 | | - # if len(item) < 2: |
447 | | - # continue |
448 | | - # result = compute_cvss_disagreement(item, v_type) |
449 | | - # if not result or result["purl_disagreement"]: |
450 | | - # continue |
451 | | - |
452 | | - # if not result["cvssv_disagreement"]: |
453 | | - # continue |
454 | | - |
455 | | - # consensus_metrics = {} |
456 | | - # vectors = [ |
457 | | - # adv_by_cvss_value[f"{v_type}_vector"] for adv_by_cvss_value in item.values() |
458 | | - # ] |
459 | | - # if len(vectors) == len(item): |
460 | | - # if v_type == "cvssv4": |
461 | | - # consensus_metrics = consensus_cvss3_metric(vectors) |
462 | | - # else: |
463 | | - # consensus_metrics = consensus_cvss4_metric(vector) |
464 | | - |
465 | | - # conflicting_advisories.extend([advisory_avid_map[avid] for avid in item]) |
466 | | - # conflict_item = { |
467 | | - # # fix me |
468 | | - # "cvss": cvss_version[v_type], |
469 | | - # "partial_cvss_curation": consensus_metrics, |
470 | | - # "advisories": [advisory_curation_item_map[avid][v_type] for avid in item], |
471 | | - # } |
472 | | - # all_conflict_items.append(conflict_item) |
473 | | - |
474 | | - # if not all_conflict_items: |
475 | | - # continue |
476 | | - |
477 | | - # issue_detail = { |
478 | | - # "alias": alias.alias, |
479 | | - # # "conflict_checksum": conflict_checksum, |
480 | | - # # "conflict_details": conflicting_package_details, |
481 | | - # # "partial_curation_advisory": partial_merged_advisory, |
482 | | - # "curation_items": all_conflict_items, |
483 | | - # } |
484 | | - |
485 | | - # todo_id = advisories_checksum(conflicting_advisories) |
486 | | - |
487 | | - # if todo_id in existing_todo_ids: |
488 | | - # continue |
489 | | - |
490 | | - # existing_todo_ids.add(todo_id) |
491 | | - # conflicting_advisories_count = len(conflicting_advisories) |
492 | | - |
493 | | - # date_published = min( |
494 | | - # (a.date_published for a in conflicting_advisories if a.date_published), |
495 | | - # default=None, |
496 | | - # ) |
497 | | - # date_collected = min( |
498 | | - # (a.date_collected for a in conflicting_advisories if a.date_collected), |
499 | | - # default=None, |
500 | | - # ) |
501 | | - # todo = AdvisoryToDoV2( |
502 | | - # related_advisories_id=todo_id, |
503 | | - # issue_type="CONFLICTING_SEVERITY_SCORES", |
504 | | - # issue_detail=issue_detail, |
505 | | - # alias=alias, |
506 | | - # advisories_count=conflicting_advisories_count, |
507 | | - # oldest_advisory_date=date_published or date_collected, |
508 | | - # ) |
509 | | - # todo_to_create.append(todo) |
510 | | - # advisory_relation_to_create[todo_id] = conflicting_advisories |
511 | | - |
512 | 425 | if len(todo_to_create) > batch_size: |
513 | 426 | new_todos_count += bulk_create_with_m2m( |
514 | 427 | todos=todo_to_create, |
@@ -643,13 +556,13 @@ def get_grouped_advisory_curation(advisory_curation_item_map, cvss_type, advisor |
643 | 556 | vector = advisory_curation_item_map[avid][cvss_type]["vector_string"] or str(count) |
644 | 557 | vector_group[vector].append((avid, advisories[avid].precedence)) |
645 | 558 |
|
646 | | - for avids in vector_group.values(): |
647 | | - sorted_avids = [x[0] for x in sorted(avids, key=lambda x: x[1], reverse=True)] |
| 559 | + for avid_precedence in vector_group.values(): |
| 560 | + sorted_avids = [x[0] for x in sorted(avid_precedence, key=lambda x: x[1], reverse=True)] |
648 | 561 | primary_avid = sorted_avids[0] |
649 | 562 | curation_items.append( |
650 | 563 | { |
651 | 564 | "primary": advisory_curation_item_map[primary_avid][cvss_type], |
652 | | - "secondaries": [advisory_curation_item_map[a][cvss_type] for a in avids[1:]], |
| 565 | + "secondaries": [advisory_curation_item_map[a][cvss_type] for a in sorted_avids[1:]], |
653 | 566 | } |
654 | 567 | ) |
655 | 568 |
|
|
0 commit comments