Skip to content

Commit 778342a

Browse files
authored
Merge branch 'dev' into master-into-dev/2.46.3-2.47.0-dev
2 parents bf1bfe8 + cfa7b97 commit 778342a

File tree

90 files changed

+418
-551
lines changed

Some content is hidden

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

90 files changed

+418
-551
lines changed

.github/workflows/build-docker-images-for-testing.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ jobs:
5151

5252
- name: Build
5353
id: docker_build
54-
uses: docker/build-push-action@14487ce63c7a62a4a324b0bfb37086795e31c6c1 # v6.16.0
54+
uses: docker/build-push-action@1dc73863535b631f98b2378be8619f83b136f4a0 # v6.17.0
5555
timeout-minutes: 15
5656
env:
5757
DOCKER_BUILD_CHECKS_ANNOTATIONS: false

.github/workflows/gh-pages.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ jobs:
2121
- name: Setup Node
2222
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
2323
with:
24-
node-version: '22.15.0'
24+
node-version: '22.15.1'
2525

2626
- name: Cache dependencies
2727
uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3

.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-docker-containers.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ jobs:
6666
# we cannot set any tags here, those are set on the merged digest in release-x-manual-merge-container-digests.yml
6767
- name: Build and push images
6868
id: build
69-
uses: docker/build-push-action@14487ce63c7a62a4a324b0bfb37086795e31c6c1 # v6.16.0
69+
uses: docker/build-push-action@1dc73863535b631f98b2378be8619f83b136f4a0 # v6.17.0
7070
env:
7171
DOCKER_BUILD_CHECKS_ANNOTATIONS: false
7272
with:

.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@b534aa9ee5d38001fba3cd8fe254a037e4847b37 # v4.45.4
6060

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

.github/workflows/validate_docs_build.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818
- name: Setup Node
1919
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
2020
with:
21-
node-version: '22.15.0'
21+
node-version: '22.15.1'
2222

2323
- name: Cache dependencies
2424
uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3

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/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/content/en/working_with_findings/organizing_engagements_tests/product_hierarchy.md

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -112,11 +112,29 @@ Tests are a grouping of activities conducted by engineers to attempt to discover
112112
Tests always have:
113113

114114
* a unique **Test Title**
115-
* a specific **Test Type (**API Test, Nessus Scan, etc)
115+
* a specific **Test Type** (API Test, Nessus Scan, etc)
116116
* an associated test **Environment**
117117
* an associated **Engagement**
118118

119-
Tests can be created in different ways. Scan data can be directly imported to an Engagement, which will then create a new Test containing that data. Tests can also be created in advance without scan data, as part of planning future Engagements.
119+
Tests can be created in different ways. Tests can be automatically created when scan data is imported directly into to an Engagement, resulting in a new Test containing the scan data. Tests can also be created in anticipation of planning future engagements, or for manually entered security findings requiring tracking and remediation.
120+
121+
### **Test Types**
122+
123+
DefectDojo supports two categories of Test Types:
124+
125+
1. **Parser-based Test Types**: These correspond to specific security scanners that produce output in formats like XML, JSON, or CSV. When importing scan results, DefectDojo uses specialized parsers to convert the scanner output into Findings.
126+
127+
2. **Non-parser Test Types**: These are used for manually created findings not imported from a scan files.
128+
The following Test Types appear in the "Scan Type" dropdown when creating a new test, but will not appear when selecting "Import Scan":
129+
* API Test
130+
* Static Check
131+
* Pen Test
132+
* Web Application Test
133+
* Security Research
134+
* Threat Modeling
135+
* Manual Code Review
136+
137+
Non-parser Test Types should be used when you need to manually create findings that require remediation but don't originate from automated scanner output.
120138

121139
#### **How do Tests interact with each other?**
122140

@@ -163,4 +181,4 @@ Scan data generally will contain references to the hosts or endpoints affected b
163181
Examples:
164182
- https://www.example.com
165183
- https://www.example.com:8080/products
166-
- 192.168.0.36
184+
- 192.168.0.36

docs/package-lock.json

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

docs/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,14 @@
1616
"@thulite/images": "3.3.0",
1717
"@thulite/inline-svg": "1.2.0",
1818
"@thulite/seo": "2.4.1",
19-
"@tabler/icons": "3.31.0",
19+
"@tabler/icons": "3.33.0",
2020
"thulite": "2.5.0"
2121
},
2222
"devDependencies": {
2323
"prettier": "3.5.3",
24-
"vite": "6.3.4"
24+
"vite": "6.3.5"
2525
},
2626
"engines": {
27-
"node": "22.15.0"
27+
"node": "22.15.1"
2828
}
2929
}

0 commit comments

Comments
 (0)