pontos.nvd.models package #

Subpackages #

pontos.nvd.models.cpe#

class pontos.nvd.models.cpe.DeprecatedBy(cpe_name=None, cpe_name_id=None)#

A CPE is deprecated by another CPE

cpe_name#

Name of the CPE that deprecates this CPE

Type:

Optional[str]

cpe_name_id#

ID of the CPE that deprecates this CPE

Type:

Optional[uuid.UUID]

class pontos.nvd.models.cpe.ReferenceType(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)#

A CPE reference type

ADVISORY#

The reference is an advisory

CHANGELOG#

The reference is a changelog

PRODUCT#

The reference is a product

PROJECT#

The reference is a project

VENDOR#

The reference is a vendor

VERSION#

The reference is version

class pontos.nvd.models.cpe.Reference(ref, type=None)#

A CPE reference

ref#

The content of the reference

Type:

str

type#

The type of the reference

Type:

Optional[pontos.nvd.models.cpe.ReferenceType]

class pontos.nvd.models.cpe.Title(title, lang)#

A CPE title

title#

The actual title

Type:

str

lang#

Language of the title

Type:

str

class pontos.nvd.models.cpe.CPE(cpe_name, cpe_name_id, deprecated, last_modified, created, titles=<factory>, refs=<factory>, deprecated_by=<factory>)#

Represents a CPE

cpe_name#

The name of the CPE

Type:

str

cpe_name_id#

UUID of the CPE

Type:

uuid.UUID

deprecated#

True if the CPE is deprecated

Type:

bool

last_modified#

Last modification date of the CPE

Type:

datetime.datetime

created#

Creation date of the CPE

Type:

datetime.datetime

titles#

List of titles for the CPE

Type:

List[pontos.nvd.models.cpe.Title]

refs#

References to additional data

Type:

List[pontos.nvd.models.cpe.Reference]

deprecated_by#

Additional information about possible deprecation by another CPE

Type:

List[pontos.nvd.models.cpe.DeprecatedBy]

pontos.nvd.models.cve#

class pontos.nvd.models.cve.Configuration(nodes, operator=None, negate=None)#

A CVE configuration

nodes#
Type:

List[pontos.nvd.models.cve.Node]

operator#
Type:

Optional[pontos.nvd.models.cve.Operator]

negate#
Type:

Optional[bool]

class pontos.nvd.models.cve.CPEMatch(vulnerable, criteria, match_criteria_id, version_start_excluding=None, version_start_including=None, version_end_excluding=None, version_end_including=None)#

A CPE match referencing a vulnerable product with a version range

vulnerable#
Type:

bool

criteria#
Type:

str

match_criteria_id#
Type:

str

version_start_excluding#

Matches the CPE excluding the specified version

Type:

Optional[str]

version_start_including#

Matches the CPE including the specified version

Type:

Optional[str]

version_end_excluding#

Matches the CPE excluding up to the specified version

Type:

Optional[str]

version_end_including#

Matches the CPE including up to the specified version

Type:

Optional[str]

class pontos.nvd.models.cve.CVSSType(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)#

The CVSS Type: primary or secondary

PRIMARY#

A primary CVSS

SECONDARY#

A secondary CVSS

class pontos.nvd.models.cve.CVSSv2Metric(source, type, cvss_data, base_severity=None, exploitability_score=None, impact_score=None, ac_insuf_info=None, obtain_all_privilege=None, obtain_user_privilege=None, obtain_other_privilege=None, user_interaction_required=None)#

A CVSSv3 metric

source#

The source of the CVSS

Type:

str

type#

The CVSS type

Type:

pontos.nvd.models.cve.CVSSType

cvss_data#

The actual CVSSv2 data

Type:

pontos.nvd.models.cvss_v2.CVSSData

base_severity#
Type:

Optional[str]

exploitability_score#
Type:

Optional[float]

impact_score#
Type:

Optional[float]

ac_insuf_info#
Type:

Optional[bool]

obtain_all_privilege#
Type:

Optional[bool]

obtain_user_privilege#
Type:

Optional[bool]

obtain_other_privilege#
Type:

Optional[bool]

user_interaction_required#
Type:

Optional[bool]

class pontos.nvd.models.cve.CVSSv3Metric(source, type, cvss_data, exploitability_score=None, impact_score=None)#

A CVSSv3 metric

source#

The source of the CVSS

Type:

str

type#

The CVSS type

Type:

pontos.nvd.models.cve.CVSSType

cvss_data#

The actual CVSSv3 data

Type:

pontos.nvd.models.cvss_v3.CVSSData

exploitability_score#
Type:

Optional[float]

impact_score#
Type:

Optional[float]

class pontos.nvd.models.cve.Description(lang, value)#

A description in a specific language

lang#

Language of the description

Type:

str

value#

The actual description

Type:

str

class pontos.nvd.models.cve.Metrics(cvss_metric_v31=<factory>, cvss_metric_v30=<factory>, cvss_metric_v2=<factory>)#

CVE metrics

cvss_metric_v31#

A list of CVSSv3.1 metrics

Type:

List[pontos.nvd.models.cve.CVSSv3Metric]

cvss_metric_v30#

A list of CVSSv3.0 metrics

Type:

List[pontos.nvd.models.cve.CVSSv3Metric]

cvss_metric_v2#

A list of CVSSv2 metrics

Type:

List[pontos.nvd.models.cve.CVSSv2Metric]

class pontos.nvd.models.cve.Node(operator, cpe_match=None, negate=None)#

A CVE configuration node

operator#

Operator (and/or) for this node

Type:

pontos.nvd.models.cve.Operator

cpe_match#

The CPE match for the node. Despite a cpe match is required int NISTs API spec the data seems to contain nodes without matches.

Type:

Optional[List[pontos.nvd.models.cve.CPEMatch]]

negate#
Type:

Optional[bool]

class pontos.nvd.models.cve.Operator(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)#

An operator: AND or OR

AND#

A and operator

OR#

A or operator

class pontos.nvd.models.cve.Reference(url, source=None, tags=<factory>)#

A CVE reference

url#

URL to the reference

Type:

str

source#

Source of the reference

Type:

Optional[str]

tags#

List of tags for the reference

Type:

List[str]

class pontos.nvd.models.cve.VendorComment(organization, comment, last_modified)#

A vendor comment

organization#

Name of the vendor

Type:

str

comment#

The actual comment of the vendor

Type:

str

last_modified#

Last modification date of the comment

Type:

datetime.datetime

class pontos.nvd.models.cve.Weakness(source, type, description=<factory>)#
source#
Type:

str

type#
Type:

str

description#
Type:

List[pontos.nvd.models.cve.Description]

class pontos.nvd.models.cve.CVE(id, source_identifier, published, last_modified, vuln_status, descriptions, references, weaknesses=<factory>, configurations=<factory>, vendor_comments=<factory>, metrics=None, evaluator_comment=None, evaluator_solution=None, evaluator_impact=None, cisa_exploit_add=None, cisa_action_due=None, cisa_required_action=None, cisa_vulnerability_name=None)#

A model representing a CVE

id#

ID of the CVE

Type:

str

source_identifier#

Identifier for the source of the CVE

Type:

str

published#

Date of publishing

Type:

datetime.datetime

last_modified#

Last modification date

Type:

datetime.datetime

vuln_status#

Current vulnerability status

Type:

str

descriptions#

List of additional descriptions

Type:

List[pontos.nvd.models.cve.Description]

references#

List of additional references (URLs)

Type:

List[pontos.nvd.models.cve.Reference]

weaknesses#

List of weaknesses

Type:

List[pontos.nvd.models.cve.Weakness]

configurations#

List of configurations

Type:

List[pontos.nvd.models.cve.Configuration]

vendor_comments#

List of vendor comments

Type:

List[pontos.nvd.models.cve.VendorComment]

metrics#

List of CVSS metrics for this CVE

Type:

Optional[pontos.nvd.models.cve.Metrics]

evaluator_comment#
Type:

Optional[str]

evaluator_solution#
Type:

Optional[str]

evaluator_impact#
Type:

Optional[str]

cisa_exploit_add#
Type:

Optional[datetime.date]

cisa_action_due#
Type:

Optional[datetime.date]

cisa_required_action#
Type:

Optional[str]

cisa_vulnerability_name#
Type:

Optional[str]

pontos.nvd.models.cvss_v2#

class pontos.nvd.models.cvss_v2.Severity(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)#
class pontos.nvd.models.cvss_v2.AccessVector(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)#
class pontos.nvd.models.cvss_v2.AccessComplexity(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)#
class pontos.nvd.models.cvss_v2.Authentication(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)#
class pontos.nvd.models.cvss_v2.Impact(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)#
class pontos.nvd.models.cvss_v2.Exploitability(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)#
class pontos.nvd.models.cvss_v2.RemediationLevel(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)#
class pontos.nvd.models.cvss_v2.ReportConfidence(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)#
class pontos.nvd.models.cvss_v2.CollateralDamagePotential(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)#
class pontos.nvd.models.cvss_v2.TargetDistribution(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)#
class pontos.nvd.models.cvss_v2.Requirement(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)#
class pontos.nvd.models.cvss_v2.CVSSData(version: str, vector_string: str, base_score: float, access_vector: Optional[pontos.nvd.models.cvss_v2.AccessVector] = None, access_complexity: Optional[pontos.nvd.models.cvss_v2.AccessComplexity] = None, authentication: Optional[pontos.nvd.models.cvss_v2.Authentication] = None, confidentiality_impact: Optional[pontos.nvd.models.cvss_v2.Impact] = None, integrity_impact: Optional[pontos.nvd.models.cvss_v2.Impact] = None, availability_impact: Optional[pontos.nvd.models.cvss_v2.Impact] = None, exploitability: Optional[pontos.nvd.models.cvss_v2.Exploitability] = None, remediation_level: Optional[pontos.nvd.models.cvss_v2.RemediationLevel] = None, report_confidence: Optional[pontos.nvd.models.cvss_v2.ReportConfidence] = None, temporal_score: Optional[float] = None, collateral_damage_potential: Optional[pontos.nvd.models.cvss_v2.CollateralDamagePotential] = None, target_distribution: Optional[pontos.nvd.models.cvss_v2.TargetDistribution] = None, confidentiality_requirement: Optional[pontos.nvd.models.cvss_v2.Requirement] = None, integrity_requirement: Optional[pontos.nvd.models.cvss_v2.Requirement] = None, availability_requirement: Optional[pontos.nvd.models.cvss_v2.Requirement] = None, environmental_score: Optional[float] = None)#

pontos.nvd.models.cvss_v3#

class pontos.nvd.models.cvss_v3.Severity(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)#
class pontos.nvd.models.cvss_v3.AttackVector(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)#
class pontos.nvd.models.cvss_v3.ModifiedAttackVector(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)#
class pontos.nvd.models.cvss_v3.AttackComplexity(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)#
class pontos.nvd.models.cvss_v3.ModifiedAttackComplexity(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)#
class pontos.nvd.models.cvss_v3.PrivilegesRequired(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)#
class pontos.nvd.models.cvss_v3.ModifiedPrivilegesRequired(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)#
class pontos.nvd.models.cvss_v3.UserInteraction(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)#
class pontos.nvd.models.cvss_v3.ModifiedUserInteraction(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)#
class pontos.nvd.models.cvss_v3.Scope(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)#
class pontos.nvd.models.cvss_v3.ModifiedScope(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)#
class pontos.nvd.models.cvss_v3.Impact(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)#
class pontos.nvd.models.cvss_v3.ModifiedImpact(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)#
class pontos.nvd.models.cvss_v3.ExploitCodeMaturity(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)#
class pontos.nvd.models.cvss_v3.RemediationLevel(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)#
class pontos.nvd.models.cvss_v3.Confidence(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)#
class pontos.nvd.models.cvss_v3.Requirement(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)#
class pontos.nvd.models.cvss_v3.CVSSData(version: str, vector_string: str, base_score: float, base_severity: pontos.nvd.models.cvss_v3.Severity, attack_vector: Optional[pontos.nvd.models.cvss_v3.AttackVector] = None, attack_complexity: Optional[pontos.nvd.models.cvss_v3.AttackComplexity] = None, privileges_required: Optional[pontos.nvd.models.cvss_v3.PrivilegesRequired] = None, user_interaction: Optional[pontos.nvd.models.cvss_v3.UserInteraction] = None, scope: Optional[pontos.nvd.models.cvss_v3.Scope] = None, confidentiality_impact: Optional[pontos.nvd.models.cvss_v3.Impact] = None, integrity_impact: Optional[pontos.nvd.models.cvss_v3.Impact] = None, availability_impact: Optional[pontos.nvd.models.cvss_v3.Impact] = None, exploit_code_maturity: Optional[pontos.nvd.models.cvss_v3.ExploitCodeMaturity] = None, remediation_level: Optional[pontos.nvd.models.cvss_v3.RemediationLevel] = None, report_confidence: Optional[pontos.nvd.models.cvss_v3.Confidence] = None, temporal_score: Optional[float] = None, temporal_severity: Optional[pontos.nvd.models.cvss_v3.Severity] = None, confidentiality_requirement: Optional[pontos.nvd.models.cvss_v3.Requirement] = None, integrity_requirement: Optional[pontos.nvd.models.cvss_v3.Requirement] = None, availability_requirement: Optional[pontos.nvd.models.cvss_v3.Requirement] = None, modified_attack_vector: Optional[pontos.nvd.models.cvss_v3.ModifiedAttackVector] = None, modified_attack_complexity: Optional[pontos.nvd.models.cvss_v3.ModifiedAttackComplexity] = None, modified_privileges_required: Optional[pontos.nvd.models.cvss_v3.ModifiedPrivilegesRequired] = None, modified_user_interaction: Optional[pontos.nvd.models.cvss_v3.ModifiedUserInteraction] = None, modified_scope: Optional[pontos.nvd.models.cvss_v3.ModifiedScope] = None, modified_confidentiality_impact: Optional[pontos.nvd.models.cvss_v3.ModifiedImpact] = None, modified_integrity_impact: Optional[pontos.nvd.models.cvss_v3.ModifiedImpact] = None, modified_availability_impact: Optional[pontos.nvd.models.cvss_v3.ModifiedImpact] = None, environmental_score: Optional[float] = None, environmental_severity: Optional[pontos.nvd.models.cvss_v3.Severity] = None)#