Skip to main content
Version: v3

DevPortal 3.0.2 release sheet

Release date: 2026-10-06

What changed​

New features and enhancements​

  • None.

Breaking changes and upgrade notes​

  • None.

Deprecated and removed features​

  • None.

Fixed issues​

  • None.

Fixed security issues​

3.0.2 changes only these two dependency versions against 3.0.1. Together they clear the 14 critical findings the image scan reported for 3.0.1 on 2026-10-06.

  • proxy-addr moves from 2.0.7 to 2.0.8 in the backend and in the dynamic plugins built into the image. This fixes CVE-2026-90711.
  • vm2 moves from 3.11.7 to 3.12.2. This fixes CVE-2026-92934 and CVE-2026-92955 (sandbox escape), CVE-2026-92953 (prototype pollution), CVE-2026-92954 (denial of service), and CVE-2026-100721 (path boundary bypass in NodeVM custom resolution). Version 3.11.8 fixes the first four but not CVE-2026-100721.

What goes together​

Use these values together. Pin the image by its digest.

PartValue
Imagedocker.io/veecode/devportal:3.0.2@sha256:48f95e221844db13887b71dd7379a867b338ec1f9601a7ce3882e376aad36706
Image digestsha256:48f95e221844db13887b71dd7379a867b338ec1f9601a7ce3882e376aad36706
Chartdevportal 1.0.2
Chart checksum (SHA-256)80ff7c4d6975970ce6972561305374fdfb22db297bce408a09d165ad2b902bc2
Backstage version1.52.0
Plugin tag linebs_1.52.0
Catalog indexquay.io/veecode/plugin-catalog-index:bs_1.52.0, qualified at sha256:9952cad12b45c9487aba789b93a094080a0001bfa71b6b0d77ec588d955417ee
Catalog index tag for pinningquay.io/veecode/plugin-catalog-index:bs_1.52.0_20261005T164038
Qualified onKubernetes 1.35.0, PostgreSQL 16 (image postgres:16)

bs_1.52.0 names the Backstage version the plugin artifacts target. The catalog index tag moves when the catalog is republished. During an incident, pin the timestamped tag above.

Backstage packages​

PackageVersion
@backstage/backend-app-api1.7.1
@backstage/backend-defaults0.17.3
@backstage/backend-dev-utils0.1.7
@backstage/backend-dynamic-feature-service0.8.3
@backstage/backend-openapi-utils0.6.10
@backstage/backend-plugin-api1.9.2
@backstage/catalog-client1.16.0
@backstage/catalog-model1.9.0
@backstage/cli-common0.2.2
@backstage/cli-node0.3.3
@backstage/config1.3.8
@backstage/config-loader1.10.12
@backstage/connections0.1.0
@backstage/errors1.3.1
@backstage/filter-predicates0.1.3
@backstage/integration2.0.3
@backstage/integration-aws-node0.1.21
@backstage/plugin-app-backend0.5.15
@backstage/plugin-app-node0.1.46
@backstage/plugin-auth-backend0.29.1
@backstage/plugin-auth-backend-module-atlassian-provider0.4.16
@backstage/plugin-auth-backend-module-auth0-provider0.4.2
@backstage/plugin-auth-backend-module-azure-easyauth-provider0.2.21
@backstage/plugin-auth-backend-module-bitbucket-provider0.3.16
@backstage/plugin-auth-backend-module-bitbucket-server-provider0.2.16
@backstage/plugin-auth-backend-module-cloudflare-access-provider0.4.16
@backstage/plugin-auth-backend-module-gcp-iap-provider0.4.16
@backstage/plugin-auth-backend-module-github-provider0.5.4
@backstage/plugin-auth-backend-module-gitlab-provider0.4.4
@backstage/plugin-auth-backend-module-google-provider0.3.16
@backstage/plugin-auth-backend-module-guest-provider0.2.20
@backstage/plugin-auth-backend-module-microsoft-provider0.3.16
@backstage/plugin-auth-backend-module-oauth2-proxy-provider0.3.0
@backstage/plugin-auth-backend-module-oidc-provider0.4.17
@backstage/plugin-auth-backend-module-okta-provider0.2.16
@backstage/plugin-auth-backend-module-onelogin-provider0.3.16
@backstage/plugin-auth-node0.7.2
@backstage/plugin-catalog-backend3.8.0
@backstage/plugin-catalog-backend-module-logs0.1.23
@backstage/plugin-catalog-backend-module-openapi0.2.23
@backstage/plugin-catalog-backend-module-scaffolder-entity-model0.2.21
@backstage/plugin-catalog-common1.1.10
@backstage/plugin-catalog-node2.2.2
@backstage/plugin-events-backend0.6.3
@backstage/plugin-events-backend-module-gitlab0.3.13
@backstage/plugin-events-node0.4.23
@backstage/plugin-permission-backend0.7.13
@backstage/plugin-permission-common0.9.9
@backstage/plugin-permission-node0.11.1
@backstage/plugin-proxy-backend0.6.14
@backstage/plugin-proxy-node0.1.16
@backstage/plugin-scaffolder-backend4.0.1
@backstage/plugin-scaffolder-common2.2.1
@backstage/plugin-scaffolder-node0.13.4
@backstage/plugin-search-backend2.1.3
@backstage/plugin-search-backend-module-catalog0.3.16
@backstage/plugin-search-backend-module-pg0.5.56
@backstage/plugin-search-backend-node1.4.5
@backstage/plugin-search-common1.2.24
@backstage/plugin-signals-node0.2.2
@backstage/plugin-user-settings-backend0.4.4
@backstage/plugin-user-settings-common0.1.0
@backstage/types1.2.2

Vulnerability report​

  • Image scanned: docker.io/veecode/devportal@sha256:48f95e221844db13887b71dd7379a867b338ec1f9601a7ce3882e376aad36706
  • Scanner: Trivy 0.74.0, database dated 2026-10-06.
  • Critical vulnerabilities with a fix and no live exception: 0.
  • Qualification run: https://github.com/veecode-platform/devportal-chart/actions/runs/37482668823.
SeverityReportedWith a fixAccepted as an exception
CRITICAL000
HIGH691715
MEDIUM4721380
LOW146160
UNKNOWN000

A release does not ship with a critical vulnerability that has a fix and no live exception.

Exceptions​

IDPackageSeverityReasonExpires
CVE-2026-82659nodemailer 8.0.11HIGHThe fix requires a major update to 9.0.1.2026-12-30
GHSA-2x7j-588g-ccc2nodemailer 8.0.11HIGHThe fix requires a major update to 9.1.0.2026-12-30
GHSA-v53p-9fqp-m79jnodemailer 8.0.11HIGHThe fix requires a major update to 10.0.6.2026-12-30
CVE-2026-67422pymdown-extensions 10.19.1HIGHThe fix requires a major update to 11.0.1.2026-12-30
CVE-2026-12151undici 5.29.0HIGHFixes require a major update to 6.27.0, 7.28.0, or 8.5.0.2026-12-30
CVE-2026-1526undici 5.29.0HIGHFixes require a major update to 6.24.0 or 7.24.0.2026-12-30
CVE-2026-2229undici 5.29.0HIGHFixes require a major update to 6.24.0 or 7.24.0.2026-12-30
CVE-2026-55553urllib 3.27.3HIGHThe 4.9.1 fix is a major update; 2.44.1 would downgrade the installed version.2026-12-30
CVE-2025-66418urllib3 2.2.2HIGHThe requirements inputs pin 2.2.2, preventing pip-tools from compiling 2.6.0. Build-tool pins may also need raising; this was not tested.2026-12-30
CVE-2025-66471urllib3 2.2.2HIGHThe requirements inputs pin 2.2.2, preventing pip-tools from compiling 2.6.0. Build-tool pins may also need raising; this was not tested.2026-12-30
CVE-2026-21441urllib3 2.2.2HIGHThe requirements inputs pin 2.2.2, preventing pip-tools from compiling 2.6.3. Build-tool pins may also need raising; this was not tested.2026-12-30
CVE-2026-44431urllib3 2.2.2HIGHThe requirements inputs pin 2.2.2, preventing pip-tools from compiling 2.7.0. Build-tool pins may also need raising; this was not tested.2026-12-30
CVE-2026-97687urllib3 2.2.2HIGHThe requirements inputs pin 2.2.2, preventing pip-tools from compiling 2.8.0. Build-tool pins may also need raising; this was not tested.2026-12-30
CVE-2026-97689urllib3 2.2.2HIGHThe requirements inputs pin 2.2.2, preventing pip-tools from compiling 2.8.0. Build-tool pins may also need raising; this was not tested.2026-12-30

An exception expires on the date shown. After that date, the finding counts again and blocks a release.

Plugins enabled by default​

The table contains one row for each OCI artifact enabled by default, including the Marketplace card. These artifact scans are reports and do not block the image release.

ArtifactDigestPackagesCriticalHighMediumLowUnknownCritical with a fixResult
quay.io/veecode/backstage-community-plugin-rbac36e9f606223d1000000scanned
quay.io/veecode/backstage-community-plugin-tech-radar-backend71f7f6c4816178112201scanned
quay.io/veecode/backstage-community-plugin-tech-radar2a5e149c22bd1000000scanned
quay.io/veecode/backstage-plugin-notifications-backendb089cdda6380109102101scanned
quay.io/veecode/backstage-plugin-notificationsbb3c3f0739f81000000scanned
quay.io/veecode/backstage-plugin-signals-backend3767a18cdb4583112101scanned
quay.io/veecode/backstage-plugin-signals8764b50b78b61000000scanned
quay.io/veecode/backstage-plugin-techdocs-backenda52ab2f01ccf42712528201scanned
quay.io/veecode/backstage-plugin-techdocs-module-addons-contrib9feeac06c77e1000000scanned
quay.io/veecode/backstage-plugin-techdocsd8222a85e6a41000000scanned
quay.io/veecode/devportal-marketplace-backend153527c7d51078103101scanned
quay.io/veecode/devportal-marketplace-frontend-dynamic2d3ffc77eac71000000scanned
quay.io/veecode/devportal-pending-changes-dynamic18d75d59e2871000000scanned
quay.io/veecode/red-hat-developer-hub-backstage-plugin-catalog-backend-module-extensions9fad03e713fe150113100scanned
quay.io/veecode/red-hat-developer-hub-backstage-plugin-global-header2a622b6a8c301000000scanned
quay.io/veecode/veecode-platform-backstage-plugin-about-backend99ca46df8ebd10000000scanned
quay.io/veecode/veecode-platform-backstage-plugin-about5746126ea0121000000scanned
quay.io/veecode/veecode-platform-plugin-veecode-homepage897d9ae74de41000000scanned

Known limitations​

  • Five plugins enabled by default are OCI artifacts that 3.0.2 does not rebuild: tech-radar-backend, notifications-backend, signals-backend, techdocs-backend, and devportal-marketplace-backend. Each still contains proxy-addr 2.0.7, which has the critical CVE-2026-90711, so each reports one critical finding with a fix in the table above. The image itself has none. These artifact scans are reports and do not block the image release. 3.0.3 (chart 1.0.3) pins rebuilds of the five plugins with proxy-addr 2.0.8.

The 3.0.0 release sheet also lists the following limitations. The 3.0.1 and 3.0.2 changes do not address them.

  • The default plugins ship the Red Hat dynamic Home page entry disabled. Enabling it (for example from its Marketplace card) leaves the portal's pages empty, because it registers the same frontend API as the DevPortal home page. Keep it disabled.
  • An offline install must mirror the catalog index as well as the OCI plugin artifacts. In beta.10 tests, the installer fetched the index before loading cached plugin artifacts and stopped when Quay was unreachable.
  • In beta.10 measurements, median readiness took 67.237 seconds with an empty plugin volume and 19.514 seconds with a populated volume. These are beta.10 measurements, not measurements of the final 3.0.2 candidate.