feat(os): support Amazon Linux 2023 (#1621)

This commit is contained in:
MaineK00n
2023-03-16 17:31:57 +09:00
committed by GitHub
parent 984debe929
commit 6682232b5c
5 changed files with 188 additions and 32 deletions

View File

@@ -68,12 +68,15 @@ func (o RedHatBase) FillWithOval(r *models.ScanResult) (nCVEs int, err error) {
for _, d := range vuln.DistroAdvisories {
if conts, ok := vuln.CveContents[models.Amazon]; ok {
for i, cont := range conts {
if strings.HasPrefix(d.AdvisoryID, "ALAS2022-") {
cont.SourceLink = fmt.Sprintf("https://alas.aws.amazon.com/AL2022/%s.html", strings.ReplaceAll(d.AdvisoryID, "ALAS2022", "ALAS"))
} else if strings.HasPrefix(d.AdvisoryID, "ALAS2-") {
cont.SourceLink = fmt.Sprintf("https://alas.aws.amazon.com/AL2/%s.html", strings.ReplaceAll(d.AdvisoryID, "ALAS2", "ALAS"))
} else if strings.HasPrefix(d.AdvisoryID, "ALAS-") {
switch {
case strings.HasPrefix(d.AdvisoryID, "ALAS-"):
cont.SourceLink = fmt.Sprintf("https://alas.aws.amazon.com/%s.html", d.AdvisoryID)
case strings.HasPrefix(d.AdvisoryID, "ALAS2-"):
cont.SourceLink = fmt.Sprintf("https://alas.aws.amazon.com/AL2/%s.html", strings.ReplaceAll(d.AdvisoryID, "ALAS2", "ALAS"))
case strings.HasPrefix(d.AdvisoryID, "ALAS2022-"):
cont.SourceLink = fmt.Sprintf("https://alas.aws.amazon.com/AL2022/%s.html", strings.ReplaceAll(d.AdvisoryID, "ALAS2022", "ALAS"))
case strings.HasPrefix(d.AdvisoryID, "ALAS2023-"):
cont.SourceLink = fmt.Sprintf("https://alas.aws.amazon.com/AL2023/%s.html", strings.ReplaceAll(d.AdvisoryID, "ALAS2023", "ALAS"))
}
vuln.CveContents[models.Amazon][i] = cont
}

View File

@@ -112,13 +112,25 @@ func getDefsByPackNameViaHTTP(r *models.ScanResult, url string) (relatedDefs ova
case constant.CentOS:
ovalRelease = strings.TrimPrefix(r.Release, "stream")
case constant.Amazon:
switch strings.Fields(r.Release)[0] {
case "2022":
ovalRelease = "2022"
switch s := strings.Fields(r.Release)[0]; s {
case "1":
ovalRelease = "1"
case "2":
ovalRelease = "2"
case "2022":
ovalRelease = "2022"
case "2023":
ovalRelease = "2023"
case "2025":
ovalRelease = "2025"
case "2027":
ovalRelease = "2027"
case "2029":
ovalRelease = "2029"
default:
ovalRelease = "1"
if _, err := time.Parse("2006.01", s); err == nil {
ovalRelease = "1"
}
}
}
@@ -274,13 +286,25 @@ func getDefsByPackNameFromOvalDB(r *models.ScanResult, driver ovaldb.DB) (relate
case constant.CentOS:
ovalRelease = strings.TrimPrefix(r.Release, "stream")
case constant.Amazon:
switch strings.Fields(r.Release)[0] {
case "2022":
ovalRelease = "2022"
switch s := strings.Fields(r.Release)[0]; s {
case "1":
ovalRelease = "1"
case "2":
ovalRelease = "2"
case "2022":
ovalRelease = "2022"
case "2023":
ovalRelease = "2023"
case "2025":
ovalRelease = "2025"
case "2027":
ovalRelease = "2027"
case "2029":
ovalRelease = "2029"
default:
ovalRelease = "1"
if _, err := time.Parse("2006.01", s); err == nil {
ovalRelease = "1"
}
}
}