Use CVSS seveirty of distro advisory when no entiry in NVD and OVAL
This commit is contained in:
		@@ -158,10 +158,13 @@ func fillWithOval(r *models.ScanResult) (err error) {
 | 
			
		||||
		ovalClient = oval.NewCentOS()
 | 
			
		||||
		//use RedHat's OVAL
 | 
			
		||||
		ovalFamily = c.RedHat
 | 
			
		||||
	//TODO implement OracleLinux
 | 
			
		||||
		//TODO
 | 
			
		||||
	// case c.Oracle:
 | 
			
		||||
	// ovalClient = oval.New()
 | 
			
		||||
	// ovalFamily = c.Oracle
 | 
			
		||||
	// case c.Suse:
 | 
			
		||||
	// ovalClient = oval.New()
 | 
			
		||||
	// ovalFamily = c.Oracle
 | 
			
		||||
	case c.Amazon, c.Oracle, c.Raspbian, c.FreeBSD:
 | 
			
		||||
		return nil
 | 
			
		||||
	default:
 | 
			
		||||
 
 | 
			
		||||
@@ -216,7 +216,7 @@ func toSlackAttachments(r models.ScanResult) (attaches []*attachment) {
 | 
			
		||||
					Short: true,
 | 
			
		||||
				},
 | 
			
		||||
			},
 | 
			
		||||
			Color: color(vinfo.CveContents.MaxCvssScore().Value.Score),
 | 
			
		||||
			Color: color(vinfo.MaxCvssScore().Value.Score),
 | 
			
		||||
		}
 | 
			
		||||
		attaches = append(attaches, &a)
 | 
			
		||||
	}
 | 
			
		||||
@@ -238,9 +238,9 @@ func color(cvssScore float64) string {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func attachmentText(vinfo models.VulnInfo, osFamily string) string {
 | 
			
		||||
	maxCvss := vinfo.CveContents.MaxCvssScore()
 | 
			
		||||
	maxCvss := vinfo.MaxCvssScore()
 | 
			
		||||
	vectors := []string{}
 | 
			
		||||
	for _, cvss := range vinfo.CveContents.Cvss2Scores() {
 | 
			
		||||
	for _, cvss := range vinfo.Cvss2Scores() {
 | 
			
		||||
		calcURL := ""
 | 
			
		||||
		switch cvss.Value.Type {
 | 
			
		||||
		case models.CVSS2:
 | 
			
		||||
 
 | 
			
		||||
@@ -641,7 +641,7 @@ func summaryLines() string {
 | 
			
		||||
		summary := vinfo.CveContents.Summaries(
 | 
			
		||||
			config.Conf.Lang, currentScanResult.Family)[0].Value
 | 
			
		||||
		cvssScore := fmt.Sprintf("| %4.1f",
 | 
			
		||||
			vinfo.CveContents.MaxCvssScore().Value.Score)
 | 
			
		||||
			vinfo.MaxCvssScore().Value.Score)
 | 
			
		||||
 | 
			
		||||
		var cols []string
 | 
			
		||||
		cols = []string{
 | 
			
		||||
@@ -794,7 +794,7 @@ func detailLines() (string, error) {
 | 
			
		||||
 | 
			
		||||
	data := dataForTmpl{
 | 
			
		||||
		CveID:      vinfo.CveID,
 | 
			
		||||
		Cvsses:     append(vinfo.CveContents.Cvss3Scores(), vinfo.CveContents.Cvss2Scores()...),
 | 
			
		||||
		Cvsses:     append(vinfo.Cvss3Scores(), vinfo.Cvss2Scores()...),
 | 
			
		||||
		Summary:    fmt.Sprintf("%s (%s)", summary.Value, summary.Type),
 | 
			
		||||
		Confidence: vinfo.Confidence,
 | 
			
		||||
		Cwes:       vinfo.CveContents.CweIDs(r.Family),
 | 
			
		||||
@@ -818,7 +818,7 @@ const mdTemplate = `
 | 
			
		||||
CVSS Scores
 | 
			
		||||
--------------
 | 
			
		||||
{{range .Cvsses -}}
 | 
			
		||||
* {{.Value.Format}} ({{.Type}})
 | 
			
		||||
* {{.Value.Severity}} {{.Value.Format}} ({{.Type}})
 | 
			
		||||
{{end}}
 | 
			
		||||
 | 
			
		||||
Summary
 | 
			
		||||
 
 | 
			
		||||
@@ -120,18 +120,18 @@ func formatShortPlainText(r models.ScanResult) string {
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		cvsses := ""
 | 
			
		||||
		for _, cvss := range vuln.CveContents.Cvss2Scores() {
 | 
			
		||||
		for _, cvss := range vuln.Cvss2Scores() {
 | 
			
		||||
			cvsses += fmt.Sprintf("%s (%s)\n", cvss.Value.Format(), cvss.Type)
 | 
			
		||||
		}
 | 
			
		||||
		cvsses += vuln.Cvss2CalcURL() + "\n"
 | 
			
		||||
		for _, cvss := range vuln.CveContents.Cvss3Scores() {
 | 
			
		||||
		for _, cvss := range vuln.Cvss3Scores() {
 | 
			
		||||
			cvsses += fmt.Sprintf("%s (%s)\n", cvss.Value.Format(), cvss.Type)
 | 
			
		||||
		}
 | 
			
		||||
		if 0 < len(vuln.CveContents.Cvss3Scores()) {
 | 
			
		||||
		if 0 < len(vuln.Cvss3Scores()) {
 | 
			
		||||
			cvsses += vuln.Cvss3CalcURL() + "\n"
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		maxCvss := vuln.CveContents.FormatMaxCvssScore()
 | 
			
		||||
		maxCvss := vuln.FormatMaxCvssScore()
 | 
			
		||||
		rightCol := fmt.Sprintf(`%s
 | 
			
		||||
%s
 | 
			
		||||
---
 | 
			
		||||
@@ -186,17 +186,17 @@ func formatFullPlainText(r models.ScanResult) string {
 | 
			
		||||
	for _, vuln := range vulns.ToSortedSlice() {
 | 
			
		||||
		table.AddRow(vuln.CveID)
 | 
			
		||||
		table.AddRow("----------------")
 | 
			
		||||
		table.AddRow("Max Score", vuln.CveContents.FormatMaxCvssScore())
 | 
			
		||||
		for _, cvss := range vuln.CveContents.Cvss2Scores() {
 | 
			
		||||
		table.AddRow("Max Score", vuln.FormatMaxCvssScore())
 | 
			
		||||
		for _, cvss := range vuln.Cvss2Scores() {
 | 
			
		||||
			table.AddRow(cvss.Type, cvss.Value.Format())
 | 
			
		||||
		}
 | 
			
		||||
		for _, cvss := range vuln.CveContents.Cvss3Scores() {
 | 
			
		||||
		for _, cvss := range vuln.Cvss3Scores() {
 | 
			
		||||
			table.AddRow(cvss.Type, cvss.Value.Format())
 | 
			
		||||
		}
 | 
			
		||||
		if 0 < len(vuln.CveContents.Cvss2Scores()) {
 | 
			
		||||
		if 0 < len(vuln.Cvss2Scores()) {
 | 
			
		||||
			table.AddRow("CVSSv2 Calc", vuln.Cvss2CalcURL())
 | 
			
		||||
		}
 | 
			
		||||
		if 0 < len(vuln.CveContents.Cvss3Scores()) {
 | 
			
		||||
		if 0 < len(vuln.Cvss3Scores()) {
 | 
			
		||||
			table.AddRow("CVSSv3 Calc", vuln.Cvss3CalcURL())
 | 
			
		||||
		}
 | 
			
		||||
		table.AddRow("Summary", vuln.CveContents.Summaries(
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user