Skip to content

Commit 3fd00f0

Browse files
authored
Merge pull request #12236 from DefectDojo/release/2.45.1
Release: Merge release into master from: release/2.45.1
2 parents 2740240 + d1eca7c commit 3fd00f0

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+5265
-516
lines changed

.github/renovate.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
"dependencyDashboardApproval": false,
77
"baseBranches": ["dev"],
88
"rebaseWhen": "conflicted",
9+
"separateMinorPatch": true,
910
"ignorePaths": ["requirements.txt", "requirements-lint.txt", "components/package.json", "components/package-lock.json", "dojo/components/yarn.lock", "dojo/components/package.json", "Dockerfile**"],
1011
"ignoreDeps": [],
1112
"packageRules": [{

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ deduplication, remediation, and reporting.
3535
Try out DefectDojo on our demo server at [demo.defectdojo.org](https://demo.defectdojo.org)
3636

3737
Log in with username `admin` and password `1Defectdojo@demo#appsec`. Please note that the demo is publicly accessible
38-
and regularly reset. Do not put sensitive data in the demo.
38+
and regularly reset. Do not put sensitive data in the demo. An easy way to test Defect Dojo is to upload some [sample scan reports](https://github.com/DefectDojo/django-DefectDojo/tree/master/unittests/scans).
3939

4040
## Quick Start for Compose V2
4141

components/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "defectdojo",
3-
"version": "2.45.0",
3+
"version": "2.45.1",
44
"license" : "BSD-3-Clause",
55
"private": true,
66
"dependencies": {
148 KB
Loading

docs/content/en/changelog/changelog.md

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,24 @@ Here are the release notes for **DefectDojo Pro (Cloud Version)**. These release
88

99
For Open Source release notes, please see the [Releases page on GitHub](https://github.com/DefectDojo/django-DefectDojo/releases), or alternatively consult the Open Source [upgrade notes](/en/open_source/upgrading/upgrading_guide/).
1010

11+
## Apr 2025: v2.45
12+
13+
### Apr 7, 2025: v2.45.0
14+
- **(Beta UI)** Added Calendar view to Beta UI: Calendar view now displays Tests and Engagements, and can be filtered. Clicking on a Calendar entry now displays a more detailed description of the object.
15+
![image](images/pro_calendar_view.png)
16+
- **(Universal Parser)** Added the ability to map an EPSS score from a file. Note that this field **will** be updated by EPSS database sync, but this gives a user the ability to capture that field from initial import.
17+
1118
## Mar 2025: v2.44
1219

13-
### Mar 31, 2025, v2.44.4
20+
### Mar 31, 2025: v2.44.4
1421

1522
- **(Beta UI)** Group and Configuration permissions can now be assigned quickly from a User page. For more information, see [DefectDojo Pro Permissions](/en/customize_dojo/user_management/pro_permissions_overhaul/).
1623

17-
### Mar 24, 2025, v2.44.3
24+
### Mar 24, 2025: v2.44.3
1825

1926
- **(Import)** Generic Findings Import will now parse tags in the JSON payload when Async Import is enabled.
2027

21-
### Mar 17, 2025, v2.44.2
28+
### Mar 17, 2025: v2.44.2
2229

2330
- **(Beta UI)** Added a new method to quickly assign permissions to Products or Product Types. See our [Pro Permissions](/en/customize_dojo/user_management/pro_permissions_overhaul/) for more details.
2431

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,43 @@
11
---
2-
title: "Anchore-Engine"
2+
title: "Anchore Enterprise Vulnerability"
33
toc_hide: true
44
---
55

66
### File Types
77
DefectDojo parser accepts a .json file.
88

9-
Using the [Anchore CLI](https://docs.anchore.com/current/docs/using/cli_usage/images/inspecting_image_content/) is the most reliable way to generate an Anchore report which DefectDojo can parse. When generating a report with the Anchore CLI, please use the following command to ensure complete data: `anchore-cli --json image vuln <image:tag> all`
9+
You can generate vulnerability data using the Anchore Enterprise CLI tool, [Anchorectl](https://docs.anchore.com/current/docs/using/cli_usage/images/inspecting_image_content/), or through the Enterprise UI.
10+
11+
## Generating a Vulnerability Report:
12+
Using Anchorectl: Run the following command to generate a vulnerability report in JSON format
13+
14+
`anchorectl image vulnerabilities ubuntu:latest -o json `
15+
16+
Using the Anchore UI: Navigate to the desired image in the Anchore Enterprise UI, click on the Vulnerabilities tab, and download the report in JSON format.
1017

1118
### Acceptable JSON Format
19+
1220
All properties are strings and are required by the parser. As the parser evolved, two anchore engine parser JSON formats are present till now. Both ([old](https://github.com/DefectDojo/django-DefectDojo/tree/master/unittests/scans/anchore_engine/many_vulns.json) / [new](https://github.com/DefectDojo/django-DefectDojo/tree/master/unittests/scans/anchore_engine/new_format_issue_11552.json)) are supported.
1321

22+
~~~
23+
24+
{
25+
26+
"vulnerabilityId": "CVE-2023-24531",
27+
"cves": "CVE-2023-24531",
28+
"severity": "Critical",
29+
"detectedAt": "2025-03-18T08:09:03Z",
30+
"packageType": "Go",
31+
"path": "/usr/local/bin/gosu",
32+
"package": "stdlib-go1.18.2",
33+
"fixAvailable": "1.21.0-0",
34+
"fixObservedAt": "2025-03-18T08:09:03Z",
35+
"link": "https://nvd.nist.gov/vuln/detail/CVE-2023-24531",
36+
"nvdCvssBaseScore": 9.8
37+
38+
}
39+
~~~
40+
41+
1442
### Sample Scan Data
15-
Sample Anchore-Engine scans can be found [here](https://github.com/DefectDojo/django-DefectDojo/tree/master/unittests/scans/anchore_engine).
43+
Sample Anchore-Engine scans can be found [here](https://github.com/DefectDojo/django-DefectDojo/tree/master/unittests/scans/anchore_engine)

docs/content/en/connecting_your_tools/parsers/file/generic.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,13 @@ Attributes supported for CSV:
1818
- Verified: Indicator if the finding has been verified. Must be empty, TRUE, or FALSE
1919
- FalsePositive: Indicator if the finding is a false positive. Must be TRUE, or FALSE.
2020
- Duplicate:Indicator if the finding is a duplicate. Must be TRUE, or FALSE
21+
- IsMitigated: Indicator if the finding is mitigated. Must be TRUE, or FALSE
22+
- MitigatedDate: Date the finding was mitigated in mm/dd/yyyy format or ISO format
2123

2224
The CSV expects a header row with the names of the attributes.
2325

26+
Date fields are parsed using [dateutil.parse](https://dateutil.readthedocs.io/en/stable/parser.html) supporting a variety of formats such a YYYY-MM-DD or ISO-8601.
27+
2428
Example of JSON format:
2529

2630
```JSON
@@ -70,6 +74,34 @@ Example of JSON format:
7074
"cvssv3": "CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:C/C:L/I:L/A:N",
7175
"file_path": "src/threeeeeeeeee.cpp",
7276
"line": 1353
77+
},
78+
{
79+
"title": "test title mitigated",
80+
"description": "Some very long description with\n\n some UTF-8 chars à qu'il est beau2",
81+
"severity": "Critical",
82+
"mitigation": "Some mitigation",
83+
"date": "2021-01-06",
84+
"cve": "CVE-2020-36236",
85+
"cwe": 287,
86+
"cvssv3": "CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:C/C:L/I:L/A:N",
87+
"file_path": "src/threeeeeeeeee.cpp",
88+
"line": 1353,
89+
"is_mitigated": true,
90+
"mitigated": "2021-01-16"
91+
},
92+
{
93+
"title": "test title mitigated ISO",
94+
"description": "Some very long description with\n\n some UTF-8 chars à qu'il est beau2",
95+
"severity": "Critical",
96+
"mitigation": "Some mitigation",
97+
"date": "2024-01-04T11:02:11Z",
98+
"cve": "CVE-2020-36236",
99+
"cwe": 287,
100+
"cvssv3": "CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:C/C:L/I:L/A:N",
101+
"file_path": "src/threeeeeeeeee.cpp",
102+
"line": 1353,
103+
"is_mitigated": true,
104+
"mitigated": "2024-01-24T11:02:11Z"
73105
}
74106
]
75107
}

docs/content/en/connecting_your_tools/parsers/file/h1.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: "HackerOne Cases"
33
toc_hide: true
44
---
5-
Import HackerOne cases findings in JSON format
5+
Import HackerOne cases findings in JSON format (vulnerability disclosure parser) or Bug Bounties in JSON or CSV format (bug bounty parser)
66

77
### Sample Scan Data
88
Sample HackerOne Cases scans can be found [here](https://github.com/DefectDojo/django-DefectDojo/tree/master/unittests/scans/h1).

docs/content/en/connecting_your_tools/parsers/file/immuniweb.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: "Immuniweb Scan"
33
toc_hide: true
44
---
5-
XML Scan Result File from Immuniweb Scan.
5+
XML or JSON Scan Result File from [Immuniweb Scan](https://www.immuniweb.com/).
66

77
### Sample Scan Data
88
Sample Immuniweb Scan scans can be found [here](https://github.com/DefectDojo/django-DefectDojo/tree/master/unittests/scans/immuniweb).

docs/content/en/connecting_your_tools/parsers/file/rusty_hog.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,7 @@ DefectDojo currently supports the parsing of the following Rusty Hog JSON output
1414
RustyHog scans only one target at a time. This is not efficient if you want to scan all targets (e.g. all JIRA tickets) and upload each single report to DefectDojo.
1515
[Rusty-Hog-Wrapper](https://github.com/manuel-sommer/Rusty-Hog-Wrapper) deals with this and scans a whole JIRA Project or Confluence Space, merges the findings into a valid file which can be uploaded to DefectDojo. (This is no official recommendation from DefectDojo, but rather a pointer in a direction on how to use this vulnerability scanner in a more efficient way.)
1616

17+
You can either select "Rusty Hog Scan" directly, or specify the sub scanner (e.g. "Duroc Hog Scan"). If you choose "Rusty Hog Scan", we recommend to re-import scans into the same test. For more information look at [this issue](https://github.com/DefectDojo/django-DefectDojo/issues/10584).
18+
1719
### Sample Scan Data
1820
Sample Rusty Hog parser scans can be found [here](https://github.com/DefectDojo/django-DefectDojo/tree/master/unittests/scans/rusty_hog).
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
---
2+
title: "Sysdig Vulnerability Reports"
3+
toc_hide: true
4+
---
5+
Import CSV report files generated by the [Sysdig CLI Scanner](https://docs.sysdig.com/en/sysdig-secure/install-agent-components/install-vulnerability-cli-scanner/)
6+
7+
### Sample Scan Data
8+
Sample Sysdig Vulnerability Reports scans can be found [here](https://github.com/DefectDojo/django-DefectDojo/tree/master/unittests/scans/sysdig_cli).

docs/content/en/connecting_your_tools/parsers/file/sysdig_reports.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@ toc_hide: true
44
---
55
Import CSV report files from Sysdig or a Sysdig UI JSON Report
66
Parser will accept Pipeline, Registry and Runtime reports created from the UI
7-
8-
More information available at [our reporting docs page](https://docs.sysdig.com/en/docs/sysdig-secure/vulnerabilities/reporting)
7+
More information available at [sysdig reporting docs page](https://docs.sysdig.com/en/docs/sysdig-secure/vulnerabilities/reporting)
98

109
### Sample Scan Data
1110
Sample Sysdig Vulnerability Reports scans can be found [here](https://github.com/DefectDojo/django-DefectDojo/tree/master/unittests/scans/sysdig_reports).

docs/content/en/open_source/contributing/how-to-write-a-parser.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ Example of use:
177177
from cvss.cvss3 import CVSS3
178178
import cvss.parser
179179
vectors = cvss.parser.parse_cvss_from_text("CVSS:3.0/S:C/C:H/I:H/A:N/AV:P/AC:H/PR:H/UI:R/E:H/RL:O/RC:R/CR:H/IR:X/AR:X/MAC:H/MPR:X/MUI:X/MC:L/MA:X")
180-
if len(vectors) > 0 and type(vectors[0]) == CVSS3:
180+
if len(vectors) > 0 and type(vectors[0]) is CVSS3:
181181
print(vectors[0].severities()) # this is the 3 severities
182182

183183
cvssv3 = vectors[0].clean_vector()
@@ -192,7 +192,7 @@ Good example:
192192

193193
```python
194194
vectors = cvss.parser.parse_cvss_from_text(item['cvss_vect'])
195-
if len(vectors) > 0 and type(vectors[0]) == CVSS3:
195+
if len(vectors) > 0 and type(vectors[0]) is CVSS3:
196196
finding.cvss = vectors[0].clean_vector()
197197
finding.severity = vectors[0].severities()[0] # if your tool does generate severity
198198
```

docs/content/en/open_source/installation/running-in-production.md

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,18 @@ With a separate database, the minimum recommendations to run DefectDojo are:
2828
a different disk than your OS\'s for potential performance
2929
improvements.
3030

31+
### Security
32+
Verify the `nginx` configuration and other run-time aspects such as security headers to comply with your compliance requirements.
33+
Change the AES256 encryption key `&91a*agLqesc*0DJ+2*bAbsUZfR*4nLw` in `docker-compose.yml` to something unique for your instance.
34+
This encryption key is used to encrypt API keys and other credentials stored in Defect Dojo to connect to external tools such as SonarQube. A key can be generated in various ways for example using a password manager or `openssl`:
35+
36+
```
37+
openssl rand -base64 32
38+
```
39+
```
40+
DD_CREDENTIAL_AES_256_KEY: "${DD_CREDENTIAL_AES_256_KEY:-<PUT THE GENERATED KEY HERE>o}"
41+
```
42+
3143
## File Backup
3244

3345
In both cases (dedicated DB or containerized), if you are self-hosting, it is recommended that you implement and create periodic backups of your data.
@@ -55,7 +67,7 @@ concurrent connections.
5567

5668
### Celery worker
5769

58-
By default, a single mono-process celery worker is spawned. When storing a large amount of findings, leveraging async functions (like deduplication), or both. Eventually, it is important to adjust these parameters to prevent resource starvation.
70+
By default, a single mono-process celery worker is spawned. When storing a large amount of findings or running large imports it might be helpful to adjust these parameters to prevent resource starvation.
5971

6072
The following variables can be changed to increase worker performance, while keeping a single celery container.
6173

@@ -80,8 +92,8 @@ and see what is in effect.
8092

8193
<span style="background-color:rgba(242, 86, 29, 0.3)">This experimental feature has been deprecated as of DefectDojo 2.44.0 (March release). Please exercise caution if using this feature with an older version of DefectDojo, as results may be inconsistent.</span>
8294

83-
Import and Re-Import can also be configured to handle uploads asynchronously to aid in
84-
processing especially large scans. It works by batching Findings and Endpoints by a
95+
Import and Re-Import can also be configured to handle uploads asynchronously to aid in
96+
processing especially large scans. It works by batching Findings and Endpoints by a
8597
configurable amount. Each batch will be be processed in separate celery tasks.
8698

8799
The following variables impact async imports.
@@ -90,7 +102,7 @@ The following variables impact async imports.
90102
- `DD_ASYNC_FINDING_IMPORT_CHUNK_SIZE` defaults to 100
91103

92104
When using asynchronous imports with dynamic scanners, Endpoints will continue to "trickle" in
93-
even after the import has returned a successful response. This is because processing continues
105+
even after the import has returned a successful response. This is because processing continues
94106
to occur after the Findings have already been imported.
95107

96108
To determine if an import has been fully completed, please see the progress bar in the appropriate test.

0 commit comments

Comments
 (0)