Release: Merge back 3.1.300 into dev from: master-into-dev/3.1.300-3.2.0-dev - #15363
Conversation
…3.2.0-dev Release: Merge back 3.1.200 into bugfix from: master-into-bugfix/3.1.200-3.2.0-dev
july 17 docs maintenance
* docs(sensei): add Sensei chapter as its own top-level tab Document DefectDojo Pro's Sensei (AI scan-and-fix) feature as a new top-level docs tab with a multi-page chapter: - content/sensei/: About, Set Up, Fixing Findings, Reference (audience: pro) plus an Open Source "Pro-only feature" explainer (OS__sensei.md). - menus.en.toml: Sensei top-level tab + sidebar_sensei section menu. - params.toml: add "sensei" to doks.sectionNav so the chapter renders a left sidebar. - custom.js: generalize the edition-aware top-nav so the Sensei tab swaps between the OS explainer and the Pro guide (mirrors "Model Your Assets"). - pro_features.md: add a Sensei entry linking to the guide. - Screenshots captured from a DefectDojo-org demo repo (no internal repos). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * docs(sensei): document GitLab connectivity and clean prose Add the GitLab portion of the Sensei docs alongside the existing GitHub content: a "Connect GitLab" section (access-token scopes/role, base URL, webhook setup), a provider note in About, and a "GitLab specifics" reference section (merge requests, commit-status gate, self-managed). Also remove em dashes and tidy phrasing across the Sensei chapter for a consistent, plain style. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* docs: add Pro changelog entry for 3.1.200 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * docs: add Pro changelog entry for 3.1.202 Add a 3.1.202 entry above 3.1.200, covering only the changes not already documented in the 3.1.200 entry. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…se fields, push filters) (#15298) * docs(integrators): refresh ServiceNow guide — OAuth (Zurich + legacy), close fields, push filters [sc-13803] - Instance Setup now covers both auth paths: ServiceNow Zurich+ (New Inbound Integration Experience -> OAuth client-credentials grant, with an OAuth Application User) and earlier releases (the legacy App Registry + refresh token). ServiceNow deprecated the classic 'Create an OAuth API endpoint for external clients' option our guide relied on. Also fixes the duplicated 'Client ID' field label (the second one is the Client Secret). - New 'Close and resolution fields' section documenting the apply_on custom field recipe for instances whose data policy makes the Resolution code mandatory on close (the 403 'Data Policy Exception'), with a worked example and the reserved-field / sys_id notes. - integrations.md documents the new per-assignment push filters (minimum severity, active-only) and the one-assignment-per-asset guidance. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * docs(servicenow): document custom numeric state values in the status mapping Customized instances (and non-incident tables) use state values outside the standard set. Documents that numeric values pass through as configured, and that the built-in Resolution-code default only accompanies standard resolved/closed states - custom values pair with the close/resolution field mappings. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * docs(servicenow): transition timing, JSON value coercion, and custom-table state caveats Documents when transition mappings actually fire (state changes only - one journal entry per transition), the JSON typing of mapping values including the null-clears-field behavior and quoting escape, and the Incident-semantics caveat for standard state values on non-incident tables. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
…r API (#15296) Assigning or changing a user's configuration permissions through the user API is now limited to superusers, matching how the serializer already treats the other privilege-bearing fields (staff and superuser status). Adds a regression test. No functional change for superusers. Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add a Sonatype IQ (Nexus Lifecycle) section to the connectors tool reference: prerequisites (View IQ Elements permission, user token, on-prem/SaaS base URLs) and connector mappings (Location, Username, User Token, Stage, Minimum Severity). Pairs with connector DefectDojo-Inc/connectors#712 and DD Pro registration DefectDojo-Inc/dojo-pro#1905. Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Document the new Kubescape connector on the Pro connectors reference: it reads the Kubescape operator's in-cluster posture results (WorkloadConfigurationScan objects, spdx.softwarecomposition.kubescape.io) via the Kubernetes API — no ARMO SaaS account required — mapping each namespace to a Product and each failed control to a Finding. Adds it to the tool reference and the supported-connectors list. Story: sc-13764
Document the new Intruder.io connector on the Pro connectors reference: it uses the Intruder REST API (Bearer access token) to pull the whole account's posture — targets -> issues -> occurrences — mapping each target to a Product and each occurrence to a Finding. Add it to the tool reference and the supported-connectors list. Story: sc-13768
Document the runZero asset / attack-surface connector: prerequisites (XT Export Token, community tier), the Location/Secret/Import-Vulnerabilities/ Minimum-Severity mappings, the whole-org asset -> Record model (site becomes Product Type), and the optional vulnerability -> finding import. Companion to connectors#732 and dojo-pro#1939. sc-13774 Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
The open-source "Go Pro" promo banner (data-source="os") renders from identical markup in both the classic (Bootstrap) and Tailwind base templates, but the classic stylesheet was missing the OS-banner-specific CSS the Tailwind stylesheet already had. As a result the dismiss control fell back to a bulky default browser button and the banner row was not laid out consistently. Port the same OS-banner block into classic/dojo.css so both UIs render the banner identically: a single centered row (dismiss ×, headline, expand caret) with a compact bordered dismiss button, and the expanded message dropping to its own full-width row. Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
) These are live in the production Pro connector/integration catalog but had no reference docs. Adds a Bugcrowd finding-connector section and a ServiceNow CMDB asset-connector section to the connectors tool reference, and a Linear section to the downstream integrators reference (plus the two integrations.md index lists). Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Setup and usage for the Sysdig Secure connector: API token from Settings, region/base URL Location, connector field mappings (scopes + runtime product grouping), and import behavior (whole-account sync; runtime findings dynamic + k8s-tagged, registry/pipeline static; NEGLIGIBLE -> Info). Placed alphabetically between Snyk and Tenable. Story: sc-13726
Setup and usage for the Acunetix 360 connector: API User ID + API Token (HTTP Basic) from the account API Settings page, the cloud Location, connector field mappings, and import behavior (one Record per scanned website; findings from the latest completed scan; accepted-risk / false-positive imported but flagged inactive). Distinguishes the cloud product from the on-prem Acunetix Standard scanner. Placed first (alphabetical). Story: sc-13709
…#15195) In every *_pdf_report.html template the Executive-Summary charts render from a jQuery ready handler, while the table-of-contents builder runs on window.onload and reassigns #contents.innerHTML. The chart containers live inside #contents, so whenever the charts paint before the TOC rebuild, the innerHTML round-trip re-parses the subtree and silently discards the painted canvases (Chart.js instances in the new UI, Flot canvases in the classic UI), leaving blank chart boxes with no console error. The two orderings race each other: on a warm local cache the async ready callback can land after onload and the charts survive, but with realistic network latency the charts paint first and are destroyed. The symptom was reported as far back as #2294 and #3253 (2020, Flot era) and never fixed - both were auto-closed by the stale bot. Wrap the chart rendering in renderReportCharts() in all seven report templates (engagement, product, product type, test, endpoint, finding, product endpoint) in both template trees (dojo/templates and dojo/templates_classic) and invoke it after the TOC builder has finished (or on a ready handler when the TOC is disabled), so the charts are always created into the final DOM. In five of the seven templates (product, test, endpoint, finding, product endpoint) the window.onload TOC builder was also missing the {% if include_table_of_contents %} guard the other templates have, so it ran even with the table of contents disabled. Because the #contents wrapper is itself rendered only when the TOC is enabled, the ungated handler dereferences a null #contents on its first line and throws an uncaught TypeError before it can rewrite anything (the finding template null-checks #contents and stays silent) - so the charts survive in that configuration, but every such report logs a console error. Those five now carry the same guard as their siblings, so the handler is not emitted when the TOC is off. In the test template the chart code was split between a ready handler and top-level script code; both pieces are consolidated into renderReportCharts() preserving their order, and its call sites stay inside {% if include_executive_summary %} because the function definition is only rendered with the executive summary. Add a regression assertion to the Selenium report tests that the summary charts end up painted when executive summary and table of contents are enabled together (factored into a helper and applied to the product type, product, engagement, test, and product-endpoint report tests). The check is chart-library agnostic (painted canvas pixels), so it holds on both the Chart.js and classic Flot report pages. Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
…15300) Hardening to object-level authorization on several API and UI write paths that associate locations and endpoints with findings and products. These paths now restrict the selectable references to the objects the requesting user is authorized for, matching the scoping the UI forms and dedicated viewsets already apply. Adds regression tests. No functional change for correctly-permissioned users.
The bundled PostgreSQL server is 18.x, but the client tools shipped in the images lagged behind (Debian: 17, Alpine/nginx: 16). pg_dump refuses to dump a server newer than itself, so `manage.py dbbackup` failed with "aborting because of server version mismatch". Align the client to the server (v18): - Alpine images: bump base to alpine3.23 and use postgresql18-client (18 is not available in the alpine3.22 repos). - Debian image: add the PostgreSQL APT (PGDG) repository and install postgresql-client-18 (Debian trixie only ships v17). Fixes #15301
* change fortify parser to prefer true line * create v2 scan
Notes get added to a test through the notes endpoint, not when you create the test. The finding create serializer already keeps notes read-only, so this does the same for tests. Added a regression test.
Document the Quay container-registry connector: prerequisites (OAuth token, Clair enabled), the Location/Secret/Namespace/Minimum-Severity mappings, and the repository -> Record + Clair-report -> finding model (manifest dedupe, skip-unscanned, Negligible/Unknown -> Informational). Companion to connectors#729 and dojo-pro#1936. sc-13766 Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: Cody Maffucci <46459665+Maffooch@users.noreply.github.com>
Bumps [gitpython](https://github.com/gitpython-developers/GitPython) from 3.1.50 to 3.1.52. - [Release notes](https://github.com/gitpython-developers/GitPython/releases) - [Changelog](https://github.com/gitpython-developers/GitPython/blob/main/CHANGES) - [Commits](gitpython-developers/GitPython@3.1.50...3.1.52) --- updated-dependencies: - dependency-name: gitpython dependency-version: 3.1.52 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Setup and usage for the Black Duck SCA connector: API token (exchanged for a short-lived bearer) from My Access Tokens, the hub Location, connector field mappings, and import behavior (one Record per project; findings from the project's released version's vulnerable BOM components). Placed alphabetically between Backstage and Bitbucket. Story: sc-13723
… connections (#15349) Extend the Sensei docs for the new self-hosted-scanning SCM providers: - setup_sensei.md: "Choose a source-control provider" section + the four per-provider connect flows (GitHub / GitHub Enterprise Server / GitLab / Bitbucket / Azure DevOps) in the existing Step-1/2/3 style, with per-provider specifics. Refreshed the Connections-table description (Installs column removed; multi-provider). - sensei_reference.md: per-provider auth/webhook specifics blocks and generalized troubleshooting. - about_sensei.md: intro/prerequisites updated for the broader provider set. - images: refreshed connections.png (multi-provider table) and added setup_providers.png (the source-control chooser + GitHub host / GHES field).
Document the NeuVector connector: the controller username/password prerequisite, the Location/Username/Password/Skip-TLS/Minimum-Severity mappings, and the whole-controller image -> Record + CVE -> finding model (severity, package/version, CVSSv3, fix, dedupe key). Companion to connectors#757 and dojo-pro#2007. sc-13905 Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Adds a tool-reference entry for the GitHub asset connector, which imports GitHub repositories as Assets via the GitHub GraphQL API (repository metadata only). Distinguishes it from the existing GitHub Advanced Security connector, which imports security alerts as findings. Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
…5191) Only superusers may change the username or email of another account. Prevents account takeover via changing a victim's email then triggering password reset. Users may still edit their own identity fields. Config-permission guards already landed via #15296; this adds the remaining identity-field guard PR #15191 intended. Co-authored-by: Cody Maffucci <46459665+Maffooch@users.noreply.github.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
DefectDojo Pro can now build roles from individual permissions, with the five built-in roles becoming locked, clonable presets. Document that, and correct the existing role docs that describe the five roles as the whole model. - Add admin/user_management/PRO__custom_rbac_roles.md: enabling the feature, who can manage roles, the Roles table, cloning vs starting from scratch, all four permission groups, the grid legend and the View/Manage gate rule, assignment surfaces, how custom global roles map onto the built-in tiers, role history, and the API. - Reframe the built-in roles as locked presets in the permissions overview and the permission charts, and document the union rule for a user holding more than one role on the same object. - Link the new page from the User Management section index.
…behavior (#15347) Documents the opt-in artifact-level record granularity (one record per first-level entry under a repository), automatic parent/child asset-hierarchy relationships, the mode-switch runbook in both directions, and corrects the sync description: every sync generates a complete per-repository report (the previous text described incremental delta reports, which the connector does not do). Co-authored-by: devGregA <greg-agent-2@defectdojo.com> Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…#15360) The v3_relabel feature moved from environment-driven to DB-backed and self-serve, but the docs still described the old behavior. Three places were stale: * The Feature availability table listed relabeling as controlled by "Deployment configuration: DD_ENABLE_V3_ORGANIZATION_ASSET_RELABEL". That table exists to list exceptions to the self-serve rule, and relabeling is no longer one, so the row is removed. Its facts (on by default, plus which surfaces the toggle governs) move into a new "Organization / Asset Relabeling" subsection next to the toggle instructions. * The "Managed by deployment" example used relabeling, which is no longer env-managed. Swapped to DD_V3_FEATURE_LOCATIONS, which is genuinely source=env with a restart-required warning. The DD_ prefix matches what the Feature Flags page renders. * The asset hierarchy page told on-premise users to set the env var and restart, and Cloud users to email Support. It now documents both controls and what each one covers. The toggle governs the Pro UI only. The Classic UI labels, its URLs, and generated reports read DD_ENABLE_V3_ORGANIZATION_ASSET_RELABEL at process start, and no restart makes the toggle reach them: those branches live in dojo/asset/labels.py, dojo/organization/labels.py, dojo/asset/urls.py, dojo/organization/urls.py, dojo/metrics/urls.py, dojo/system_settings/labels.py, and dojo/reports/ui/urls.py, and the setting is only ever assigned from the environment in settings.dist.py. Verified by forcing the env var and the DB flag to disagree in a running instance: OSS labels followed the environment while only Pro's overlay followed the database. Also corrects two adjacent stale claims on the hierarchy page: the name change is on by default as of 3.0 rather than opt-in, and the two hierarchy pieces are still enabled by different means. Co-authored-by: Claude <noreply@anthropic.com>
Release: Merge release into master from: release/3.1.300
|
This pull request contains multiple critical findings where sensitive codepaths in the
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in
|
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/templates/dojo/endpoint_pdf_report.html' matches configured sensitive codepath pattern 'dojo/templates/**/*.html' and was modified by 'stevewallone' (commit e67e8fa) who is not in the allowed authors list. |
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/templates/dojo/engagement_pdf_report.html (drs_96794d68)
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/templates/dojo/engagement_pdf_report.html' matches configured sensitive codepath pattern 'dojo/templates/**/*.html' and was modified by 'stevewallone' (commit e67e8fa) who is not in the allowed authors list. |
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/templates/dojo/finding_pdf_report.html (drs_4de20038)
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/templates/dojo/finding_pdf_report.html' matches configured sensitive codepath pattern 'dojo/templates/**/*.html' and was modified by 'stevewallone' (commit e67e8fa) who is not in the allowed authors list. |
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/templates/dojo/product_endpoint_pdf_report.html (drs_b6c5e4a8)
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/templates/dojo/product_endpoint_pdf_report.html' matches configured sensitive codepath pattern 'dojo/templates/**/*.html' and was modified by 'stevewallone' (commit e67e8fa) who is not in the allowed authors list. |
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/templates/dojo/product_pdf_report.html (drs_5ea8599d)
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/templates/dojo/product_pdf_report.html' matches configured sensitive codepath pattern 'dojo/templates/**/*.html' and was modified by 'stevewallone' (commit e67e8fa) who is not in the allowed authors list. |
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/templates/dojo/product_type_pdf_report.html (drs_3d4674a6)
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/templates/dojo/product_type_pdf_report.html' matches configured sensitive codepath pattern 'dojo/templates/**/*.html' and was modified by 'stevewallone' (commit e67e8fa) who is not in the allowed authors list. |
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/templates/dojo/test_pdf_report.html (drs_b450b941)
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/templates/dojo/test_pdf_report.html' matches configured sensitive codepath pattern 'dojo/templates/**/*.html' and was modified by 'stevewallone' (commit e67e8fa) who is not in the allowed authors list. |
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/api_v2/serializers.py (drs_cc018ff2)
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/api_v2/serializers.py' matches configured sensitive codepath pattern 'dojo/api_v2/*.py' and was modified by 'svader0' (commit 3f2ebcf) who is not in the allowed authors list. |
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/db_migrations/0280_vulnerability_id_upper_index.py (drs_005b2f02)
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/db_migrations/0280_vulnerability_id_upper_index.py' matches configured sensitive codepath pattern 'dojo/db_migrations/*.py' and was modified by 'rossops' (commit f091b53) who is not in the allowed authors list. |
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/finding/models.py (drs_04d1443d)
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/finding/models.py' matches configured sensitive codepath pattern 'dojo/finding/*.py' and was modified by 'rossops' (commit f091b53) who is not in the allowed authors list. |
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/api_v2/views.py (drs_3c0ad0f8)
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/api_v2/views.py' matches configured sensitive codepath pattern 'dojo/api_v2/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list. |
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/authorization/api_permissions.py (drs_42cd846b)
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/authorization/api_permissions.py' matches configured sensitive codepath pattern 'dojo/authorization/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list. |
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/authorization/query_registrations.py (drs_78bd9eb2)
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/authorization/query_registrations.py' matches configured sensitive codepath pattern 'dojo/authorization/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list. |
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/authorization/template_filters.py (drs_6bdd6808)
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/authorization/template_filters.py' matches configured sensitive codepath pattern 'dojo/authorization/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list. |
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/celery.py (drs_dee4eef8)
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/celery.py' matches configured sensitive codepath pattern 'dojo/celery.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list. |
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/db_migrations/0281_vulnerability_id_type.py (drs_ac166368)
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/db_migrations/0281_vulnerability_id_type.py' matches configured sensitive codepath pattern 'dojo/db_migrations/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list. |
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/db_migrations/0282_backfill_vulnerability_id_type.py (drs_08bb5c92)
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/db_migrations/0282_backfill_vulnerability_id_type.py' matches configured sensitive codepath pattern 'dojo/db_migrations/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list. |
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/db_migrations/0283_unique_finding_vulnerability_id.py (drs_215bfe68)
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/db_migrations/0283_unique_finding_vulnerability_id.py' matches configured sensitive codepath pattern 'dojo/db_migrations/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list. |
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/db_migrations/0284_finding_cwe.py (drs_0b17b5d6)
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/db_migrations/0284_finding_cwe.py' matches configured sensitive codepath pattern 'dojo/db_migrations/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list. |
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/db_migrations/0285_backfill_finding_cwe.py (drs_c10805af)
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/db_migrations/0285_backfill_finding_cwe.py' matches configured sensitive codepath pattern 'dojo/db_migrations/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list. |
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/db_migrations/0286_cicd_infrastructure.py (drs_bbd5c6d0)
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/db_migrations/0286_cicd_infrastructure.py' matches configured sensitive codepath pattern 'dojo/db_migrations/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list. |
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/endpoint/queries.py (drs_8a88ebb3)
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/endpoint/queries.py' matches configured sensitive codepath pattern 'dojo/endpoint/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list. |
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/engagement/models.py (drs_4df0ea5d)
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/engagement/models.py' matches configured sensitive codepath pattern 'dojo/engagement/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list. |
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/engagement/queries.py (drs_eaa8af7b)
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/engagement/queries.py' matches configured sensitive codepath pattern 'dojo/engagement/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list. |
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/finding/cwe.py (drs_014ade79)
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/finding/cwe.py' matches configured sensitive codepath pattern 'dojo/finding/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list. |
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/finding/deduplication.py (drs_caecca94)
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/finding/deduplication.py' matches configured sensitive codepath pattern 'dojo/finding/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list. |
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/finding/helper.py (drs_f1660e2e)
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/finding/helper.py' matches configured sensitive codepath pattern 'dojo/finding/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list. |
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/finding/queries.py (drs_6a144727)
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/finding/queries.py' matches configured sensitive codepath pattern 'dojo/finding/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list. |
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/finding/vulnerability_id.py (drs_dfb893bb)
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/finding/vulnerability_id.py' matches configured sensitive codepath pattern 'dojo/finding/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list. |
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/finding_group/queries.py (drs_903ff8ac)
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/finding_group/queries.py' matches configured sensitive codepath pattern 'dojo/finding_group/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list. |
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/forms.py (drs_5a91caa5)
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/forms.py' matches configured sensitive codepath pattern 'dojo/forms.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list. |
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/importers/base_importer.py (drs_d74e897d)
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/importers/base_importer.py' matches configured sensitive codepath pattern 'dojo/importers/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list. |
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/importers/default_reimporter.py (drs_c6841692)
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/importers/default_reimporter.py' matches configured sensitive codepath pattern 'dojo/importers/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list. |
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/jira/helper.py (drs_90719830)
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/jira/helper.py' matches configured sensitive codepath pattern 'dojo/jira/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list. |
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/jira/queries.py (drs_b39ae408)
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/jira/queries.py' matches configured sensitive codepath pattern 'dojo/jira/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list. |
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/jira/services.py (drs_97e5f879)
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/jira/services.py' matches configured sensitive codepath pattern 'dojo/jira/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list. |
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/middleware.py (drs_960099e6)
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/middleware.py' matches configured sensitive codepath pattern 'dojo/middleware.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list. |
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/models.py (drs_420c8fad)
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/models.py' matches configured sensitive codepath pattern 'dojo/models.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list. |
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/notes/helper.py (drs_7b5e97da)
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/notes/helper.py' matches configured sensitive codepath pattern 'dojo/notes/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list. |
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/product/queries.py (drs_da43f6c3)
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/product/queries.py' matches configured sensitive codepath pattern 'dojo/product/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list. |
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/product_type/queries.py (drs_79f5d215)
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/product_type/queries.py' matches configured sensitive codepath pattern 'dojo/product_type/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list. |
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/risk_acceptance/queries.py (drs_9f6f0758)
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/risk_acceptance/queries.py' matches configured sensitive codepath pattern 'dojo/risk_acceptance/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list. |
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/tasks.py (drs_204e8c78)
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/tasks.py' matches configured sensitive codepath pattern 'dojo/tasks.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list. |
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/templates/base.html (drs_a185fb7d)
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/templates/base.html' matches configured sensitive codepath pattern 'dojo/templates/*.html' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list. |
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/templates/dojo/ad_hoc_findings.html (drs_6d77a3fe)
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/templates/dojo/ad_hoc_findings.html' matches configured sensitive codepath pattern 'dojo/templates/**/*.html' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list. |
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/templates/dojo/add_findings.html (drs_09c04c3e)
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/templates/dojo/add_findings.html' matches configured sensitive codepath pattern 'dojo/templates/**/*.html' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list. |
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/templates/dojo/cicd_infrastructure.html (drs_2fc57558)
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/templates/dojo/cicd_infrastructure.html' matches configured sensitive codepath pattern 'dojo/templates/**/*.html' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list. |
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/templates/dojo/delete_cicd_infrastructure.html (drs_805a55d5)
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/templates/dojo/delete_cicd_infrastructure.html' matches configured sensitive codepath pattern 'dojo/templates/**/*.html' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list. |
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/templates/dojo/edit_cicd_infrastructure.html (drs_18700474)
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/templates/dojo/edit_cicd_infrastructure.html' matches configured sensitive codepath pattern 'dojo/templates/**/*.html' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list. |
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/templates/dojo/edit_finding.html (drs_d074d35b)
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/templates/dojo/edit_finding.html' matches configured sensitive codepath pattern 'dojo/templates/**/*.html' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list. |
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/templates/dojo/findings_list_snippet.html (drs_9eee0b40)
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/templates/dojo/findings_list_snippet.html' matches configured sensitive codepath pattern 'dojo/templates/**/*.html' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list. |
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/templates/dojo/new_cicd_infrastructure.html (drs_18428540)
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/templates/dojo/new_cicd_infrastructure.html' matches configured sensitive codepath pattern 'dojo/templates/**/*.html' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list. |
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/templates/dojo/view_eng.html (drs_8f2c0d5b)
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/templates/dojo/view_eng.html' matches configured sensitive codepath pattern 'dojo/templates/**/*.html' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list. |
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/templates/dojo/view_finding.html (drs_788cbb47)
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/templates/dojo/view_finding.html' matches configured sensitive codepath pattern 'dojo/templates/**/*.html' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list. |
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/templates/dojo/view_test.html (drs_097e8f1a)
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/templates/dojo/view_test.html' matches configured sensitive codepath pattern 'dojo/templates/**/*.html' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list. |
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/test/queries.py (drs_1cebfa36)
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/test/queries.py' matches configured sensitive codepath pattern 'dojo/test/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list. |
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/tool_product/queries.py (drs_f546c15b)
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/tool_product/queries.py' matches configured sensitive codepath pattern 'dojo/tool_product/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list. |
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/urls.py (drs_38aec65a)
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/urls.py' matches configured sensitive codepath pattern 'dojo/urls.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list. |
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/user/queries.py (drs_0681bc5b)
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/user/queries.py' matches configured sensitive codepath pattern 'dojo/user/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list. |
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/user/utils.py (drs_9d3a5ae3)
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/user/utils.py' matches configured sensitive codepath pattern 'dojo/user/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list. |
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/views.py (drs_baf08e75)
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/views.py' matches configured sensitive codepath pattern 'dojo/views.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list. |
We've notified @mtesauro.
Comment to provide feedback on these findings.
Report false positive: @dryrunsecurity fp [FINDING ID] [FEEDBACK]
Report low-impact: @dryrunsecurity nit [FINDING ID] [FEEDBACK]
Example: @dryrunsecurity fp drs_90eda195 This code is not user-facing
All finding details can be found in the DryRun Security Dashboard.
…0-3.2.0-dev Resolved conflicts: - requirements.txt: kept gitpython==3.1.54 (higher of the two pins). - dojo/finding/api/serializer.py: kept both imports (get_authorized_endpoints from the release branch, cwe_label/cwe_number from dev). Both are used. - helm/defectdojo/Chart.yaml: kept version 1.9.40-dev (higher) and dev's artifacthub.io/changes entry for the valkey 0.24.4 bump, which is unreleased and ships in 1.9.40. - helm/defectdojo/README.md: version badge aligned to 1.9.40-dev. Also relinearised the dojo migration history. Both sides branched from 0279_jira_project_transition_fields, leaving two 0280 migrations and two leaves. Kept the release branch's 0280_vulnerability_id_upper_index in place and shifted dev's chain to 0281-0286, re-pointing its first migration's dependency at 0280_vulnerability_id_upper_index. Migration references in docs/content/releases/os_upgrading/3.2.md were renumbered to match. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Conflict resolution —
|
| dev (before) | now | dependencies now points at |
|---|---|---|
0280_vulnerability_id_type |
0281_vulnerability_id_type |
0280_vulnerability_id_upper_index (was 0279_...) |
0281_backfill_vulnerability_id_type |
0282_backfill_vulnerability_id_type |
0281_vulnerability_id_type |
0282_unique_finding_vulnerability_id |
0283_unique_finding_vulnerability_id |
0282_backfill_vulnerability_id_type |
0283_finding_cwe |
0284_finding_cwe |
0283_unique_finding_vulnerability_id |
0284_backfill_finding_cwe |
0285_backfill_finding_cwe |
0284_finding_cwe |
0285_cicd_infrastructure |
0286_cicd_infrastructure |
0285_backfill_finding_cwe |
Renames were done with git mv in reverse order so no two files ever collided. Only the dependencies line changed inside each file; no operation was altered, added, or dropped.
The two adjacent index migrations do not collide at the database level — bugfix's creates dojo_vulnid_upper_idx (a UPPER(vulnerability_id), finding_id expression index) and dev's creates dojo_vuln_id_lookup_idx (a plain vulnerability_id index). Different names, different definitions, both CONCURRENTLY and idempotent, so ordering them one after the other is safe.
Follow-on edits from the renumbering
Two docstrings inside dev's migrations referenced sibling migrations by number and were correct on dev, so my shift made them wrong. I corrected exactly those:
0281_vulnerability_id_type.py— "the data backfill (0281) and the unique constraint (0282" →(0282)and(02830283_unique_finding_vulnerability_id.py— "Runs after the 0281" →0282
docs/content/releases/os_upgrading/3.2.md lists all five of dev's upgrade migrations by name, so those were renumbered to match too.
Two other docstring references were already inaccurate on dev before this merge (0282_backfill_vulnerability_id_type.py cites "(0278)", 0284_finding_cwe.py cites "(0280)"). My renumbering did not cause those and I left them alone rather than fold unrelated fixes into a merge commit. Flagging them here as a cleanup for a separate PR.
Verification performed
- No conflict markers anywhere in the tree. A recursive grep for
<<<<<<<,>>>>>>>and=======returns nothing outside.git/. The only hits are four=======lines inNOTICE, which are RST heading underlines (License/=======); that file has zero<<<<<<<or>>>>>>>markers and is byte-identical toHEAD. - No unmerged paths remain —
git diff --diff-filter=Uis empty. - Syntax valid —
py_compilepasses ondojo/finding/api/serializer.pyand all 288 migration files.helm/defectdojo/Chart.yamlparses underyaml.safe_load. - Internal consistency — Chart.yaml
versionmatches the README badge exactly; both serializer imports resolve to real definitions (cwe_number/cwe_labelindojo/finding/cwe.py,get_authorized_endpointsindojo/endpoint/queries.py). - Migration graph walked programmatically — parsed every
dependenciesentry via AST across all 287 migrations: zero dangling references, zero parents with more than one child, zero migrations with multiple parents, and a single linear chain of 286 migrations from0001_initialterminating at exactly one leaf,0286_cicd_infrastructure. (0001_squashed_0090_index_duplicate_findingalso reads as a leaf, but it is a pre-existing Django squash migration with areplaceslist, unchanged by this merge and unrelated to the conflict.) .settings.dist.py.sha256sumdoes not exist in this repository, so there was no sha to recompute.
Release triggered by
rossops