Skip to content
This repository was archived by the owner on Dec 5, 2025. It is now read-only.

Commit 0b60598

Browse files
[client] Add EPSS Support for Vulnerability Entity (#3568)
1 parent 8ef3069 commit 0b60598

File tree

4 files changed

+41
-0
lines changed

4 files changed

+41
-0
lines changed

pycti/entities/opencti_stix_core_object.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -359,6 +359,9 @@ def __init__(self, opencti, file):
359359
x_opencti_cvss_attack_vector
360360
x_opencti_cvss_integrity_impact
361361
x_opencti_cvss_availability_impact
362+
x_opencti_cisa_kev
363+
x_opencti_epss_score
364+
x_opencti_epss_percentile
362365
}
363366
... on Incident {
364367
name
@@ -1023,6 +1026,9 @@ def __init__(self, opencti, file):
10231026
x_opencti_cvss_attack_vector
10241027
x_opencti_cvss_integrity_impact
10251028
x_opencti_cvss_availability_impact
1029+
x_opencti_cisa_kev
1030+
x_opencti_epss_score
1031+
x_opencti_epss_percentile
10261032
}
10271033
... on Incident {
10281034
name

pycti/entities/opencti_stix_domain_object.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -482,6 +482,9 @@ def __init__(self, opencti, file):
482482
x_opencti_cvss_attack_vector
483483
x_opencti_cvss_integrity_impact
484484
x_opencti_cvss_availability_impact
485+
x_opencti_cisa_kev
486+
x_opencti_epss_score
487+
x_opencti_epss_percentile
485488
}
486489
... on Incident {
487490
name
@@ -977,6 +980,9 @@ def __init__(self, opencti, file):
977980
x_opencti_cvss_attack_vector
978981
x_opencti_cvss_integrity_impact
979982
x_opencti_cvss_availability_impact
983+
x_opencti_cisa_kev
984+
x_opencti_epss_score
985+
x_opencti_epss_percentile
980986
}
981987
... on Incident {
982988
name

pycti/entities/opencti_stix_object_or_stix_relationship.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -298,6 +298,9 @@ def __init__(self, opencti):
298298
x_opencti_cvss_attack_vector
299299
x_opencti_cvss_integrity_impact
300300
x_opencti_cvss_availability_impact
301+
x_opencti_cisa_kev
302+
x_opencti_epss_score
303+
x_opencti_epss_percentile
301304
}
302305
... on Incident {
303306
name

pycti/entities/opencti_vulnerability.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,8 @@ def __init__(self, opencti):
106106
x_opencti_cvss_availability_impact
107107
x_opencti_cvss_confidentiality_impact
108108
x_opencti_cisa_kev
109+
x_opencti_epss_score
110+
x_opencti_epss_percentile
109111
importFiles {
110112
edges {
111113
node {
@@ -285,6 +287,8 @@ def create(self, **kwargs):
285287
x_opencti_cvss_base_severity = kwargs.get("x_opencti_cvss_base_severity", None)
286288
x_opencti_cvss_attack_vector = kwargs.get("x_opencti_cvss_attack_vector", None)
287289
x_opencti_cisa_kev = kwargs.get("x_opencti_cisa_kev", None)
290+
x_opencti_epss_score = kwargs.get("x_opencti_epss_score", None)
291+
x_opencti_epss_percentile = kwargs.get("x_opencti_epss_percentile", None)
288292
x_opencti_cvss_integrity_impact = kwargs.get(
289293
"x_opencti_cvss_integrity_impact", None
290294
)
@@ -336,6 +340,8 @@ def create(self, **kwargs):
336340
"x_opencti_cvss_availability_impact": x_opencti_cvss_availability_impact,
337341
"x_opencti_cvss_confidentiality_impact": x_opencti_cvss_confidentiality_impact,
338342
"x_opencti_cisa_kev": x_opencti_cisa_kev,
343+
"x_opencti_epss_score": x_opencti_epss_score,
344+
"x_opencti_epss_percentile": x_opencti_epss_percentile,
339345
"x_opencti_stix_ids": x_opencti_stix_ids,
340346
"x_opencti_workflow_id": x_opencti_workflow_id,
341347
"update": update,
@@ -444,6 +450,16 @@ def import_from_stix2(self, **kwargs):
444450
stix_object["x_opencti_cisa_kev"] = (
445451
self.opencti.get_attribute_in_extension("cisa_kev", stix_object)
446452
)
453+
if "x_opencti_epss_score" not in stix_object:
454+
stix_object["x_opencti_epss_score"] = (
455+
self.opencti.get_attribute_in_extension("epss_score", stix_object)
456+
)
457+
if "x_opencti_epss_percentile" not in stix_object:
458+
stix_object["x_opencti_epss_percentile"] = (
459+
self.opencti.get_attribute_in_extension(
460+
"epss_percentile", stix_object
461+
)
462+
)
447463

448464
return self.create(
449465
stix_id=stix_object["id"],
@@ -531,6 +547,16 @@ def import_from_stix2(self, **kwargs):
531547
if "x_opencti_cisa_kev" in stix_object
532548
else None
533549
),
550+
x_opencti_epss_score=(
551+
stix_object["x_opencti_epss_score"]
552+
if "x_opencti_epss_score" in stix_object
553+
else None
554+
),
555+
x_opencti_epss_percentile=(
556+
stix_object["x_opencti_epss_percentile"]
557+
if "x_opencti_epss_percentile" in stix_object
558+
else None
559+
),
534560
update=update,
535561
)
536562
else:

0 commit comments

Comments
 (0)