Skip to content

Commit 90f1d8d

Browse files
authored
fix(oracle): add architectures support for advisories (#4809)
1 parent 51f2123 commit 90f1d8d

File tree

6 files changed

+86
-5
lines changed

6 files changed

+86
-5
lines changed

go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ require (
2424
github.com/aquasecurity/testdocker v0.0.0-20240730042311-4642e94c7fc8
2525
github.com/aquasecurity/tml v0.6.1
2626
github.com/aquasecurity/trivy-checks v1.4.0
27-
github.com/aquasecurity/trivy-db v0.0.0-20241120092622-333d808d7e45
27+
github.com/aquasecurity/trivy-db v0.0.0-20241209111357-8c398f13db0e
2828
github.com/aquasecurity/trivy-java-db v0.0.0-20240109071736-184bd7481d48
2929
github.com/aquasecurity/trivy-kubernetes v0.6.7-0.20241101182546-89bffc3932bc
3030
github.com/aws/aws-sdk-go-v2 v1.32.5

go.sum

+2-2
Original file line numberDiff line numberDiff line change
@@ -355,8 +355,8 @@ github.com/aquasecurity/tml v0.6.1 h1:y2ZlGSfrhnn7t4ZJ/0rotuH+v5Jgv6BDDO5jB6A9gw
355355
github.com/aquasecurity/tml v0.6.1/go.mod h1:OnYMWY5lvI9ejU7yH9LCberWaaTBW7hBFsITiIMY2yY=
356356
github.com/aquasecurity/trivy-checks v1.4.0 h1:XFGPuA8C4f31GO9g7xOkubHq4W87y9iXrWnulsIoZFs=
357357
github.com/aquasecurity/trivy-checks v1.4.0/go.mod h1:TSUbI3wBy9jgQl5lRUCR+B5pNiOxp6M26Jep8VCL/eM=
358-
github.com/aquasecurity/trivy-db v0.0.0-20241120092622-333d808d7e45 h1:ljinbg7JTQvdnzuRsPYS6btA51SyGYWKCQInxSIwbRw=
359-
github.com/aquasecurity/trivy-db v0.0.0-20241120092622-333d808d7e45/go.mod h1:Lg2avQhFy5qeGA0eMysI/61REVvWpEltverCarGc3l0=
358+
github.com/aquasecurity/trivy-db v0.0.0-20241209111357-8c398f13db0e h1:O5j5SeCNBrXApgBTOobO06q4LMxJxIhcSGE7H6Y154E=
359+
github.com/aquasecurity/trivy-db v0.0.0-20241209111357-8c398f13db0e/go.mod h1:gS8VhlNxhraiq60BBnJw9kGtjeMspQ9E8pX24jCL4jg=
360360
github.com/aquasecurity/trivy-java-db v0.0.0-20240109071736-184bd7481d48 h1:JVgBIuIYbwG+ekC5lUHUpGJboPYiCcxiz06RCtz8neI=
361361
github.com/aquasecurity/trivy-java-db v0.0.0-20240109071736-184bd7481d48/go.mod h1:Ldya37FLi0e/5Cjq2T5Bty7cFkzUDwTcPeQua+2M8i8=
362362
github.com/aquasecurity/trivy-kubernetes v0.6.7-0.20241101182546-89bffc3932bc h1:/mFBYIK9RY+L8s1CIbQbJ5B3v0YmoDSu5eAzavvMa+Y=

integration/testdata/fixtures/db/oracle.yaml

+6
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,14 @@
77
FixedVersion: "7.61.1-11.el8"
88
Entries:
99
- FixedVersion: "7.61.1-11.el8"
10+
Arches:
11+
- x86_64
12+
- aarch64
1013
- key: CVE-2019-5436
1114
value:
1215
FixedVersion: "7.61.1-12.el8"
1316
Entries:
1417
- FixedVersion: "7.61.1-12.el8"
18+
Arches:
19+
- x86_64
20+
- aarch64

pkg/detector/ospkg/oracle/oracle.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ func (s *Scanner) Detect(ctx context.Context, osVer string, _ *ftypes.Repository
5050

5151
var vulns []types.DetectedVulnerability
5252
for _, pkg := range pkgs {
53-
advisories, err := s.vs.Get(osVer, pkg.Name)
53+
advisories, err := s.vs.Get(osVer, pkg.Name, pkg.Arch)
5454
if err != nil {
5555
return nil, xerrors.Errorf("failed to get Oracle Linux advisory: %w", err)
5656
}

pkg/detector/ospkg/oracle/oracle_test.go

+54
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,60 @@ func TestScanner_Detect(t *testing.T) {
139139
},
140140
},
141141
},
142+
{
143+
name: "different fixed versions for different arches",
144+
fixtures: []string{
145+
"testdata/fixtures/oracle7.yaml",
146+
"testdata/fixtures/data-source.yaml",
147+
},
148+
args: args{
149+
osVer: "7",
150+
pkgs: []ftypes.Package{
151+
{
152+
Name: "rsyslog",
153+
Version: "8.24.0",
154+
Release: "57.0.0.el7",
155+
Arch: "x86_64",
156+
SrcName: "rsyslog",
157+
SrcVersion: "8.24.0",
158+
SrcRelease: "57.0.0.el7",
159+
},
160+
{
161+
Name: "rsyslog",
162+
Version: "8.24.0",
163+
Release: "57.0.0.el7",
164+
Arch: "aarch64",
165+
SrcName: "rsyslog",
166+
SrcVersion: "8.24.0",
167+
SrcRelease: "57.0.0.el7",
168+
},
169+
},
170+
},
171+
want: []types.DetectedVulnerability{
172+
{
173+
VulnerabilityID: "CVE-2022-24903",
174+
PkgName: "rsyslog",
175+
InstalledVersion: "8.24.0-57.0.0.el7",
176+
FixedVersion: "8.24.0-57.0.1.el7_9.3",
177+
DataSource: &dbTypes.DataSource{
178+
ID: vulnerability.OracleOVAL,
179+
Name: "Oracle Linux OVAL definitions",
180+
URL: "https://linux.oracle.com/security/oval/",
181+
},
182+
},
183+
{
184+
VulnerabilityID: "CVE-2022-24903",
185+
PkgName: "rsyslog",
186+
InstalledVersion: "8.24.0-57.0.0.el7",
187+
FixedVersion: "8.24.0-57.0.4.el7_9.3",
188+
DataSource: &dbTypes.DataSource{
189+
ID: vulnerability.OracleOVAL,
190+
Name: "Oracle Linux OVAL definitions",
191+
URL: "https://linux.oracle.com/security/oval/",
192+
},
193+
},
194+
},
195+
},
142196
{
143197
name: "without ksplice",
144198
fixtures: []string{

pkg/detector/ospkg/oracle/testdata/fixtures/oracle7.yaml

+22-1
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,40 @@
77
FixedVersion: "7.29.0-59.0.1.el7_9.1"
88
Entries:
99
- FixedVersion: "7.29.0-59.0.1.el7_9.1"
10+
Arches:
11+
- x86_64
12+
- aarch64
1013
- bucket: glibc
1114
pairs:
1215
- key: CVE-2017-1000364
1316
value:
1417
FixedVersion: "2:2.17-157.ksplice1.el7_3.4"
1518
Entries:
1619
- FixedVersion: "2:2.17-157.ksplice1.el7_3.4"
20+
Arches:
21+
- x86_64
22+
- aarch64
1723
- bucket: gnutls
1824
pairs:
1925
- key: CVE-2021-20232
2026
value:
2127
FixedVersion: "3.6.16-4.el8"
2228
Entries:
2329
- FixedVersion: "10:3.6.16-4.0.1.el8_fips"
30+
Arches:
31+
- x86_64
2432
- FixedVersion: "3.6.16-4.el8"
25-
33+
Arches:
34+
- x86_64
35+
- bucket: rsyslog
36+
pairs:
37+
- key: CVE-2022-24903
38+
value:
39+
FixedVersion: "8.24.0-57.0.1.el7_9.3"
40+
Entries:
41+
- FixedVersion: "8.24.0-57.0.1.el7_9.3"
42+
Arches:
43+
- x86_64
44+
- FixedVersion: "8.24.0-57.0.4.el7_9.3"
45+
Arches:
46+
- aarch64

0 commit comments

Comments
 (0)