Class CveEntry

Namespace
Kuestenlogik.Bowire.Security.Scanner
Assembly
Kuestenlogik.Bowire.Security.Scanner.dll

One known-vulnerability record keyed to a server product + version range — the shape a Bowire.VulnDb CVE file publishes and the CVE-lookup probe (Kuestenlogik.Bowire.Security.Scanner.ServerCveProbe, #187) consumes.

public sealed record CveEntry : IEquatable<CveEntry>
Inheritance
CveEntry
Implements
Inherited Members

Constructors

CveEntry(string, string, string?, string?, string, double?, string?, string?)

One known-vulnerability record keyed to a server product + version range — the shape a Bowire.VulnDb CVE file publishes and the CVE-lookup probe (Kuestenlogik.Bowire.Security.Scanner.ServerCveProbe, #187) consumes.

public CveEntry(string Product, string Cve, string? Introduced = null, string? Fixed = null, string Severity = "high", double? Cvss = null, string? Title = null, string? Reference = null)

Parameters

Product string

Product name matched (case-insensitively) against the parsed Server / X-Powered-By banner, e.g. nginx.

Cve string

CVE identifier, e.g. CVE-2021-23017.

Introduced string

First affected version (inclusive). Null = unbounded below.

Fixed string

First fixed version (exclusive). Null = unbounded above.

Severity string

low / medium / high / critical.

Cvss double?

Optional CVSS base score.

Title string

One-line description.

Reference string

Advisory URL.

Properties

Cve

CVE identifier, e.g. CVE-2021-23017.

[JsonPropertyName("cve")]
public string Cve { get; init; }

Property Value

string

Cvss

Optional CVSS base score.

[JsonPropertyName("cvss")]
public double? Cvss { get; init; }

Property Value

double?

Fixed

First fixed version (exclusive). Null = unbounded above.

[JsonPropertyName("fixed")]
public string? Fixed { get; init; }

Property Value

string

Introduced

First affected version (inclusive). Null = unbounded below.

[JsonPropertyName("introduced")]
public string? Introduced { get; init; }

Property Value

string

Product

Product name matched (case-insensitively) against the parsed Server / X-Powered-By banner, e.g. nginx.

[JsonPropertyName("product")]
public string Product { get; init; }

Property Value

string

Reference

Advisory URL.

[JsonPropertyName("reference")]
public string? Reference { get; init; }

Property Value

string

Severity

low / medium / high / critical.

[JsonPropertyName("severity")]
public string Severity { get; init; }

Property Value

string

Title

One-line description.

[JsonPropertyName("title")]
public string? Title { get; init; }

Property Value

string

Methods

Deconstruct(out string, out string, out string?, out string?, out string, out double?, out string?, out string?)

public void Deconstruct(out string Product, out string Cve, out string? Introduced, out string? Fixed, out string Severity, out double? Cvss, out string? Title, out string? Reference)

Parameters

Product string
Cve string
Introduced string
Fixed string
Severity string
Cvss double?
Title string
Reference string

Equals(CveEntry?)

public bool Equals(CveEntry? other)

Parameters

other CveEntry

Returns

bool

Equals(object?)

public override bool Equals(object? obj)

Parameters

obj object

Returns

bool

GetHashCode()

public override int GetHashCode()

Returns

int

ToString()

public override string ToString()

Returns

string

Operators

operator ==(CveEntry?, CveEntry?)

public static bool operator ==(CveEntry? left, CveEntry? right)

Parameters

left CveEntry
right CveEntry

Returns

bool

operator !=(CveEntry?, CveEntry?)

public static bool operator !=(CveEntry? left, CveEntry? right)

Parameters

left CveEntry
right CveEntry

Returns

bool