Skip to content

Commit 1f4d723

Browse files
committedSep 27, 2024
chore(advisor)!: Remove the NexusIQ advisor
The NexusIQ advisor was originally created to assist with a migration away from that commercial product. As that migration completed successfully and no maintainer has access to a NexusIQ instance anymore, it becomes infeasible to maintain. So remove the NexusIQ advisor and replace various mentions, e.g. in tests, with the similar but public OSSIndex advisor. Signed-off-by: Sebastian Schuberth <sebastian@doubleopen.org>
1 parent 6311935 commit 1f4d723

File tree

17 files changed

+44
-613
lines changed

17 files changed

+44
-613
lines changed
 

‎.ort.yml

-5
Original file line numberDiff line numberDiff line change
@@ -56,11 +56,6 @@ resolutions:
5656
This vulnerability is triggered by the org.springframework:spring-beans package which comes as a transitive
5757
dependency of the Jira REST client used by the notifier. The vulnerability applies only to Spring MVC or Spring
5858
WebFlux applications; so it is ineffective for the current usage scenario.
59-
- id: "sonatype-2022-1764"
60-
reason: "INEFFECTIVE_VULNERABILITY"
61-
comment: >-
62-
This is a duplicate for CVE-2022-22965 reported by Sonatype NexusIQ, as Sonatype reported this issue before a
63-
CVE ID was officially released.
6459
- id: "CVE-2016-7954"
6560
reason: "INEFFECTIVE_VULNERABILITY"
6661
comment: >-

‎cli/src/funTest/assets/semver4j-ort-result.yml

+37-9
Original file line numberDiff line numberDiff line change
@@ -374,26 +374,54 @@ advisor:
374374
tool_versions: {}
375375
config:
376376
config:
377-
NexusIQ:
377+
OssIndex:
378378
options:
379-
server_url: "https://oss-review-toolkit.org"
380-
browse_url: "https://oss-review-toolkit.org"
379+
serverUrl: "https://ossindex.sonatype.org"
381380
secrets:
382-
username: "user"
381+
username: "username"
382+
password: "password"
383383
results:
384384
Maven:junit:junit:4.12:
385385
- advisor:
386-
name: "NexusIQ"
386+
name: "OSSIndex"
387387
capabilities:
388388
- "VULNERABILITIES"
389389
summary:
390-
start_time: "2021-04-29T14:54:17.322191Z"
391-
end_time: "2021-04-29T14:54:18.966672Z"
390+
start_time: "2024-09-09T09:06:07.446242337Z"
391+
end_time: "2024-09-09T09:06:08.652601586Z"
392392
vulnerabilities:
393393
- id: "CVE-2020-15250"
394+
summary: "[CVE-2020-15250] CWE-200: Information Exposure"
395+
description: "In JUnit4 from version 4.7 and before 4.13.1, the test rule\
396+
\ TemporaryFolder contains a local information disclosure vulnerability.\
397+
\ On Unix like systems, the system's temporary directory is shared between\
398+
\ all users on that system. Because of this, when files and directories\
399+
\ are written into this directory they are, by default, readable by other\
400+
\ users on that same system. This vulnerability does not allow other users\
401+
\ to overwrite the contents of these directories or files. This is purely\
402+
\ an information disclosure vulnerability. This vulnerability impacts you\
403+
\ if the JUnit tests write sensitive information, like API keys or passwords,\
404+
\ into the temporary folder, and the JUnit tests execute in an environment\
405+
\ where the OS has other untrusted users. Because certain JDK file system\
406+
\ APIs were only added in JDK 1.7, this this fix is dependent upon the version\
407+
\ of the JDK you are using. For Java 1.7 and higher users: this vulnerability\
408+
\ is fixed in 4.13.1. For Java 1.6 and lower users: no patch is available,\
409+
\ you must use the workaround below. If you are unable to patch, or are\
410+
\ stuck running on Java 1.6, specifying the `java.io.tmpdir` system environment\
411+
\ variable to a directory that is exclusively owned by the executing user\
412+
\ will fix this vulnerability. For more information, including an example\
413+
\ of vulnerable code, see the referenced GitHub Security Advisory."
394414
references:
395-
- url: "http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-15250"
396-
scoring_system: "CVSS2"
415+
- url: "https://ossindex.sonatype.org/vulnerability/CVE-2020-15250?component-type=maven&component-name=junit%2Fjunit&utm_source=okhttp&utm_medium=integration&utm_content=4.12.0"
416+
scoring_system: "CVSS:3.1"
417+
severity: "MEDIUM"
418+
score: 5.5
419+
- url: "http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2020-15250"
420+
scoring_system: "CVSS:3.1"
421+
severity: "MEDIUM"
422+
score: 5.5
423+
- url: "https://github.com/advisories/GHSA-269g-pwp5-87pp"
424+
scoring_system: "CVSS:3.1"
397425
severity: "MEDIUM"
398426
score: 5.5
399427
evaluator: null

‎clients/nexus-iq/build.gradle.kts

-36
This file was deleted.

‎clients/nexus-iq/src/main/kotlin/NexusIqService.kt

-194
This file was deleted.

‎clients/nexus-iq/src/test/kotlin/NexusIqServiceTest.kt

-65
This file was deleted.

‎examples/example.rules.kts

+1-1
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@ fun RuleSet.vulnerabilityInPackageRule() = packageRule("VULNERABILITY_IN_PACKAGE
215215

216216
fun RuleSet.highSeverityVulnerabilityInPackageRule() = packageRule("HIGH_SEVERITY_VULNERABILITY_IN_PACKAGE") {
217217
val scoreThreshold = 5.0f
218-
val scoringSystem = "CVSS2"
218+
val scoringSystem = "CVSS:3.1"
219219

220220
require {
221221
-isExcluded()

‎integrations/completions/ort-completion.fish

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ complete -c ort -n "__fish_seen_subcommand_from advise" -l output-dir -s o -r -F
2525
complete -c ort -n "__fish_seen_subcommand_from advise" -l output-formats -s f -r -fa "JSON YAML" -d 'The list of output formats to be used for the ORT result file(s).'
2626
complete -c ort -n "__fish_seen_subcommand_from advise" -l label -s l -r -d 'Set a label in the ORT result, overwriting any existing label of the same name. Can be used multiple times. For example: --label distribution=external'
2727
complete -c ort -n "__fish_seen_subcommand_from advise" -l resolutions-file -r -F -d 'A file containing issue and rule violation resolutions.'
28-
complete -c ort -n "__fish_seen_subcommand_from advise" -l advisors -s a -r -d 'The comma-separated advisors to use, any of [NexusIQ, OSSIndex, OSV, VulnerableCode].'
28+
complete -c ort -n "__fish_seen_subcommand_from advise" -l advisors -s a -r -d 'The comma-separated advisors to use, any of [OSSIndex, OSV, VulnerableCode].'
2929
complete -c ort -n "__fish_seen_subcommand_from advise" -l skip-excluded -d 'Do not check excluded projects or packages.'
3030
complete -c ort -n "__fish_seen_subcommand_from advise" -s h -l help -d 'Show this message and exit'
3131

‎model/src/main/resources/reference.yml

-8
Original file line numberDiff line numberDiff line change
@@ -136,14 +136,6 @@ ort:
136136
secrets:
137137
token: githubAccessToken
138138

139-
NexusIQ:
140-
options:
141-
serverUrl: 'https://rest-api-url-of-your-nexus-iq-server'
142-
browseUrl: 'https://web-browsing-url-of-your-nexus-iq-server'
143-
secrets:
144-
username: username
145-
password: password
146-
147139
OssIndex:
148140
options:
149141
serverUrl: 'https://ossindex.sonatype.org/'

‎model/src/test/kotlin/config/OrtConfigurationTest.kt

-12
Original file line numberDiff line numberDiff line change
@@ -143,18 +143,6 @@ class OrtConfigurationTest : WordSpec({
143143
)
144144
}
145145

146-
get("NexusIQ") shouldNotBeNull {
147-
options shouldContainExactly mapOf(
148-
"serverUrl" to "https://rest-api-url-of-your-nexus-iq-server",
149-
"browseUrl" to "https://web-browsing-url-of-your-nexus-iq-server"
150-
)
151-
152-
secrets shouldContainExactly mapOf(
153-
"username" to "username",
154-
"password" to "password"
155-
)
156-
}
157-
158146
get("OssIndex") shouldNotBeNull {
159147
options shouldContainExactly mapOf(
160148
"serverUrl" to "https://ossindex.sonatype.org/"

‎plugins/advisors/nexus-iq/build.gradle.kts

-34
This file was deleted.

‎plugins/advisors/nexus-iq/src/main/kotlin/NexusIq.kt

-167
This file was deleted.

‎plugins/advisors/nexus-iq/src/main/kotlin/NexusIqConfiguration.kt

-49
This file was deleted.

‎plugins/reporters/evaluated-model/src/funTest/assets/reporter-test-input.yml

-4
Original file line numberDiff line numberDiff line change
@@ -770,10 +770,6 @@ advisor:
770770
tool_versions: {}
771771
config:
772772
config:
773-
NexusIQ:
774-
options:
775-
server_url: "https://rest-api-url-of-your-nexus-iq-server"
776-
browse_url: "https://web-browsing-url-of-your-nexus-iq-server"
777773
Vulnerable_code:
778774
options:
779775
server_url: "http://localhost:8000"

‎plugins/reporters/opossum/src/funTest/assets/reporter-test-input.yml

-4
Original file line numberDiff line numberDiff line change
@@ -770,10 +770,6 @@ advisor:
770770
tool_versions: {}
771771
config:
772772
config:
773-
NexusIQ:
774-
options:
775-
server_url: "https://rest-api-url-of-your-nexus-iq-server"
776-
browse_url: "https://web-browsing-url-of-your-nexus-iq-server"
777773
Vulnerable_code:
778774
options:
779775
server_url: "http://localhost:8000"

‎plugins/reporters/static-html/src/funTest/assets/reporter-test-input.yml

+5-6
Original file line numberDiff line numberDiff line change
@@ -770,13 +770,12 @@ advisor:
770770
tool_versions: {}
771771
config:
772772
config:
773-
NexusIQ:
773+
OssIndex:
774774
options:
775-
server_url: "https://rest-api-url-of-your-nexus-iq-server"
776-
browse_url: "https://web-browsing-url-of-your-nexus-iq-server"
777-
Vulnerable_code:
778-
options:
779-
server_url: "http://localhost:8000"
775+
serverUrl: "https://ossindex.sonatype.org"
776+
secrets:
777+
username: "username"
778+
password: "password"
780779
results:
781780
Maven:org.apache.commons:commons-text:1.1:
782781
- advisor:

‎settings.gradle.kts

-2
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ include(":clients:bazel-module-registry")
3030
include(":clients:clearly-defined")
3131
include(":clients:dos")
3232
include(":clients:fossid-webapp")
33-
include(":clients:nexus-iq")
3433
include(":clients:oss-index")
3534
include(":clients:osv")
3635
include(":clients:vulnerable-code")
@@ -53,7 +52,6 @@ project(":clients:bazel-module-registry").name = "bazel-module-registry-client"
5352
project(":clients:clearly-defined").name = "clearly-defined-client"
5453
project(":clients:dos").name = "dos-client"
5554
project(":clients:fossid-webapp").name = "fossid-webapp-client"
56-
project(":clients:nexus-iq").name = "nexus-iq-client"
5755
project(":clients:oss-index").name = "oss-index-client"
5856
project(":clients:osv").name = "osv-client"
5957
project(":clients:vulnerable-code").name = "vulnerable-code-client"

‎website/docs/tools/advisor.md

-16
Original file line numberDiff line numberDiff line change
@@ -14,22 +14,6 @@ The providers require specific configuration in the [ORT configuration file](htt
1414
When executing the advisor, the providers to enable are selected with the `--advisors` option (or its short alias `-a`); here a comma-separated list with provider IDs is expected.
1515
The following sections describe the providers supported by the advisor:
1616

17-
## NexusIQ
18-
19-
A security data provider that queries [Nexus IQ Server](https://help.sonatype.com/iqserver).
20-
In the configuration, the URL of the Nexus IQ Server the credentials must be provided:
21-
22-
```yaml
23-
ort:
24-
advisor:
25-
nexusIq:
26-
serverUrl: "https://nexusiq.ossreviewtoolkit.org"
27-
username: myUser
28-
password: myPassword
29-
```
30-
31-
To enable this provider, pass `-a NexusIQ` on the command line.
32-
3317
## OSS Index
3418

3519
This vulnerability provider does not require any further configuration as it uses the public service at https://ossindex.sonatype.org/.

0 commit comments

Comments
 (0)
Please sign in to comment.