Skip to content

Commit e4df9d9

Browse files
authored
Merge pull request #14371 from DefectDojo/release/2.55.4
Release: Merge release into master from: release/2.55.4
2 parents f8cc62c + 71b8f42 commit e4df9d9

File tree

13 files changed

+89
-12
lines changed

13 files changed

+89
-12
lines changed

.github/workflows/release-2-tag-docker-push.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ jobs:
7171
secrets: inherit
7272

7373
release-drafter:
74-
needs: publish-container-digests
74+
needs: [publish-container-digests, release-helm-chart]
7575
uses: ./.github/workflows/release-drafter.yml
7676
with:
7777
version: ${{ inputs.release_number }}

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.55.3",
3+
"version": "2.55.4",
44
"license" : "BSD-3-Clause",
55
"private": true,
66
"dependencies": {

docker-compose.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@ services:
122122
postgres:
123123
image: postgres:18.1-alpine@sha256:4eb15de8e7b692c02427a2df278d18eb89422a534e428efb6d43c968250334d4
124124
environment:
125+
PGDATA: /var/lib/postgresql/data
125126
POSTGRES_DB: ${DD_DATABASE_NAME:-defectdojo}
126127
POSTGRES_USER: ${DD_DATABASE_USER:-defectdojo}
127128
POSTGRES_PASSWORD: ${DD_DATABASE_PASSWORD:-defectdojo}

docs/content/releases/os_upgrading/2.51.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,14 @@ If you already have a valid backup of the postgres 16 database, you can start at
7777

7878
_Note: If you are using a bound volume, the path has changed for Postgres18. It is now `/var/lib/postgresql/` instead of `/var/lib/postgresql/data`. Failure to change the path may result in errors about failure to create a shim task. See the discussion in [docker-library/postgres](https://github.com/docker-library/postgres/issues/1370)._
7979

80+
> **Postgres Data storage**
81+
>
82+
> PostgreSQL 18 changed its default `PGDATA` path from `/var/lib/postgresql/data` to `/var/lib/postgresql/18/docker`. Because the Docker volume was mounted at `/var/lib/postgresql/data`, data was written to the container's ephemeral layer instead of the volume.
83+
>
84+
> This has been fixed in 2.55.4 by explicitly setting `PGDATA: /var/lib/postgresql/data` in `docker-compose.yml`.
85+
>
86+
> If you customise the postgres service in your own `docker-compose.override.yml`, make sure `PGDATA` is set to the path where your volume is mounted.
87+
8088
### 0. Backup
8189

8290
Always back up your data before starting and save it somewhere.

docs/content/releases/pro/changelog.md

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,20 @@ Here are the release notes for **DefectDojo Pro (Cloud Version)**. These release
1010

1111
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](/changelog/os_upgrading/upgrading_guide/).
1212

13-
## Feb 2025: v2.55
13+
## Feb 2026: v2.55
14+
15+
### Feb 17, 2026: v2.55.3
16+
17+
* **(Pro UI)** Added “Scheduled” status to Engagements to enhances the tracking and management of Engagements.
18+
19+
### Feb 10, 2026: v2.55.2
20+
21+
* **(Pro UI)** Enhanced Organization addition permissions with configuration checks.
22+
23+
### Feb 4, 2026: v2.55.1
24+
25+
* **(Pro UI)** Findings: Added support for Custom Fields; key-value pairs that can be added to Findings.
26+
* **(Pro UI)** Fixed an issue where a date filter could throw a 500 error.
1427

1528
### Feb 2, 2026: v2.55.0
1629

docs/content/triage_findings/findings_workflows/finding_status_definitions.md

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,3 +89,52 @@ If you have a testing and remediation effort related to a specific aspect of you
8989
Once you’ve reviewed a Finding, you might discover that the vulnerability reported does not actually exist. The False Positive status will be maintained by reimport and prevent matching findings from being opened or closed, which assists with noise reduction.
9090

9191
If a different scanning tool finds a similar Finding, it will not be recorded as a False Positive. DefectDojo can only compare Findings within the same tool to determine if a Finding has already been recorded.
92+
93+
## Severity vs Risk
94+
Severity reflects the technical impact of an issue if exploited. Risk reflects the business urgency and required response, factoring in context such as exposure, exploitability, compensating controls, and operational impact.
95+
96+
97+
## Risk Level Definitions
98+
### Urgent
99+
A finding that represents an immediate and unacceptable business risk.
100+
101+
High likelihood of exploitation or active exploitation observed
102+
Direct exposure of critical systems, sensitive data, or customer environments
103+
Limited or no compensating controls
104+
Failure to act could result in severe business disruption, regulatory impact, or reputational damage
105+
106+
Expected action: Immediate response Typical SLA: Emergency remediation
107+
108+
109+
### Needs Action
110+
A finding that poses a clear and actionable risk requiring timely remediation or mitigation.
111+
112+
A realistic attack path exists
113+
The affected asset is exposed, business-critical, or customer-facing
114+
Compensating controls are weak, missing, or unverified
115+
Exploitation would result in measurable business, security, or compliance impact
116+
117+
Expected action: Active remediation or mitigation required Typical SLA: Short-term remediation window
118+
119+
120+
### Medium Risk
121+
A finding that presents a moderate level of business risk and should be remediated in a planned timeframe.
122+
123+
Meaningful impact could occur if exploited
124+
Some exposure exists, but exploitation requires specific conditions or privileges
125+
May affect production systems or customer data indirectly
126+
Often aligns with medium or high severity issues without immediate exploitability
127+
128+
Expected action: Prioritized remediation Typical SLA: Planned remediation window
129+
130+
131+
### Low Risk
132+
A finding that presents minimal business impact and does not require immediate action.
133+
134+
No known exploitation in the wild
135+
Limited or no exposure (e.g., internal systems, non-production, strong compensating controls)
136+
Remediation can be addressed as part of normal development or maintenance cycles
137+
Often informational or low-severity findings, but may include higher-severity issues that are well-mitigated
138+
139+
Expected action: Track and address opportunistically Typical SLA: Best effort / backlog
140+

dojo/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@
44
# Django starts so that shared_task will use this app.
55
from .celery import app as celery_app # noqa: F401
66

7-
__version__ = "2.55.3"
7+
__version__ = "2.55.4"
88
__url__ = "https://github.com/DefectDojo/django-DefectDojo" # noqa: RUF067
99
__docs__ = "https://documentation.defectdojo.com" # noqa: RUF067

dojo/importers/endpoint_manager.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,8 @@ def chunk_endpoints_and_disperse(
114114
endpoints: list[Endpoint],
115115
**kwargs: dict,
116116
) -> None:
117+
if not endpoints:
118+
return
117119
dojo_dispatch_task(EndpointManager.add_endpoints_to_unsaved_finding, finding, endpoints, sync=True)
118120

119121
@staticmethod

dojo/importers/location_manager.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,8 @@ def chunk_locations_and_disperse(
8484
locations: list[AbstractLocation],
8585
**kwargs: dict,
8686
) -> None:
87+
if not locations:
88+
return
8789
dojo_dispatch_task(LocationManager.add_locations_to_unsaved_finding, finding, locations, sync=True)
8890

8991
@staticmethod

dojo/management/commands/dedupe.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import argparse
12
import logging
23

34
import pghistory
@@ -53,7 +54,7 @@ def add_arguments(self, parser):
5354
parser.add_argument("--dedupe_sync", action="store_true", help="Run dedupe in the foreground, default false")
5455
parser.add_argument(
5556
"--dedupe_batch_mode",
56-
action="store_true",
57+
action=argparse.BooleanOptionalAction,
5758
default=True,
5859
help="Deduplicate in batches (similar to import), works with both sync and async modes (default: True)",
5960
)
@@ -130,12 +131,13 @@ def _run_dedupe(self, *, restrict_to_parsers, hash_code_only, dedupe_only, dedup
130131
elif dedupe_sync:
131132
mass_model_updater(Finding, findings, do_dedupe_finding_task_internal, fields=None, order="desc", page_size=100, log_prefix="deduplicating ")
132133
else:
133-
# async tasks only need the id
134+
# async tasks only need the id; clear select/prefetch_related to avoid
135+
# FieldError when combining only("id") with select_related traversal
134136
from dojo.celery_dispatch import dojo_dispatch_task # noqa: PLC0415 circular import
135137

136138
mass_model_updater(
137139
Finding,
138-
findings.only("id"),
140+
findings.select_related(None).prefetch_related(None).only("id"),
139141
lambda f: dojo_dispatch_task(do_dedupe_finding_task, f.id),
140142
fields=None,
141143
order="desc",

0 commit comments

Comments
 (0)