finding

package
v0.6.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 12, 2026 License: AGPL-3.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

ValidConfidences contains all valid confidence levels

ValidExploitabilities contains all valid exploitability levels

ValidFixPriorities contains all valid fix priority levels

ValidSeverities contains all valid severity levels

ValidStatuses contains all valid statuses

Functions

func IsValidConfidence added in v0.6.0

func IsValidConfidence(c Confidence) bool

IsValidConfidence checks if a confidence is valid

func IsValidExploitability

func IsValidExploitability(e Exploitability) bool

IsValidExploitability checks if an exploitability is valid

func IsValidFixPriority

func IsValidFixPriority(p FixPriority) bool

IsValidFixPriority checks if a fix priority is valid

func IsValidSeverity

func IsValidSeverity(s Severity) bool

IsValidSeverity checks if a severity is valid

func IsValidStatus

func IsValidStatus(s Status) bool

IsValidStatus checks if a status is valid

func SeverityWeight

func SeverityWeight(s Severity) int

SeverityWeight returns a numeric weight for sorting by severity

Types

type CVSS

type CVSS struct {
	Score  float64 `yaml:"score" json:"score"`
	Vector string  `yaml:"vector" json:"vector"`
}

CVSS represents CVSS scoring information

type Confidence

type Confidence string

Confidence represents the confidence level of a finding

const (
	ConfidenceHigh   Confidence = "high"
	ConfidenceMedium Confidence = "medium"
	ConfidenceLow    Confidence = "low"
)

type Evidence

type Evidence struct {
	Type        string   `yaml:"type" json:"type"`
	Description string   `yaml:"description" json:"description"`
	Trace       []string `yaml:"trace,omitempty" json:"trace,omitempty"`
}

Evidence represents supporting evidence for a finding

type Exploitability

type Exploitability string

Exploitability represents how easily a vulnerability can be exploited

const (
	ExploitabilityProven   Exploitability = "proven"   // Exploitation confirmed/demonstrated
	ExploitabilityLikely   Exploitability = "likely"   // Exploitation highly probable
	ExploitabilityPossible Exploitability = "possible" // Exploitation theoretically possible
	ExploitabilityUnlikely Exploitability = "unlikely" // Exploitation unlikely due to mitigations
	ExploitabilityUnknown  Exploitability = "unknown"  // Not yet assessed
)

type FilterOptions

type FilterOptions struct {
	Severity       Severity
	Status         Status
	Confidence     Confidence
	Exploitability Exploitability
	FixPriority    FixPriority
	CWE            string
	Tag            string
	File           string
	Limit          int
	Offset         int
}

FilterOptions represents options for filtering findings

type Finding

type Finding struct {
	ID             string         `yaml:"id" json:"id"`
	Title          string         `yaml:"title" json:"title"`
	Severity       Severity       `yaml:"severity" json:"severity"`
	Confidence     Confidence     `yaml:"confidence" json:"confidence"`
	Exploitability Exploitability `yaml:"exploitability,omitempty" json:"exploitability,omitempty"`
	FixPriority    FixPriority    `yaml:"fix_priority,omitempty" json:"fix_priority,omitempty"`
	Status         Status         `yaml:"status" json:"status"`
	CWE            string         `yaml:"cwe,omitempty" json:"cwe,omitempty"`
	CVSS           *CVSS          `yaml:"cvss,omitempty" json:"cvss,omitempty"`
	Location       Location       `yaml:"location" json:"location"`
	Description    string         `yaml:"description" json:"description"`
	Impact         string         `yaml:"impact,omitempty" json:"impact,omitempty"`
	Remediation    string         `yaml:"remediation,omitempty" json:"remediation,omitempty"`
	Evidence       []Evidence     `yaml:"evidence,omitempty" json:"evidence,omitempty"`
	FlowTrace      *FlowTrace     `yaml:"flow_trace,omitempty" json:"flow_trace,omitempty"`
	References     []string       `yaml:"references,omitempty" json:"references,omitempty"`
	Tags           []string       `yaml:"tags,omitempty" json:"tags,omitempty"`
	ReviewedBy     []string       `yaml:"reviewed_by,omitempty" json:"reviewed_by,omitempty"`
	Notes          []FindingNote  `yaml:"notes,omitempty" json:"notes,omitempty"`
	CreatedAt      time.Time      `yaml:"created_at" json:"created_at"`
	UpdatedAt      time.Time      `yaml:"updated_at" json:"updated_at"`
	CreatedBy      string         `yaml:"created_by,omitempty" json:"created_by,omitempty"`
	DuplicateOf    string         `yaml:"duplicate_of,omitempty" json:"duplicate_of,omitempty"`
}

Finding represents a security vulnerability finding

type FindingList

type FindingList struct {
	Findings []Finding `json:"findings"`
	Total    int       `json:"total"`
}

FindingList represents a list of findings with metadata

type FindingNote added in v0.6.0

type FindingNote struct {
	Timestamp time.Time `yaml:"timestamp" json:"timestamp"`
	Author    string    `yaml:"author,omitempty" json:"author,omitempty"`
	Text      string    `yaml:"text" json:"text"`
}

FindingNote represents a timestamped note appended to a finding.

type FindingStats

type FindingStats struct {
	Total            int            `json:"total"`
	BySeverity       map[string]int `json:"by_severity"`
	ByStatus         map[string]int `json:"by_status"`
	ByConfidence     map[string]int `json:"by_confidence"`
	ByExploitability map[string]int `json:"by_exploitability"`
	ByFixPriority    map[string]int `json:"by_fix_priority"`
	ByCWE            map[string]int `json:"by_cwe"`
	ByCreatedBy      map[string]int `json:"by_created_by"`
	TopTags          []TagCount     `json:"top_tags"`
}

FindingStats represents statistics about findings

type FixPriority

type FixPriority string

FixPriority represents the recommended priority for fixing a vulnerability

const (
	FixPriorityImmediate FixPriority = "immediate" // Fix ASAP, actively exploitable
	FixPriorityHigh      FixPriority = "high"      // Fix within days
	FixPriorityMedium    FixPriority = "medium"    // Fix within weeks
	FixPriorityLow       FixPriority = "low"       // Fix when convenient
	FixPriorityDefer     FixPriority = "defer"     // Technical debt, low risk
)

type FlowTrace

type FlowTrace struct {
	Source    string   `yaml:"source" json:"source"`
	Sink      string   `yaml:"sink" json:"sink"`
	Path      []string `yaml:"path" json:"path"`
	Guards    []string `yaml:"guards,omitempty" json:"guards,omitempty"`
	Unguarded bool     `yaml:"unguarded" json:"unguarded"`
}

FlowTrace represents a data flow trace from source to sink

type Location

type Location struct {
	File      string `yaml:"file" json:"file"`
	LineStart int    `yaml:"line_start" json:"line_start"`
	LineEnd   int    `yaml:"line_end,omitempty" json:"line_end,omitempty"`
	Function  string `yaml:"function,omitempty" json:"function,omitempty"`
	Snippet   string `yaml:"snippet,omitempty" json:"snippet,omitempty"`
}

Location represents where a vulnerability was found

type Severity

type Severity string

Severity represents the severity level of a finding

const (
	SeverityCritical Severity = "critical"
	SeverityHigh     Severity = "high"
	SeverityMedium   Severity = "medium"
	SeverityLow      Severity = "low"
	SeverityInfo     Severity = "info"
)

type Status

type Status string

Status represents the status of a finding

const (
	StatusOpen          Status = "open"
	StatusConfirmed     Status = "confirmed"
	StatusFalsePositive Status = "false_positive"
	StatusFixed         Status = "fixed"
	StatusDuplicate     Status = "duplicate"
)

type Store

type Store struct {
	// contains filtered or unexported fields
}

Store handles finding CRUD operations

func NewStore

func NewStore(p *project.Project) *Store

NewStore creates a new finding store for the given project

func (*Store) Create

func (s *Store) Create(f *Finding) error

Create creates a new finding

func (*Store) Delete

func (s *Store) Delete(id string) error

Delete deletes a finding

func (*Store) GetExportsPath

func (s *Store) GetExportsPath() string

GetExportsPath returns the exports directory path

func (*Store) Import

func (s *Store) Import(path string) (*Finding, error)

Import imports a finding from a file

func (*Store) List

func (s *Store) List(opts *FilterOptions) (*FindingList, error)

List lists all findings, optionally filtered

func (*Store) Read

func (s *Store) Read(id string) (*Finding, error)

Read reads a finding by ID

func (*Store) Stats

func (s *Store) Stats() (*FindingStats, error)

Stats calculates statistics about findings

func (*Store) Update

func (s *Store) Update(f *Finding) error

Update updates an existing finding

type TagCount

type TagCount struct {
	Tag   string `json:"tag"`
	Count int    `json:"count"`
}

TagCount represents a tag and its count

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL