Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error attempting to upload findings to Defect Dojo #2628

Closed
2 tasks done
kmouzoul23 opened this issue Mar 28, 2023 · 6 comments · Fixed by #2742
Closed
2 tasks done

Error attempting to upload findings to Defect Dojo #2628

kmouzoul23 opened this issue Mar 28, 2023 · 6 comments · Fixed by #2742
Labels
defect Something isn't working integration/defectdojo Related to the Defect Dojo integration
Milestone

Comments

@kmouzoul23
Copy link

kmouzoul23 commented Mar 28, 2023

Current Behavior

Cannot use Defect Dojo integration - Defect Dojo Integration error when attempting to upload findings

log output:
ERROR [DefectDojoClient] Make the subsequent pagination call on http:[//]hostname/api/v2/tests/?engagement=1842&limit=100&offset=4500
2023-03-28 09:34:54,227 ERROR [DefectDojoUploader] An error occurred attempting to upload findings to DefectDojo
java.lang.NullPointerException: Cannot invoke "Object.toString()" because the return value of "kong.unirest.json.JSONObject.get(String)" is null
        at org.dependencytrack.integrations.defectdojo.DefectDojoClient.getDojoTestId(DefectDojoClient.java:123)
        at org.dependencytrack.integrations.defectdojo.DefectDojoUploader.upload(DefectDojoUploader.java:90)
        at org.dependencytrack.tasks.VulnerabilityManagementUploadTask.processProjectFindings(VulnerabilityManagementUploadTask.java:66)
        at org.dependencytrack.tasks.VulnerabilityManagementUploadTask.inform(VulnerabilityManagementUploadTask.java:46)
        at org.dependencytrack.tasks.DefectDojoUploadTask.inform(DefectDojoUploadTask.java:37)
        at alpine.event.framework.BaseEventService.lambda$publish$0(BaseEventService.java:101)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.base/java.lang.Thread.run(Unknown Source)
2023-03-28 09:34:54,228 ERROR [DefectDojoUploader] An error occurred with the DefectDojo integration point
java.lang.NullPointerException: Cannot invoke "Object.toString()" because the return value of "kong.unirest.json.JSONObject.get(String)" is null
        at org.dependencytrack.integrations.defectdojo.DefectDojoClient.getDojoTestId(DefectDojoClient.java:123)
        at org.dependencytrack.integrations.defectdojo.DefectDojoUploader.upload(DefectDojoUploader.java:90)
        at org.dependencytrack.tasks.VulnerabilityManagementUploadTask.processProjectFindings(VulnerabilityManagementUploadTask.java:66)
        at org.dependencytrack.tasks.VulnerabilityManagementUploadTask.inform(VulnerabilityManagementUploadTask.java:46)
        at org.dependencytrack.tasks.DefectDojoUploadTask.inform(DefectDojoUploadTask.java:37)
        at alpine.event.framework.BaseEventService.lambda$publish$0(BaseEventService.java:101)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.base/java.lang.Thread.run(Unknown Source)

Steps to Reproduce

  1. Enable Defect Dojo integration
  2. Integrate projects with Defect Dojo (Create Project Property)

Expected Behavior

Dependency-Track Findings report should be uploaded successfully to Defect Dojo

Dependency-Track Version

4.7.1

Dependency-Track Distribution

Container Image

Database Server

PostgreSQL

Database Server Version

No response

Browser

Google Chrome

Checklist

@kmouzoul23 kmouzoul23 added defect Something isn't working in triage labels Mar 28, 2023
@corvusmod
Copy link

Same problem here.

2023-04-03 11:51:24,078 DEBUG [DefectDojoUploadTask] Starting DefectDojo upload task 2023-04-03 11:51:24,095 DEBUG [VulnerabilityManagementUploadTask] Initializing integration point: DefectDojo for project: d8594665-7e46-4a94-ac4c-237d40ac8de2 2023-04-03 11:51:24,171 DEBUG [VulnerabilityManagementUploadTask] Uploading findings to DefectDojo for project: d8594665-7e46-4a94-ac4c-237d40ac8de2 2023-04-03 11:51:24,172 DEBUG [DefectDojoClient] Pulling DefectDojo Tests API ... 2023-04-03 11:51:24,173 DEBUG [DefectDojoClient] Make the first pagination call 2023-04-03 11:51:24,268 DEBUG [DefectDojoClient] Successfully retrieve the test list 2023-04-03 11:51:24,269 ERROR [DefectDojoUploader] An error occurred attempting to upload findings to DefectDojo java.lang.NullPointerException: Cannot invoke "Object.toString()" because the return value of "kong.unirest.json.JSONObject.get(String)" is null at org.dependencytrack.integrations.defectdojo.DefectDojoClient.getDojoTestId(DefectDojoClient.java:123) at org.dependencytrack.integrations.defectdojo.DefectDojoUploader.upload(DefectDojoUploader.java:90) at org.dependencytrack.tasks.VulnerabilityManagementUploadTask.processProjectFindings(VulnerabilityManagementUploadTask.java:66) at org.dependencytrack.tasks.VulnerabilityManagementUploadTask.inform(VulnerabilityManagementUploadTask.java:46) at org.dependencytrack.tasks.DefectDojoUploadTask.inform(DefectDojoUploadTask.java:37) at alpine.event.framework.BaseEventService.lambda$publish$0(BaseEventService.java:101) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.base/java.lang.Thread.run(Unknown Source) 2023-04-03 11:51:24,269 ERROR [DefectDojoUploader] An error occurred with the DefectDojo integration point java.lang.NullPointerException: Cannot invoke "Object.toString()" because the return value of "kong.unirest.json.JSONObject.get(String)" is null at org.dependencytrack.integrations.defectdojo.DefectDojoClient.getDojoTestId(DefectDojoClient.java:123) at org.dependencytrack.integrations.defectdojo.DefectDojoUploader.upload(DefectDojoUploader.java:90) at org.dependencytrack.tasks.VulnerabilityManagementUploadTask.processProjectFindings(VulnerabilityManagementUploadTask.java:66) at org.dependencytrack.tasks.VulnerabilityManagementUploadTask.inform(VulnerabilityManagementUploadTask.java:46) at org.dependencytrack.tasks.DefectDojoUploadTask.inform(DefectDojoUploadTask.java:37) at alpine.event.framework.BaseEventService.lambda$publish$0(BaseEventService.java:101) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.base/java.lang.Thread.run(Unknown Source) 2023-04-03 11:51:24,269 DEBUG [NotificationService] Dispatching notification: class alpine.notification.Notification 2023-04-03 11:51:24,269 DEBUG [NotificationService] Alerting subscriber org.dependencytrack.notification.NotificationRouter 2023-04-03 11:51:24,272 DEBUG [DefectDojoUploadTask] DefectDojo upload complete

@corvusmod
Copy link

As a workaround what I did is to use the FPF format from DT.
I exported the results from DT in FPF format through the API and upload them to DefectDojo

@SeanWrightFeat
Copy link

SeanWrightFeat commented May 4, 2023

I'm getting a similar error. Currently using the following:

  • Dependency-Track: 4.8.0
  • DefectDojo: 2.22.0

The error from Dependency-Track

2023-05-04 20:14:33,010 [] ERROR [org.dependencytrack.integrations.defectdojo.DefectDojoClient] An error occurred with the DefectDojo integration point
org.apache.http.client.ClientProtocolException: null
        at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:187)
        at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)
        at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:108)
        at org.dependencytrack.integrations.defectdojo.DefectDojoClient.getDojoTestIds(DefectDojoClient.java:116)
        at org.dependencytrack.integrations.defectdojo.DefectDojoUploader.upload(DefectDojoUploader.java:104)
        at org.dependencytrack.tasks.VulnerabilityManagementUploadTask.processProjectFindings(VulnerabilityManagementUploadTask.java:66)
        at org.dependencytrack.tasks.VulnerabilityManagementUploadTask.inform(VulnerabilityManagementUploadTask.java:46)
        at org.dependencytrack.tasks.DefectDojoUploadTask.inform(DefectDojoUploadTask.java:37)
        at alpine.event.framework.BaseEventService.lambda$publish$0(BaseEventService.java:101)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.base/java.lang.Thread.run(Unknown Source)
Caused by: org.apache.http.ProtocolException: Target host is not specified
        at org.apache.http.impl.conn.DefaultRoutePlanner.determineRoute(DefaultRoutePlanner.java:71)
        at org.apache.http.impl.client.InternalHttpClient.determineRoute(InternalHttpClient.java:125)
        at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)
        ... 11 common frames omitted
2023-05-04 20:14:33,063 [] ERROR [org.dependencytrack.integrations.defectdojo.DefectDojoClient] An error occurred while communicating with the DefectDojo integration point
2023-05-04 20:14:33,063 [] ERROR [org.dependencytrack.integrations.defectdojo.DefectDojoClient] HTTP Status : 400 Bad Request
2023-05-04 20:14:33,063 [] ERROR [org.dependencytrack.integrations.defectdojo.DefectDojoClient] Request URL : https://dojo.featurespace.net//api/v2/import-scan/

I noticed the following from the DefectDojo logs:

nginx_1         | 172.20.0.1 - - [04/May/2023:20:04:32 +0000] "GET /api/v2/tests/?limit=100&engagement=23 HTTP/1.0" 200 66 "-" "Apache-HttpClient/4.5.14 (Java/17.0.6)" "10.65.32.201"
nginx_1         | 2023/05/04 20:04:32 [warn] 7#7: *157 a client request body is buffered to a temporary file /var/cache/nginx/client_temp/0000000007, client: 172.20.0.1, server: , request: "POST /api/v2/import-scan/ HTTP/1.0", host: "dojo.featurespace.net"
uwsgi_1         | [04/May/2023 20:04:32] WARNING [django.request:241] Bad Request: /api/v2/import-scan/
uwsgi_1         | [pid: 22|app: -|req: -/-] 172.20.0.1 (-) {48 vars in 833 bytes} [Thu May  4 20:04:32 2023] POST /api/v2/import-scan/ => generated 140 bytes in 40 msecs (HTTP/1.0 400) 8 headers in 244 bytes (1 switches on core 0)
nginx_1         | 172.20.0.1 - - [04/May/2023:20:04:32 +0000] "POST /api/v2/import-scan/ HTTP/1.0" 400 140 "-" "Apache-HttpClient/4.5.14 (Java/17.0.6)" "10.65.32.201"

@kmouzoul23
Copy link
Author

It's an error related to pagination. Based on the follwing issue: #2707 seems that will be fixed in v4.8.1

nscuro added a commit to nscuro/dependency-track that referenced this issue May 14, 2023
Fixes DependencyTrack#2628

Signed-off-by: nscuro <nscuro@protonmail.com>
@nscuro
Copy link
Member

nscuro commented May 14, 2023

While it looks related at first, the issue described here is related to when the scan_type in tests of the DD response are null. Our logic assumed that scan_type can not be null, but apparently it can.

image

This too will be fixed in 4.8.1.

@nscuro nscuro removed the in triage label May 14, 2023
@nscuro nscuro added this to the 4.8.1 milestone May 14, 2023
nscuro added a commit to nscuro/dependency-track that referenced this issue May 14, 2023
Fixes DependencyTrack#2628

Signed-off-by: nscuro <nscuro@protonmail.com>
@github-actions
Copy link
Contributor

This thread has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Jun 14, 2023
@msymons msymons added the integration/defectdojo Related to the Defect Dojo integration label Jul 19, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
defect Something isn't working integration/defectdojo Related to the Defect Dojo integration
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants