knowledge

package
v0.0.12-alpha Latest Latest
Warning

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

Go to latest
Published: Aug 26, 2025 License: AGPL-3.0 Imports: 12 Imported by: 26

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AdvisoryBranch

type AdvisoryBranch struct {
	Versions []string `json:"versions"`
	Time     string   `json:"time"`
}

AdvisoryBranch represents version information for a specific branch

type Affected

type Affected struct {
	Package           OSVPackage     `json:"package"`
	Severity          []Severity     `json:"severity"`
	Ranges            []Range        `json:"ranges"`
	Versions          []string       `json:"versions"`
	EcosystemSpecific map[string]any `json:"ecosystem_specific"`
	DatabaseSpecific  map[string]any `json:"database_specific"`
}

type AlternateTerm

type AlternateTerm struct {
	Term        string `json:"Term"`
	Description string `json:"Description"`
}

type ApplicablePlatform

type ApplicablePlatform struct {
	Language        []ApplicablePlatformEntry `json:"Language,omitempty"`
	Technology      []ApplicablePlatformEntry `json:"Technology,omitempty"`
	OperatingSystem []ApplicablePlatformEntry `json:"OperatingSystem,omitempty"`
	Architecture    []ApplicablePlatformEntry `json:"Architecture,omitempty"`
}

type ApplicablePlatformEntry

type ApplicablePlatformEntry struct {
	Name       string `json:"Name"`
	Prevalence string `json:"Prevalence"`
	Class      string `json:"Class"`
}

type CVSS3

type CVSS3 struct {
	AttackComplexity              string  `json:"attackComplexity,omitempty"`
	AttackVector                  string  `json:"attackVector,omitempty"`
	AvailabilityImpact            string  `json:"availabilityImpact,omitempty"`
	AvailabilityRequirement       string  `json:"availabilityRequirement,omitempty"`
	BaseScore                     float64 `json:"baseScore"`
	BaseSeverity                  string  `json:"baseSeverity"`
	ConfidentialityImpact         string  `json:"confidentialityImpact,omitempty"`
	ConfidentialityRequirement    string  `json:"confidentialityRequirement,omitempty"`
	EnvironmentalScore            float64 `json:"environmentalScore,omitempty"`
	EnvironmentalSeverity         string  `json:"environmentalSeverity,omitempty"`
	ExploitCodeMaturity           string  `json:"exploitCodeMaturity,omitempty"`
	IntegrityImpact               string  `json:"integrityImpact,omitempty"`
	IntegrityRequirement          string  `json:"integrityRequirement,omitempty"`
	ModifiedAttackComplexity      string  `json:"modifiedAttackComplexity,omitempty"`
	ModifiedAttackVector          string  `json:"modifiedAttackVector,omitempty"`
	ModifiedAvailabilityImpact    string  `json:"modifiedAvailabilityImpact,omitempty"`
	ModifiedConfidentialityImpact string  `json:"modifiedConfidentialityImpact,omitempty"`
	ModifiedIntegrityImpact       string  `json:"modifiedIntegrityImpact,omitempty"`
	ModifiedPrivilegesRequired    string  `json:"modifiedPrivilegesRequired,omitempty"`
	ModifiedScope                 string  `json:"modifiedScope,omitempty"`
	ModifiedUserInteraction       string  `json:"modifiedUserInteraction,omitempty"`
	PrivilegesRequired            string  `json:"privilegesRequired,omitempty"`
	RemediationLevel              string  `json:"remediationLevel,omitempty"`
	ReportConfidence              string  `json:"reportConfidence,omitempty"`
	Scope                         string  `json:"scope,omitempty"`
	TemporalScore                 float64 `json:"temporalScore,omitempty"`
	TemporalSeverity              string  `json:"temporalSeverity,omitempty"`
	UserInteraction               string  `json:"userInteraction,omitempty"`
	VectorString                  string  `json:"vectorString"`
	Version                       string  `json:"version"`
}

type CVSSV2

type CVSSV2 struct {
	AccessComplexity           string  `json:"accessComplexity,omitempty"`
	AccessVector               string  `json:"accessVector,omitempty"`
	Authentication             string  `json:"authentication,omitempty"`
	AvailabilityImpact         string  `json:"availabilityImpact,omitempty"`
	AvailabilityRequirement    string  `json:"availabilityRequirement,omitempty"`
	BaseScore                  float64 `json:"baseScore"`
	CollateralDamagePotential  string  `json:"collateralDamagePotential,omitempty"`
	ConfidentialityImpact      string  `json:"confidentialityImpact,omitempty"`
	ConfidentialityRequirement string  `json:"confidentialityRequirement,omitempty"`
	EnvironmentalScore         float64 `json:"environmentalScore,omitempty"`
	Exploitability             string  `json:"exploitability,omitempty"`
	IntegrityImpact            string  `json:"integrityImpact,omitempty"`
	IntegrityRequirement       string  `json:"integrityRequirement,omitempty"`
	RemediationLevel           string  `json:"remediationLevel,omitempty"`
	ReportConfidence           string  `json:"reportConfidence,omitempty"`
	TargetDistribution         string  `json:"targetDistribution,omitempty"`
	TemporalScore              float64 `json:"temporalScore,omitempty"`
	VectorString               string  `json:"vectorString"`
	Version                    string  `json:"version"`
}

type CWEEntry

type CWEEntry struct {
	bun.BaseModel        `bun:"table:cwe,alias:c"`
	Id                   uuid.UUID             `bun:",pk,autoincrement,type:uuid,default:uuid_generate_v4()"`
	CWEId                string                `json:"id" bun:"cwe_id"`
	Name                 string                `bun:"name"`
	Abstraction          string                `bun:"abstraction"`
	Structure            string                `bun:"structure"`
	Status               string                `bun:"status"`
	Description          string                `bun:"description"`
	ExtendedDescription  string                `bun:"extended_description"`
	RelatedWeaknesses    []RelatedWeakness     `bun:"related_weaknesses"`
	ModesOfIntroduction  []ModesOfIntroduction `bun:"modes_of_introduction"`
	CommonConsequences   []CommonConsequence   `bun:"common_consequences"`
	DetectionMethods     []DetectionMethod     `bun:"detection_methods"`
	PotentialMitigations []PotentialMitigation `bun:"potential_mitigations"`
	TaxonomyMappings     []TaxonomyMapping     `bun:"taxonomy_mappings"`
	LikelihoodOfExploit  string                `bun:"likelihood_of_exploit"`
	ObservedExamples     []ObservedExamples    `bun:"observed_examples"`
	AlternateTerms       []AlternateTerm       `bun:"alternate_terms"`
	AffectedResources    []string              `bun:"affected_resources"`
	FunctionalAreas      []string              `bun:"functional_areas"`
	Categories           []CategorySimplified  `bun:"categories"`
	ApplicablePlatforms  ApplicablePlatform    `bun:"applicable_platforms"`
}

type CWEListImport

type CWEListImport struct {
	Weaknesses struct {
		XMLName    xml.Name      `xml:"Weaknesses"`
		Weaknesses []WeaknessCWE `xml:"Weakness"`
	} `xml:"Weaknesses"`
	Categories struct {
		XMLName    xml.Name   `xml:"Categories"`
		Categories []Category `xml:"Category"`
	} `xml:"Categories"`
}

type Category

type Category struct {
	XMLName xml.Name `xml:"Category"`
	Text    string   `xml:",chardata"`
	ID      string   `xml:"ID,attr"`
	Name    string   `xml:"Name,attr"`
	Status  string   `xml:"Status,attr"`
	Summary string   `xml:"Summary"`
	Notes   struct {
		Text string `xml:",chardata"`
		Note []struct {
			Text string   `xml:",chardata"`
			Type string   `xml:"Type,attr"`
			P    []string `xml:"p"`
			Ul   struct {
				Text string   `xml:",chardata"`
				Li   []string `xml:"li"`
			} `xml:"ul"`
		} `xml:"Note"`
	} `xml:"Notes"`
	ContentHistory struct {
		Text       string `xml:",chardata"`
		Submission struct {
			Text                   string `xml:",chardata"`
			SubmissionName         string `xml:"Submission_Name"`
			SubmissionDate         string `xml:"Submission_Date"`
			SubmissionComment      string `xml:"Submission_Comment"`
			SubmissionOrganization string `xml:"Submission_Organization"`
		} `xml:"Submission"`
		Modification []struct {
			Text                     string `xml:",chardata"`
			ModificationName         string `xml:"Modification_Name"`
			ModificationOrganization string `xml:"Modification_Organization"`
			ModificationDate         string `xml:"Modification_Date"`
			ModificationComment      string `xml:"Modification_Comment"`
		} `xml:"Modification"`
		PreviousEntryName []struct {
			Text string `xml:",chardata"`
			Date string `xml:"Date,attr"`
		} `xml:"Previous_Entry_Name"`
		Contribution []struct {
			Text                     string `xml:",chardata"`
			Type                     string `xml:"Type,attr"`
			ContributionName         string `xml:"Contribution_Name"`
			ContributionOrganization string `xml:"Contribution_Organization"`
			ContributionDate         string `xml:"Contribution_Date"`
			ContributionComment      string `xml:"Contribution_Comment"`
		} `xml:"Contribution"`
	} `xml:"Content_History"`
	Relationships struct {
		Text      string `xml:",chardata"`
		HasMember []struct {
			Text   string `xml:",chardata"`
			CWEID  string `xml:"CWE_ID,attr"`
			ViewID string `xml:"View_ID,attr"`
		} `xml:"Has_Member"`
	} `xml:"Relationships"`
	References struct {
		Text      string `xml:",chardata"`
		Reference []struct {
			Text                string `xml:",chardata"`
			ExternalReferenceID string `xml:"External_Reference_ID,attr"`
			Section             string `xml:"Section,attr"`
		} `xml:"Reference"`
	} `xml:"References"`
	TaxonomyMappings struct {
		Text            string `xml:",chardata"`
		TaxonomyMapping []struct {
			Text         string `xml:",chardata"`
			TaxonomyName string `xml:"Taxonomy_Name,attr"`
			EntryID      string `xml:"Entry_ID"`
			EntryName    string `xml:"Entry_Name"`
			MappingFit   string `xml:"Mapping_Fit"`
		} `xml:"Taxonomy_Mapping"`
	} `xml:"Taxonomy_Mappings"`
}

type CategorySimplified

type CategorySimplified struct {
	ID   string `json:"ID"`
	Name string `json:"Name"`
}

type CommonConsequence

type CommonConsequence struct {
	Scope      []string `json:"Scope"`
	Impact     []string `json:"Impact"`
	Note       string   `json:"Note"`
	Likelihood string   `json:"Likelihood"`
}

type Configuration

type Configuration struct {
	Nodes []Node `json:"nodes"`
}

type Credit

type Credit struct {
	Name    string   `json:"name"`
	Contact []string `json:"contact"`
	Type    string   `json:"type"`
}

func (*Credit) UnmarshalJSON

func (c *Credit) UnmarshalJSON(data []byte) error

Custom unmarshaler for Credit to handle both single string and slice of strings

type CriteriaDict

type CriteriaDict struct {
	Part      string `json:"part"`
	Vendor    string `json:"vendor"`
	Product   string `json:"product"`
	Version   string `json:"version"`
	Update    string `json:"update"`
	Edition   string `json:"edition"`
	Language  string `json:"language"`
	SwEdition string `json:"sw_edition"`
	TargetSw  string `json:"target_sw"`
	TargetHw  string `json:"target_hw"`
	Other     string `json:"other"`
}

type CrossRef

type CrossRef struct {
	IsLive        bool      `json:"isLive"`
	IsValid       bool      `json:"isValid"`
	IsWayBackLink bool      `json:"isWayBackLink"`
	Match         string    `json:"match"`
	Order         int       `json:"order"`
	Timestamp     time.Time `json:"timestamp"`
	URL           string    `json:"url"`
}

type Descriptions

type Descriptions struct {
	Lang  string `json:"lang"`
	Value string `json:"value"`
}

type Details

type Details struct {
	CrossRef                    []CrossRef        `json:"crossRef"`
	IsDeprecatedLicenseID       bool              `json:"isDeprecatedLicenseId"`
	IsOsiApproved               bool              `json:"isOsiApproved"`
	LicenseID                   string            `json:"licenseId"`
	LicenseText                 string            `json:"licenseText"`
	LicenseTextHTML             string            `json:"licenseTextHtml"`
	LicenseTextNormalized       string            `json:"licenseTextNormalized"`
	LicenseTextNormalizedDigest string            `json:"licenseTextNormalizedDigest"`
	Name                        string            `json:"name"`
	SeeAlso                     []string          `json:"seeAlso"`
	StandardLicenseTemplate     string            `json:"standardLicenseTemplate"`
	Description                 string            `json:"description"`
	Classification              string            `json:"classification"`
	LicenseProperties           LicenseProperties `json:"licenseProperties"`
}

type DetectionMethod

type DetectionMethod struct {
	Method      string
	Description string
}

type EPSS

type EPSS struct {
	bun.BaseModel `bun:"table:epss,alias:n"`
	Id            uuid.UUID `bun:",pk,autoincrement,type:uuid,default:uuid_generate_v4()"`
	CVE           string    `bun:"cve" json:"cve"`
	Score         float32   `bun:"score" json:"score"`
	Percentile    float32   `bun:"percentile" json:"percentile"`
}

type Event

type Event struct {
	Introduced    string `json:"introduced"`
	Fixed         string `json:"fixed"`
	Last_affected string `json:"last_affected"`
	Limit         string `json:"limit"`
}

type FriendsOfPHPAdvisory

type FriendsOfPHPAdvisory struct {
	bun.BaseModel `bun:"table:friends_of_php,alias:fop"`
	Id            uuid.UUID                 `bun:",pk,autoincrement,type:uuid,default:uuid_generate_v4()"`
	AdvisoryId    string                    `bun:"advisory_id,unique" json:"advisory_id"`
	Title         string                    `bun:"title" json:"title"`
	CVE           string                    `bun:"cve" json:"cve,omitempty"`
	Link          string                    `bun:"link" json:"link"`
	Reference     string                    `bun:"reference" json:"reference"`
	Composer      string                    `bun:"composer" json:"composer,omitempty"`
	Description   string                    `bun:"description" json:"description,omitempty"`
	Branches      map[string]AdvisoryBranch `bun:"branches,type:jsonb" json:"branches"`
	Published     string                    `bun:"published" json:"published"`
	Modified      string                    `bun:"modified" json:"modified"`
}

FriendsOfPHPAdvisory represents a security advisory from FriendsOfPHP Security Advisories Database

func (*FriendsOfPHPAdvisory) GetAffectedPackages

func (f *FriendsOfPHPAdvisory) GetAffectedPackages() []FriendsOfPHPAffected

GetAffectedPackages converts branch information to affected packages format

type FriendsOfPHPAffected

type FriendsOfPHPAffected struct {
	PackageName      string   `json:"package_name"`
	Ecosystem        string   `json:"ecosystem"`
	AffectedVersions []string `json:"affected_versions"`
}

FriendsOfPHPAffected represents affected packages for vulnerability matching

type ImpactMetricV2

type ImpactMetricV2 struct {
	AcInsufInfo             bool    `json:"acInsufInfo"`
	BaseSeverity            string  `json:"baseSeverity"`
	CvssData                CVSSV2  `json:"cvssData"`
	ExploitabilityScore     float64 `json:"exploitabilityScore"`
	ImpactScore             float64 `json:"impactScore"`
	ObtainAllPrivilege      bool    `json:"obtainAllPrivilege"`
	ObtainOtherPrivilege    bool    `json:"obtainOtherPrivilege"`
	ObtainUserPrivilege     bool    `json:"obtainUserPrivilege"`
	Source                  string  `json:"source"`
	Type                    string  `json:"type"`
	UserInteractionRequired bool    `json:"userInteractionRequired"`
}

type ImpactMetricV30

type ImpactMetricV30 struct {
	CvssData            CVSS3   `json:"cvssData"`
	ExploitabilityScore float64 `json:"exploitabilityScore"`
	ImpactScore         float64 `json:"impactScore"`
	Source              string  `json:"source"`
	Type                string  `json:"type"`
}

type ImpactMetricV31

type ImpactMetricV31 struct {
	CvssData            CVSS3   `json:"cvssData"`
	ExploitabilityScore float64 `json:"exploitabilityScore"`
	ImpactScore         float64 `json:"impactScore"`
	Source              string  `json:"source"`
	Type                string  `json:"type"`
}

type License

type License struct {
	bun.BaseModel         `bun:"table:licenses,alias:l"`
	Id                    uuid.UUID `bun:",pk,autoincrement,type:uuid,default:uuid_generate_v4()"`
	Reference             string    `bun:"reference"`
	IsDeprecatedLicenseID bool      `bun:"isDeprecatedLicenseId"`
	DetailsURL            string    `bun:"detailsUrl"`
	Details               Details   `bun:"details"`
	ReferenceNumber       int       `bun:"referenceNumber"`
	Name                  string    `bun:"name"`
	LicenseID             string    `bun:"licenseId"`
	SeeAlso               []string  `bun:"seeAlso"`
	IsOsiApproved         bool      `bun:"isOsiApproved"`
}

func GetDetails

func GetDetails(licenses []License) []License

type LicenseList

type LicenseList struct {
	LicenseListVersion string    `json:"licenseListVersion"`
	Licenses           []License `json:"licenses"`
	Date               string    `json:"releaseDate"`
}

type LicenseNpm

type LicenseNpm struct {
	Type string `json:"type"`
	Url  string `json:"url"`
}

type LicensePolicy

type LicensePolicy struct {
	DisallowedLicense []string `json:"disallowed_licenses"`
}

type LicenseProperties

type LicenseProperties struct {
	Permissions []string `json:"permissions"`
	Conditions  []string `json:"conditions"`
	Limitations []string `json:"limitations"`
}

type LinkLicensePackage

type LinkLicensePackage struct {
	FromKey    string `json:"packageKey"`
	LicenseKey string `json:"licenseKey"`
}

type Metrics

type Metrics struct {
	CvssMetricV2  []ImpactMetricV2  `json:"cvssMetricV2"`
	CvssMetricV30 []ImpactMetricV30 `json:"cvssMetricV30"`
	CvssMetricV31 []ImpactMetricV31 `json:"cvssMetricV31"`
}

type ModesOfIntroduction

type ModesOfIntroduction struct {
	Phase string `json:"Phase"`
	Note  string `json:"Note"`
}

type NVD

type NVD struct {
	Vulnerabilities []map[string]NVDItem `json:"vulnerabilities"`
}

type NVDAffected

type NVDAffected struct {
	Sources                   []Sources `json:"sources"`
	RunningOn                 []Sources `json:"running-on"`
	RunningOnApplicationsOnly []Sources `json:"running-on-applications-only"`
}

type NVDItem

type NVDItem struct {
	bun.BaseModel     `bun:"table:nvd,alias:n"`
	Id                uuid.UUID       `bun:",pk,autoincrement,type:uuid,default:uuid_generate_v4()"`
	NVDId             string          `bun:"nvd_id" json:"id"`
	SourceIdentifier  string          `bun:"sourceIdentifier"`
	Published         string          `bun:"published"`
	LastModified      string          `bun:"lastModified"`
	VulnStatus        string          `bun:"vulnStatus"`
	Descriptions      []Descriptions  `bun:"descriptions"`
	Vlai_score        string          `bun:"vlai_score"`
	Vlai_confidence   float64         `bun:"vlai_confidence"`
	Metrics           Metrics         `bun:"metrics"`
	Weaknesses        []Weaknesses    `bun:"weaknesses"`
	Configurations    []Configuration `bun:"configurations"`
	AffectedFlattened []Sources       `bun:"affectedFlattened"`
	Affected          []NVDAffected   `bun:"affected"`
	References        []References    `bun:"references"`
}

func GetVulns

func GetVulns(nvd NVD) []NVDItem

type Node

type Node struct {
	Operator string    `json:"operator"`
	Negate   bool      `json:"negate"`
	CpeMatch []Sources `json:"cpematch"`
	Children []Node    `json:"children"`
}

type OSVItem

type OSVItem struct {
	bun.BaseModel    `bun:"table:osv,alias:o"`
	Id               uuid.UUID      `bun:",pk,autoincrement,type:uuid,default:uuid_generate_v4()"`
	OSVId            string         `json:"id" bun:"osv_id"`
	Schema_version   string         `json:"schema_version" bun:"schema_version"`
	Vlai_score       string         `bun:"vlai_score"`
	Vlai_confidence  float64        `bun:"vlai_confidence"`
	Modified         string         `json:"modified" bun:"modified"`
	Published        string         `json:"published" bun:"published"`
	Withdrawn        string         `json:"withdrawn" bun:"withdrawn"`
	Aliases          []string       `json:"aliases" bun:"aliases"`
	Related          []string       `json:"related" bun:"related"`
	Summary          string         `json:"summary" bun:"summary"`
	Details          string         `json:"details" bun:"details"`
	Severity         []Severity     `json:"severity" bun:"severity"`
	Affected         []Affected     `json:"affected" bun:"affected"`
	References       []Reference    `json:"references" bun:"references"`
	Credits          []Credit       `json:"credits" bun:"credits"`
	DatabaseSpecific map[string]any `json:"database_specific" bun:"database_specific"`
	Cwes             []string       `json:"cwes" bun:"cwes"`
	Cve              string         `json:"cve" bun:"cve"`
}

type OSVPackage

type OSVPackage struct {
	Ecosystem string `json:"ecosystem"`
	Name      string `json:"name"`
	Purl      string `json:"purl"`
}

type ObservedExamples

type ObservedExamples struct {
	Reference   string `json:"Reference"`
	Description string `json:"Description"`
	Link        string `json:"Link"`
}

type Package

type Package struct {
	bun.BaseModel `bun:"table:package,alias:p"`
	Id            uuid.UUID      `bun:",pk,autoincrement,type:uuid,default:uuid_generate_v4()"`
	Name          string         `bun:"name"`
	Language      string         `bun:"language"`
	Description   string         `bun:"description"`
	Homepage      string         `bun:"homepage"`
	LatestVersion string         `bun:"latest_version"`
	Versions      []Version      `bun:"versions,rel:has-many,join:id=package_id"`
	Time          time.Time      `bun:"time"`
	Keywords      []string       `bun:"keywords"`
	Source        Source         `bun:"source"`
	License       string         `json:"license"`
	Licenses      []LicenseNpm   `json:"licenses"`
	Extra         map[string]any `bun:"extra"`
}

type PotentialMitigation

type PotentialMitigation struct {
	Phases      []string `json:"Phase"`
	Description string   `json:"Description"`
}

type Range

type Range struct {
	Type             string         `json:"type"`
	Repo             string         `json:"repo"`
	Events           []Event        `json:"events"`
	DatabaseSpecific map[string]any `json:"database_specific"`
}

type Reference

type Reference struct {
	Type string `json:"type"`
	Url  string `json:"url"`
}

type References

type References struct {
	URL    string   `json:"url"`
	Source string   `json:"source"`
	Tags   []string `json:"tags"`
}

type RelatedAttackPattern

type RelatedAttackPattern struct {
	CapecID string `json:"CapecID"`
}

type RelatedWeakness

type RelatedWeakness struct {
	Nature  string `json:"Nature"`
	CWEID   string `json:"CWE_ID"`
	ViewID  string `json:"View_ID"`
	Ordinal string `json:"Ordinal"`
	ChainID string `json:"Chain_ID"`
}

type Severity

type Severity struct {
	Type  string `json:"type"`
	Score string `json:"score"`
}

type Source

type Source struct {
	Url  string `json:"Url"`
	Type string `json:"Type"`
}

type Sources

type Sources struct {
	Vulnerable            bool         `json:"vulnerable"`
	Criteria              string       `json:"criteria"`
	MatchCriteriaID       string       `json:"matchCriteriaId"`
	VersionEndIncluding   string       `json:"versionEndIncluding"`
	VersionEndExcluding   string       `json:"versionEndExcluding"`
	VersionStartIncluding string       `json:"versionStartIncluding"`
	VersionStartExcluding string       `json:"versionStartExcluding"`
	CriteriaDict          CriteriaDict `json:"criteriaDict"`
}

type TaxonomyMapping

type TaxonomyMapping struct {
	TaxonomyName string `json:"TaxonomyName"`
	EntryID      string `json:"EntryID"`
	EntryName    string `json:"EntryName"`
	MappingFit   string `json:"MappingFit"`
}

type Version

type Version struct {
	bun.BaseModel   `bun:"table:version,alias:v"`
	Id              uuid.UUID         `bun:",pk,autoincrement,type:uuid,default:uuid_generate_v4()"`
	PackageID       uuid.UUID         `bun:"package_id,type:uuid"`
	Version         string            `bun:"version"`
	Dependencies    map[string]string `bun:"dependencies"`
	DevDependencies map[string]string `bun:"dev_dependencies"`
	Extra           map[string]any    `bun:"extra"`
	CreatedAt       time.Time         `bun:"created_at"`
	UpdatedAt       time.Time         `bun:"updated_at"`
}

type VersionEdge

type VersionEdge struct{}

type WeaknessCWE

type WeaknessCWE struct {
	XMLName             xml.Name `xml:"Weakness"`
	Text                string   `xml:",chardata"`
	ID                  string   `xml:"ID,attr"`
	Name                string   `xml:"Name,attr"`
	Abstraction         string   `xml:"Abstraction,attr"`
	Structure           string   `xml:"Structure,attr"`
	Status              string   `xml:"Status,attr"`
	Description         string   `xml:"Description"`
	MemberShips         []string
	ExtendedDescription struct {
		Text string   `xml:",chardata"`
		P    []string `xml:"p"`
		Ul   []struct {
			Text string `xml:",chardata"`
			Li   []struct {
				Text string `xml:",chardata"`
				Div  struct {
					Text string `xml:",chardata"`
					B    string `xml:"b"`
				} `xml:"div"`
				B string `xml:"b"`
			} `xml:"li"`
		} `xml:"ul"`
		Ol struct {
			Text string   `xml:",chardata"`
			Li   []string `xml:"li"`
		} `xml:"ol"`
		Br  []string `xml:"br"`
		Div struct {
			Text  string   `xml:",chardata"`
			Style string   `xml:"style,attr"`
			Div   []string `xml:"div"`
		} `xml:"div"`
	} `xml:"Extended_Description"`
	RelatedWeaknesses struct {
		Text            string `xml:",chardata"`
		RelatedWeakness []struct {
			Text    string `xml:",chardata"`
			Nature  string `xml:"Nature,attr"`
			CWEID   string `xml:"CWE_ID,attr"`
			ViewID  string `xml:"View_ID,attr"`
			Ordinal string `xml:"Ordinal,attr"`
			ChainID string `xml:"Chain_ID,attr"`
		} `xml:"Related_Weakness"`
	} `xml:"Related_Weaknesses"`
	ApplicablePlatforms struct {
		Text     string `xml:",chardata"`
		Language []struct {
			Text       string `xml:",chardata"`
			Class      string `xml:"Class,attr"`
			Prevalence string `xml:"Prevalence,attr"`
			Name       string `xml:"Name,attr"`
		} `xml:"Language"`
		Technology []struct {
			Text       string `xml:",chardata"`
			Class      string `xml:"Class,attr"`
			Prevalence string `xml:"Prevalence,attr"`
			Name       string `xml:"Name,attr"`
		} `xml:"Technology"`
		OperatingSystem []struct {
			Text       string `xml:",chardata"`
			Class      string `xml:"Class,attr"`
			Prevalence string `xml:"Prevalence,attr"`
			Name       string `xml:"Name,attr"`
		} `xml:"Operating_System"`
		Architecture []struct {
			Text       string `xml:",chardata"`
			Class      string `xml:"Class,attr"`
			Prevalence string `xml:"Prevalence,attr"`
			Name       string `xml:"Name,attr"`
		} `xml:"Architecture"`
	} `xml:"Applicable_Platforms"`
	BackgroundDetails struct {
		Text             string `xml:",chardata"`
		BackgroundDetail struct {
			Text string   `xml:",chardata"`
			P    []string `xml:"p"`
			Ul   struct {
				Text string   `xml:",chardata"`
				Li   []string `xml:"li"`
			} `xml:"ul"`
			Div struct {
				Text  string `xml:",chardata"`
				Style string `xml:"style,attr"`
				Br    string `xml:"br"`
			} `xml:"div"`
		} `xml:"Background_Detail"`
	} `xml:"Background_Details"`
	ModesOfIntroduction struct {
		Text         string `xml:",chardata"`
		Introduction []struct {
			Text  string `xml:",chardata"`
			Phase string `xml:"Phase"`
			Note  struct {
				Text string   `xml:",chardata"`
				P    []string `xml:"p"`
				Ul   []struct {
					Text string   `xml:",chardata"`
					Li   []string `xml:"li"`
				} `xml:"ul"`
			} `xml:"Note"`
		} `xml:"Introduction"`
	} `xml:"Modes_Of_Introduction"`
	LikelihoodOfExploit string `xml:"Likelihood_Of_Exploit"`
	CommonConsequences  struct {
		Text        string `xml:",chardata"`
		Consequence []struct {
			Text       string   `xml:",chardata"`
			Scope      []string `xml:"Scope"`
			Impact     []string `xml:"Impact"`
			Note       string   `xml:"Note"`
			Likelihood string   `xml:"Likelihood"`
		} `xml:"Consequence"`
	} `xml:"Common_Consequences"`
	DetectionMethods struct {
		Text            string `xml:",chardata"`
		DetectionMethod []struct {
			Text              string `xml:",chardata"`
			DetectionMethodID string `xml:"Detection_Method_ID,attr"`
			Method            string `xml:"Method"`
			Description       struct {
				Text string   `xml:",chardata"`
				P    []string `xml:"p"`
				Div  struct {
					Text  string   `xml:",chardata"`
					Style string   `xml:"style,attr"`
					Div   []string `xml:"div"`
					Ul    []struct {
						Text string   `xml:",chardata"`
						Li   []string `xml:"li"`
					} `xml:"ul"`
				} `xml:"div"`
				Ul []struct {
					Text string   `xml:",chardata"`
					Li   []string `xml:"li"`
				} `xml:"ul"`
			} `xml:"Description"`
			Effectiveness      string `xml:"Effectiveness"`
			EffectivenessNotes string `xml:"Effectiveness_Notes"`
		} `xml:"Detection_Method"`
	} `xml:"Detection_Methods"`
	PotentialMitigations struct {
		Text       string `xml:",chardata"`
		Mitigation []struct {
			Text         string   `xml:",chardata"`
			MitigationID string   `xml:"Mitigation_ID,attr"`
			Phase        []string `xml:"Phase"`
			Description  struct {
				Text string   `xml:",chardata"`
				P    []string `xml:"p"`
				Ul   []struct {
					Text string   `xml:",chardata"`
					Li   []string `xml:"li"`
				} `xml:"ul"`
				Div struct {
					Text  string   `xml:",chardata"`
					Style string   `xml:"style,attr"`
					Div   []string `xml:"div"`
				} `xml:"div"`
			} `xml:"Description"`
			Effectiveness      string `xml:"Effectiveness"`
			EffectivenessNotes struct {
				Text string `xml:",chardata"`
				P    string `xml:"p"`
			} `xml:"Effectiveness_Notes"`
			Strategy string `xml:"Strategy"`
		} `xml:"Mitigation"`
	} `xml:"Potential_Mitigations"`
	ObservedExamples struct {
		Text            string `xml:",chardata"`
		ObservedExample []struct {
			Text        string `xml:",chardata"`
			Reference   string `xml:"Reference"`
			Description string `xml:"Description"`
			Link        string `xml:"Link"`
		} `xml:"Observed_Example"`
	} `xml:"Observed_Examples"`
	References struct {
		Text      string `xml:",chardata"`
		Reference []struct {
			Text                string `xml:",chardata"`
			ExternalReferenceID string `xml:"External_Reference_ID,attr"`
			Section             string `xml:"Section,attr"`
		} `xml:"Reference"`
	} `xml:"References"`
	ContentHistory struct {
		Text       string `xml:",chardata"`
		Submission struct {
			Text                   string `xml:",chardata"`
			SubmissionName         string `xml:"Submission_Name"`
			SubmissionOrganization string `xml:"Submission_Organization"`
			SubmissionDate         string `xml:"Submission_Date"`
			SubmissionComment      string `xml:"Submission_Comment"`
		} `xml:"Submission"`
		Modification []struct {
			Text                     string `xml:",chardata"`
			ModificationName         string `xml:"Modification_Name"`
			ModificationOrganization string `xml:"Modification_Organization"`
			ModificationDate         string `xml:"Modification_Date"`
			ModificationComment      string `xml:"Modification_Comment"`
			ModificationImportance   string `xml:"Modification_Importance"`
		} `xml:"Modification"`
		PreviousEntryName []struct {
			Text string `xml:",chardata"`
			Date string `xml:"Date,attr"`
		} `xml:"Previous_Entry_Name"`
		Contribution []struct {
			Text                     string `xml:",chardata"`
			Type                     string `xml:"Type,attr"`
			ContributionName         string `xml:"Contribution_Name"`
			ContributionDate         string `xml:"Contribution_Date"`
			ContributionComment      string `xml:"Contribution_Comment"`
			ContributionOrganization string `xml:"Contribution_Organization"`
		} `xml:"Contribution"`
	} `xml:"Content_History"`
	WeaknessOrdinalities struct {
		Text               string `xml:",chardata"`
		WeaknessOrdinality []struct {
			Text        string `xml:",chardata"`
			Ordinality  string `xml:"Ordinality"`
			Description string `xml:"Description"`
		} `xml:"Weakness_Ordinality"`
	} `xml:"Weakness_Ordinalities"`
	AlternateTerms struct {
		Text          string `xml:",chardata"`
		AlternateTerm []struct {
			Text        string `xml:",chardata"`
			Term        string `xml:"Term"`
			Description struct {
				Text string   `xml:",chardata"`
				P    []string `xml:"p"`
				Ul   []struct {
					Text string   `xml:",chardata"`
					Li   []string `xml:"li"`
				} `xml:"ul"`
			} `xml:"Description"`
		} `xml:"Alternate_Term"`
	} `xml:"Alternate_Terms"`
	RelatedAttackPatterns struct {
		Text                 string `xml:",chardata"`
		RelatedAttackPattern []struct {
			Text    string `xml:",chardata"`
			CAPECID string `xml:"CAPEC_ID,attr"`
		} `xml:"Related_Attack_Pattern"`
	} `xml:"Related_Attack_Patterns"`
	TaxonomyMappings struct {
		Text            string `xml:",chardata"`
		TaxonomyMapping []struct {
			Text         string `xml:",chardata"`
			TaxonomyName string `xml:"Taxonomy_Name,attr"`
			EntryName    string `xml:"Entry_Name"`
			EntryID      string `xml:"Entry_ID"`
			MappingFit   string `xml:"Mapping_Fit"`
		} `xml:"Taxonomy_Mapping"`
	} `xml:"Taxonomy_Mappings"`
	Notes struct {
		Text string `xml:",chardata"`
		Note []struct {
			Text string   `xml:",chardata"`
			Type string   `xml:"Type,attr"`
			P    []string `xml:"p"`
			Ul   struct {
				Text string   `xml:",chardata"`
				Li   []string `xml:"li"`
			} `xml:"ul"`
			Div struct {
				Text  string   `xml:",chardata"`
				Style string   `xml:"style,attr"`
				Div   []string `xml:"div"`
			} `xml:"div"`
		} `xml:"Note"`
	} `xml:"Notes"`
	AffectedResources struct {
		Text             string   `xml:",chardata"`
		AffectedResource []string `xml:"Affected_Resource"`
	} `xml:"Affected_Resources"`
	FunctionalAreas struct {
		Text           string   `xml:",chardata"`
		FunctionalArea []string `xml:"Functional_Area"`
	} `xml:"Functional_Areas"`
}

type Weaknesses

type Weaknesses struct {
	Source       string         `json:"source"`
	Type         string         `json:"type"`
	Descriptions []Descriptions `json:"descriptions"`
}

Jump to

Keyboard shortcuts

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