Release: Merge release into master from: release/2.51.1#13421
Release: Merge release into master from: release/2.51.1#13421
Conversation
….52.0-dev Release: Merge back 2.51.0 into bugfix from: master-into-bugfix/2.51.0-2.52.0-dev
Bumps [django](https://github.com/django/django) from 5.1.12 to 5.1.13. - [Commits](django/django@5.1.12...5.1.13) --- updated-dependencies: - dependency-name: django dependency-version: 5.1.13 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…n Acunetix XML parser
* watson middleware: skip logging if no instances updated * watson middleware: skip logging if no instances updated
feat(helm): Add support for automountServiceAccountToken
…ttests add unit tests to test importer deduplication
fix: handle broken endpoints when <StartURL> includes a port number in Acunetix XML parser
…mprovements pghistory improvements: backfill and "empty" changes
🔴 Risk threshold exceeded.This pull request contains several security concerns: sensitive edits in dojo/user/views.py, verbose DB query logging in pghistory_backfill.py that can expose sensitive data if run in production, use of a third-party GitHub Action that can push changes (supply-chain risk), and multiple potential SQL injection issues in pghistory_backfill_simple.py and pghistory_backfill_fast.py where table/identifier names are interpolated into SQL without proper validation or quoting.
🔴 Configured Codepaths Edit in
|
| Vulnerability | Configured Codepaths Edit |
|---|---|
| Description | Sensitive edits detected for this file. Sensitive file paths and allowed authors can be configured in .dryrunsecurity.yaml. |
🟡 Potential SQL Injection in dojo/management/commands/pghistory_backfill_fast.py
| Vulnerability | Potential SQL Injection |
|---|---|
| Description | The command constructs and executes multiple raw SQL statements by interpolating table names and SQL fragments into query strings (e.g. f"SELECT COUNT(*) FROM {table_name}"). Table names are derived from the model_name parameter (which can be influenced via the --model CLI argument) and are inserted directly into SQL without validation or proper quoting. Although most value parameters use parameterized queries, any SQL constructed with f-strings or string concatenation (especially identifiers like table names or the COPY SQL) can allow injection or cause malformed SQL if an attacker controls model_name or other derived strings. Additionally, queries that embed event_table_name and table_name directly (including the COPY statement) are executed against the database without sanitizing or quoting identifiers. |
django-DefectDojo/dojo/management/commands/pghistory_backfill_fast.py
Lines 1 to 543 in a1737ee
🟡 Potential SQL Injection in dojo/management/commands/pghistory_backfill_simple.py
| Vulnerability | Potential SQL Injection |
|---|---|
| Description | The command constructs SQL strings using table names interpolated directly into f-strings (e.g. f"SELECT COUNT(*) FROM {table_name}", f"SELECT t.id FROM {table_name} t ... {event_table_name} ...", and the INSERT INTO {event_table_name} ... FROM {table_name} t ..."). While parameterized queries are used for values (e.g. cursor.execute(..., [event_table_name]) when querying information_schema and for passing id arrays), table names and column lists are not passed as query parameters and come from apps.get_model(model_name) output. If any of the model_name values or the resolved table names could be influenced by user input (via the --models argument or other misconfiguration) or if apps.get_model were tricked to return a model with a malicious db_table value, an attacker could inject SQL through those interpolated identifiers. SQL identifiers cannot be parameterized via the DB API, so they must be validated or quoted safely. The vulnerable lines are the places where f-strings include table names directly into SQL statements. |
GitHub Actions Supply Chain Risk in .github/workflows/helm-docs-updates.yml
| Vulnerability | GitHub Actions Supply Chain Risk |
|---|---|
| Description | The GitHub Actions workflow uses a third-party action losisin/helm-docs-github-action with git-push: true. This allows the action to push changes directly to the repository. If this third-party action is compromised, it could push malicious code to the repository, bypassing pull request reviews for automated branches like renovate/ and dependabot/. |
django-DefectDojo/.github/workflows/helm-docs-updates.yml
Lines 1 to 25 in a1737ee
Information Disclosure via Verbose Database Query Logging in dojo/management/commands/pghistory_backfill.py
| Vulnerability | Information Disclosure via Verbose Database Query Logging |
|---|---|
| Description | The pghistory_backfill.py management command enables verbose database query logging by default, setting settings.DEBUG = True and directing SQL queries (including parameters) to application logs. This can expose sensitive data from models like Dojo_User, Cred_User, Finding, and Engagement in plain text within logs if the command is run in a production environment without explicitly disabling logging. |
django-DefectDojo/dojo/management/commands/pghistory_backfill.py
Lines 56 to 144 in a1737ee
We've notified @mtesauro.
All finding details can be found in the DryRun Security Dashboard.
Release: Merge release into master from: release/2.51.1
Release triggered by
rossops