Skip to content

Commit 5aca9d9

Browse files
authored
Merge branch 'dev' into master-into-dev/2.46.2-2.47.0-dev
2 parents 8814849 + b3d2c96 commit 5aca9d9

30 files changed

+222
-244
lines changed

.github/workflows/k8s-tests.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ env:
1111
--set createRedisSecret=true \
1212
"
1313
HELM_PG_DATABASE_SETTINGS: " \
14-
--set database=postgresql \
1514
--set postgresql.enabled=true \
1615
--set createPostgresqlSecret=true \
1716
"

.github/workflows/release-x-manual-helm-chart.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ jobs:
5656
helm dependency update ./helm/defectdojo
5757
5858
- name: Add yq
59-
uses: mikefarah/yq@8bf425b4d1344db7cd469a8d10a390876e0c77fd # v4.45.1
59+
uses: mikefarah/yq@734e2cd25402f10f51351c4034625043f07e7b06 # v4.45.3
6060

6161
- name: Pin version docker version
6262
id: pin_image

components/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
"metismenu": "~3.0.7",
3636
"moment": "^2.30.1",
3737
"morris.js": "morrisjs/morris.js",
38-
"pdfmake": "^0.2.19",
38+
"pdfmake": "^0.2.20",
3939
"startbootstrap-sb-admin-2": "1.0.7"
4040
},
4141
"engines": {

components/yarn.lock

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -503,15 +503,15 @@ pako@~1.0.2:
503503
resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf"
504504
integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==
505505

506-
pdfmake@^0.2.19:
507-
version "0.2.19"
508-
resolved "https://registry.yarnpkg.com/pdfmake/-/pdfmake-0.2.19.tgz#23d6862b395de95e41089263936f0ff806193ea7"
509-
integrity sha512-jVUILxOqAgcquxbGCz3Bo1/sGEuVLcReGYvo61oJ2EkkyfrlREd7TfLRF6jdF85aEQjxOj/6BD9uj0p+UfXNkw==
506+
pdfmake@^0.2.20:
507+
version "0.2.20"
508+
resolved "https://registry.yarnpkg.com/pdfmake/-/pdfmake-0.2.20.tgz#a2e37114e46247c9a295df2fc1c7184942de567e"
509+
integrity sha512-bGbxbGFP5p8PWNT3Phsu1ZcRLnRfF6jmnuKTkgmt6i5PZzSdX6JaB+NeTz9q+aocfW8SE9GUjL3o/5GroBqGcQ==
510510
dependencies:
511511
"@foliojs-fork/linebreak" "^1.1.2"
512512
"@foliojs-fork/pdfkit" "^0.15.3"
513513
iconv-lite "^0.6.3"
514-
xmldoc "^2.0.0"
514+
xmldoc "^2.0.1"
515515

516516
png-js@^1.0.0:
517517
version "1.0.0"
@@ -625,9 +625,9 @@ util-deprecate@~1.0.1:
625625
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
626626
integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
627627

628-
xmldoc@^2.0.0:
629-
version "2.0.0"
630-
resolved "https://registry.yarnpkg.com/xmldoc/-/xmldoc-2.0.0.tgz#948b97c38f0cbc07b878985d14f9e2212127d42a"
631-
integrity sha512-6ZsqsqEkIKzWLqGyTN+j+ZRc/vxQHtnlHzSvj3JvM4XZPoZVJxj6fyz0XvwKAf1vh+kSN/HibO1/iJLf3F3LRw==
628+
xmldoc@^2.0.1:
629+
version "2.0.1"
630+
resolved "https://registry.yarnpkg.com/xmldoc/-/xmldoc-2.0.1.tgz#a901f6a6341e4d8cba3dbc5fc61017249f2adf24"
631+
integrity sha512-sOOqgsjl3PU6iBw+fBUGAkTCE+JFK+sBaOL3pnZgzqk2/yvOD7RlFmZtDRJAEBzdpOYxSXyOQH4mjubdfs3MSg==
632632
dependencies:
633633
sax "^1.2.4"

docker-compose.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ services:
105105
source: ./docker/extra_settings
106106
target: /app/docker/extra_settings
107107
postgres:
108-
image: postgres:17.4-alpine@sha256:7062a2109c4b51f3c792c7ea01e83ed12ef9a980886e3b3d380a7d2e5f6ce3f5
108+
image: postgres:17.5-alpine@sha256:f325a29ec9deb7039c5f07761d77d79d537dac836ecd99f982f6ca5476724604
109109
environment:
110110
POSTGRES_DB: ${DD_DATABASE_NAME:-defectdojo}
111111
POSTGRES_USER: ${DD_DATABASE_USER:-defectdojo}

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

Lines changed: 99 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,105 @@ title: "Burp Enterprise Scan"
33
toc_hide: true
44
---
55

6-
### File Types
7-
DefectDojo parser accepts a Standard Report as an HTML file. To parse an XML file instead, use this method: https://documentation.defectdojo.com/integrations/parsers/file/burp/
6+
## Overview
7+
The Burp Enterprise Scan parser processes HTML reports from Burp Enterprise Edition and imports the findings into DefectDojo. The parser extracts vulnerability details, severity ratings, descriptions, remediation steps, and other metadata from the HTML report.
88

9-
See also Burp documentation for info on how to export a Standard Report:
10-
https://portswigger.net/burp/documentation/enterprise/work-with-scan-results/generate-reports
9+
## Supported File Types
10+
The parser accepts a Standard Report as an HTML file. To parse an XML file instead, use the [Burp XML parser](https://docs.defectdojo.com/en/connecting_your_tools/parsers/file/burp/).
11+
12+
See the Burp documentation for information on how to export a Standard Report: [PortSwigger Enterprise Edition Downloading reports](https://portswigger.net/burp/documentation/enterprise/work-with-scan-results/generate-reports)
13+
14+
## Standard Format HTML (Main Format)
15+
16+
### Total Fields in HTML
17+
- Total data fields in Burp Enterprise Scan HTML output: 15
18+
- Total data fields parsed into DefectDojo finding: 13
19+
- Total data fields NOT parsed: 2
20+
21+
### Standard Format Field Mapping Details
22+
23+
| Data Field # | Burp Enterprise Scan Data Field | DefectDojo Finding Field | Parser Line # | Notes |
24+
|-------------|--------------------------------|--------------------------|--------------|-------|
25+
| 1 | Title | title | 101, 165 | Extracted from issue container h2 element and table rows with "issue-type-row" class |
26+
| 2 | Severity | severity | 101, 168 | Extracted from table rows, mapped directly (High/Medium/Low/Info) |
27+
| 3 | Issue Detail | description | 124-135 | Extracted from matching header "issue detail" and formatted with header |
28+
| 4 | Issue Description | description | 124-135 | Extracted from matching header "issue description" and formatted with header |
29+
| 5 | Issue Background | impact | 136-139 | Extracted from matching header "issue background" and formatted with header |
30+
| 6 | Issue Remediation | impact | 136-139 | Extracted from matching header "issue remediation" and formatted with header |
31+
| 7 | Remediation Detail | mitigation | 140-143 | Extracted from matching header "remediation detail" and formatted with header |
32+
| 8 | Remediation Background | mitigation | 140-143 | Extracted from matching header "remediation background" and formatted with header |
33+
| 9 | References | references | 144-152 | Extracted from matching header "references" and formatted with links |
34+
| 10 | Vulnerability Classifications | references, cwe | 144-157 | Extracts vulnerability IDs (including CWE numbers) and adds to references section |
35+
| 11 | Request | request_response | 124-135, 190-195 | Stored as request part of request/response pair in evidence container |
36+
| 12 | Response | request_response | 124-135, 190-195 | Stored as response part of request/response pair in evidence container |
37+
| 13 | Endpoint URL | endpoints | 88-101 | Combined from base URL (e.g., "https://instance.example.com") and path (e.g., "/fe/m3/m-login") |
38+
| 14 | Confidence Level | Not Parsed | - | Shown in HTML report (Certain/Firm/Tentative) but not extracted to findings |
39+
| 15 | Issue ID/Anchor | Not Parsed | - | HTML anchor tags like "#7459896704422157312" are not extracted |
40+
41+
### Field Mapping Details
42+
The parser has different handling logic for various sections of the Burp Enterprise report:
43+
44+
- For table content sections (using `table_contents_xpath`), the parser extracts:
45+
- Base endpoint from h1 elements (e.g., "https://instance.example.com")
46+
- Finding titles from elements with "issue-type-row" class (e.g., "Strict transport security not enforced")
47+
- Finding paths and severities from table rows
48+
- Combines base endpoint with path to construct full endpoints
49+
50+
- For vulnerability details sections (using `vulnerability_list_xpath`), the parser extracts:
51+
- Title from h2 elements
52+
- Various content sections based on h3 headers matching predefined categories:
53+
- Description headers: "issue detail", "issue description"
54+
- Impact headers: "issue background", "issue remediation"
55+
- Mitigation headers: "remediation detail", "remediation background"
56+
- References headers: "vulnerability classifications", "references"
57+
- Request/Response headers: "request", "response"
58+
59+
### Special Processing Notes
60+
61+
#### Date Processing
62+
No special date processing is performed. The parser uses the current date for the finding.
63+
64+
#### Status Conversion
65+
All findings are set with default status values:
66+
- `false_p = False`
67+
- `duplicate = False`
68+
- `out_of_scope = False`
69+
- `mitigated = None`
70+
- `active = True`
71+
- `verified = False`
72+
73+
#### Severity Conversion
74+
Severity values are directly mapped from the Burp report without conversion.
75+
76+
#### Description Construction
77+
The description field is constructed by combining content from "issue detail" and "issue description" sections. The content is formatted with headers and the original text, including proper formatting of lists, links, and other HTML elements. The description typically begins with "**Issue detail**:" or "**Issue description**:" followed by the content, with multiple sections separated by "---" markdown dividers.
78+
79+
#### Title Format
80+
Finding titles are extracted directly from the h2 elements in issue containers or from table rows with the "issue-type-row" class.
81+
82+
#### Mitigation Construction
83+
The mitigation field is constructed by combining content from "remediation detail" and "remediation background" sections, with proper formatting.
84+
85+
#### Deduplication
86+
No explicit deduplication logic is implemented in the parser. DefectDojo's standard deduplication will apply based on the hash_code generated from the finding details.
87+
88+
#### Tags Handling
89+
No specific tag handling is implemented in the parser.
90+
91+
#### Common settings for all findings
92+
All findings are set with:
93+
- `static_finding = False`
94+
- `dynamic_finding = True`
95+
96+
## Unique Parser Characteristics
97+
This parser has special handling for different section types within the HTML report:
98+
- It handles both the main vulnerability data in "issue-container" divs and table-based data separately
99+
- It includes processing for evidence containers with request/response pairs
100+
- It performs formatting of HTML content including links, lists, and other elements to maintain readable descriptions
101+
- It extracts CWE numbers and vulnerability classifications from reference sections
11102

12103
### Sample Scan Data
13-
Sample Burp Enterprise Scan scans can be found [here](https://github.com/DefectDojo/django-DefectDojo/tree/master/unittests/scans/burp_enterprise).
104+
Sample Burp Enterprise Scan scans can be found [here](https://github.com/DefectDojo/django-DefectDojo/tree/master/unittests/scans/burp_enterprise).
105+
106+
### Link to Tool
107+
[Burp Enterprise Edition](https://portswigger.net/burp/enterprise)

docs/content/en/open_source/performance.md

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,6 @@ change many filters to only search on names, rather than the objects themselves.
1515
This change will save many large queries, and will improve the performance of UI
1616
based interactions.
1717

18-
## Asynchronous Import
19-
20-
DefectDojo offers an experimental feature to aynschronously import security reports.
21-
This feature works in most use cases, but struggles when doing things such as pushing
22-
to Jira during the import process. Because Endpoints are still being processed and
23-
created even after the import procedure is completed, pushing Findings to Jira can
24-
result in incomplete Jira tickets. It is advised to wait until after import has been
25-
completed (reaches 100%).
26-
27-
To enable this feature, set `ASYNC_FINDING_IMPORT` to True in `local_settings.py`
28-
2918
## Asynchronous Delete
3019

3120
For larger instances, deleting an object can take minutes for all related objects to be

docs/content/en/open_source/upgrading/2.46.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -63,10 +63,10 @@ Before:
6363
"statistics": {
6464
"before": {},
6565
"delta": {
66-
"created": {},
67-
"closed": {},
68-
"reactivated": {},
69-
"left untouched": {}
66+
"created": {},
67+
"closed": {},
68+
"reactivated": {},
69+
"left untouched": {}
7070
},
7171
"after": {}
7272
}
@@ -76,10 +76,10 @@ After:
7676
"statistics": {
7777
"before": {},
7878
"delta": {
79-
"created": {},
80-
"closed": {},
81-
"reactivated": {},
82-
"untouched": {}
79+
"created": {},
80+
"closed": {},
81+
"reactivated": {},
82+
"untouched": {}
8383
},
8484
"after": {}
8585
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
---
2+
title: 'Upgrading to DefectDojo Version 2.47.x'
3+
toc_hide: true
4+
weight: -20250505
5+
description: Drop support for PostgreSQL-HA in HELM
6+
---
7+
### Drop support for PostgreSQL-HA in HELM
8+
9+
This release removes support for the PostgreSQL-HA (High Availability) Helm chart as a dependency in the DefectDojo Helm chart. Users relying on the PostgreSQL-HA Helm chart will need to transition to using the standard PostgreSQL configuration or an external PostgreSQL database.
10+
11+
There are no special instructions for upgrading to 2.47.x. Check the [Release Notes](https://github.com/DefectDojo/django-DefectDojo/releases/tag/2.47.0) for the contents of the release.

docs/package-lock.json

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)