Zum Hauptinhalt springen
IT NachrichtenEU makes progress towards PHP patching, UK lags behind(26.10.2026 um 17:30 Uhr)
•
IT NachrichtenMeta's Muse AI Is in Hot Water(26.10.2026 um 21:48 Uhr)
•••
Sicherheitslücken (CVE)Microsoft releases emergency .NET security fixes for Google Brotli bug(26.10.2026 um 18:58 Uhr)
••••••
IT NachrichtenEU makes progress towards PHP patching, UK lags behind(26.10.2026 um 17:30 Uhr)
•
IT NachrichtenMeta's Muse AI Is in Hot Water(26.10.2026 um 21:48 Uhr)
•••
Sicherheitslücken (CVE)Microsoft releases emergency .NET security fixes for Google Brotli bug(26.10.2026 um 18:58 Uhr)
••••••
Intelligence View
⚡ tsecurity.de Intelligence

GitHub Release: ddev/ddev v1.25.5 (26.10.2026)

Release v1.25.5 von ddev/ddev auf GitHub: Installation See the installation instructions for details, but it's easy: macOS: brew install ddev/ddev/ddev or just…

Beitrag
0
Seite
0
↗ Quelle (GitHub · ddev/ddev)
Social ReaktionenReagiere als Erste:r — dein Feedback zählt!
🛡️ Security Fix ddev/ddevv1.25.526.10.2026@stasadev

Installation


See the installation instructions for details, but it's easy:



  • macOS: brew install ddev/ddev/ddev or just brew upgrade ddev.

  • Linux: Use sudo apt-get update && sudo apt-get install ddev, see apt/yum installation

  • Windows and WSL2: Download the Windows Installer; you can run it for install or upgrade.

  • Consider ddev delete images or ddev delete images --all after upgrading to free up disk space used by previous Docker image versions. This does no harm.

  • Consider ddev config --auto to update your projects to current configuration.


Highlights


Blog announcement: https://ddev.com/blog/release-v1-25-5/



PHP Security Fixes


See PHP2Shell: What DDEV Users Need to Know for who is affected and how to update PHP without upgrading DDEV.



  • ddev-webserver ships PHP 8.5.12, 8.4.27, 8.3.36, and 8.2.35, which fix CVE-2026-109618 and CVE-2026-109619, see the PHP announcement. deb.sury.org also patched PHP 5.6 through 8.1, and upgrading DDEV rebuilds those projects' web images with the fixed packages

  • PHP 8.6 is still 8.6.0 RC3, which has neither fix, because deb.sury.org hasn't packaged RC4 yet. DDEV applies the php.net mitigations for CVE-2026-109619 (session.upload_progress.enabled = 0 and fatal_error_backtraces = 0), but CVE-2026-109618 stays open, so don't expose a PHP 8.6 project

  • PHP 8.4.27 and 8.5.12 have an upstream SimpleXML regression that can crash with zend_mm_heap corrupted, see php-src#24488


⚠️ Breaking Changes



  • session.upload_progress.enabled is 0 in every PHP version, as php.net recommends, and fatal_error_backtraces is 0 in PHP 8.6. Few applications use session upload progress, and the PECL uploadprogress extension that Drupal uses isn't affected. To turn either back on, add it under [PHP] in .ddev/php/overrides.ini, see Custom PHP Configuration, and run ddev restart

  • The default nginx configurations for Drupal, Backdrop, Magento 1/2, Maho, and Silverstripe changed slightly, and now deny PHP in upload directories. If you removed #ddev-generated from .ddev/nginx_full/nginx-site.conf, merge the changes from the new template into your copy

  • WP-CLI, Drush 8, the Backdrop Drush extension, magerun, magerun2, and Symfony CLI are installed only in the project types that use them. To use one in another project type, add it in a web-build Dockerfile, see Project-Specific Utilities

  • ddev export-db --file=x.sql writes plain SQL. Before, it wrote gzip data to a file named .sql

  • A custom service or add-on whose container_name isn't ddev-<project>-<service> is renamed, with a warning. Anything that reached it by its old name should use the service name

  • DDEV assigns host ports itself instead of leaving it to Docker or Podman. Unconfigured db, web, and Mailpit host ports move to 20000-29999 the next time their containers are created, and the router's fallback ports ("Port 443 is not available, using ... instead") move to 30000-32000. Configured host_*_port values don't change

  • --profiles replaces COMPOSE_PROFILES, as in Compose, so on a stopped project ddev start --profiles=x no longer starts the profiles in COMPOSE_PROFILES as well, see Optional Services

  • ddev delete exits with an error and keeps the project listed when it can't remove a volume. Before, it reported success

  • Any global_config.*.yaml file in ~/.ddev, such as a leftover global_config.old.yaml, is now merged into the global configuration. Rename or remove files you don't want applied

  • In ddev tui, R restarts and r refreshes, swapped from before, and only enter opens the project view

  • DDEV_DEBUG no longer shows image download progress per layer or routine start messages. Use DDEV_VERBOSE to see them


Features



  • PHP 8.6 can be selected. deb.sury.org doesn't package every extension for it yet, and enabling Xdebug, XHProf, or Blackfire on 8.6 gives a clear error

  • ddev tui has a new layout that fits any window size, shows the project list before Docker responds, and adds database addresses, snapshots, published ports, and available add-on updates to the project view

  • ddev tui shows paths and URLs as clickable links, and o, v, and p open a project in the file manager, VS Code, or PhpStorm. URLs printed by other commands are clickable too

  • D in ddev tui deletes a project, thanks to @MitraKumar

  • Up and down wrap around the ddev tui project list, so the last project is one key away from the first

  • ssh_agent_upstream lets containers use an SSH agent running on the host or forwarded to it, so keys that exist only in an agent work without ddev auth ssh key files. See Using an Existing SSH Agent. It also follows a symlinked agent socket, such as VS Code Remote's /tmp/vscode-ssh-auth-sock-*, and ddev auth ssh reports an agent socket that's gone after a reconnect in a single message

  • ddev restart -s solr,redis recreates only those services and leaves the rest running. ddev restart --profiles=x replaces ddev restart && ddev start --profiles=x, and ddev utility rebuild -s accepts several services

  • Ctrl-C, SIGTERM, or closing the terminal no longer leaves temporary containers like start-chown-* holding project volumes. Interrupting ddev import-db, ddev export-db, or ddev snapshot leaves no partial dump, snapshot, or temporary directory, and Ctrl-C stops a shell loop that runs ddev

  • ddev share prints a QR code for the tunnel URL, and ddev launch --qr prints the project URL with its QR code. This replaces the ddev-qr add-on, which ddev start now removes. thanks to @tyler36, who started this in ddev-qr

  • ddev import-db and ddev import-files accept zstd files. ddev export-db --compression chooses gzip, bzip2, xz, zstd, or none, and without the flag the format comes from the file extension, as in ddev export-db -f db.sql.zst

  • Global hooks in global_config.yaml run for every project, before the project's own hooks. global_config.*.yaml files in ~/.ddev are merged over global_config.yaml, as config.*.yaml files are in a project

  • ddev config global with flags prints only the settings you changed, instead of the whole global configuration

  • New pre-delete and post-delete hooks can remove files a project created, without doing it on every ddev stop, thanks to @wazum

  • ddev start in a directory that looks like a web project but has no .ddev configuration shows what ddev config --auto would create, and lets you accept it, change it, or cancel

  • ddev list, ddev describe, and ddev tui respond faster, and the difference grows with the number of running projects

  • ddev start shows each step's time on that step's line, and pushing configuration to a router that's already running is about 1.4s faster

  • ddev start warns when the router is running but its ports don't respond on the host, which happens with Lima or Colima on Linux for ports below 1024. See Router Ports Not Reachable

  • Web image builds can use your GitHub token through the github_token build secret. The docs explain how to install PHP extensions with PIE, or with PECL on older PHP versions

  • ddev utility download-ddev, ddev utility diagnose, ddev describe, ddev list, ddev dotenv, and shell completion work when Docker is unavailable

  • Shopware 6 projects have the ddev console command, thanks to @ntzrbtr

  • ddev exec, ddev ssh, and custom commands receive the variables AI coding agents set to identify themselves, thanks to @AkibaAT

  • ddev ssh and ddev exec pass TERM_PROGRAM and similar terminal variables, so tools in the container can print clickable links, thanks to @wazum

  • x-ddev.container-user sets the default user for ddev ssh -s, ddev exec -s, and custom commands in that service

  • DDEV sets container_name and hostname for every compose service, so custom services and add-ons no longer need to

  • Add-ons can tag a build service's image as -${DDEV_SITENAME}-<service>-built or list images to pull in x-ddev.pull-images. ddev start warns when two services build different images with the same tag

  • With CI=true, ddev start prints the logs of a container that exits or remains unhealthy, as it already did with DDEV_DEBUG=true


Bug Fixes for Regressions



  • Directory listing works again. v1.25.4's 403 explanation page had disabled it for every project

  • ddev composer create-project again passes flags like --no-dev and -vvv to the Composer scripts it runs after creating the project, which v1.25.3 stopped doing

  • Magento, Magento 2, and Maho show their own 404 pages again, instead of DDEV's explanation page, thanks to @gunnie-agency


Bug Fixes



  • nginx passes PATH_INFO to PHP, so URLs like /index.php/foo/bar work as they do with Apache

  • ddev start no longer fails because of a stopped container from an earlier session that it wasn't asked to start

  • Running ddev start or ddev poweroff in several terminals at once no longer breaks the shared router or Docker network, or loses hosts file entries. A command that has to wait shows which process it is waiting for

  • Fixed a startup race that could stop the web container, and another that could delete files DDEV had just copied into a Docker volume

  • DDEV recovers from an empty or corrupt ~/.ddev/.state.yaml or project_list.yaml instead of failing on every command

  • ddev delete removes leftover utility containers that kept the database volume in use, thanks to @wazum

  • When the project directory is itself a symlink, Mutagen syncs it instead of leaving the docroot in the container empty, thanks to @dave-agilepixel

  • ddev export-db always uses --single-transaction, and on MySQL 9.5+ it no longer writes GTID statements or fails on tablespace privileges. Snapshots call mariadb-backup instead of the deprecated mariabackup

  • composer in the web container runs the system Composer from every shell, so PHP's exec(), Symfony Process, and sh -c no longer pick up vendor/bin/composer

  • ddev add-on get and ddev add-on update install the release GitHub marks as latest, not whichever release GitHub lists first

  • When you're offline and a project image can't be rebuilt, ddev start uses the images from the last successful build instead of failing

  • ddev start --profiles=x builds that profile's images, and --no-cache also rebuilds profile images built earlier

  • ddev start no longer panics when a compose service uses network_mode, such as network_mode: service:web

  • MODX friendly URLs show the right page instead of the start page, thanks to @casparml

  • ddev utility download-images honors each service's platform:, so amd64-only images download on Apple Silicon

  • ddev start is faster with rootless Podman

  • A pinned webimage or dbimage built from the current release image is no longer reported as outdated, thanks to @weitzman

  • ddev utility download-ddev --head finds the latest main build reliably, and --commit accepts a short SHA


Security Changes



  • With nginx-fpm, PHP files in CMS upload directories no longer run. Drupal, Backdrop, Magento 1/2, Maho, and Silverstripe block them only with an .htaccess file, which nginx ignores, so the nginx templates now deny them, as the WordPress template already did for uploads

  • /phpstatus returns 403 to requests from outside the web container, so they no longer reach PHP-FPM through it, which matters for bugs like PHP2Shell. If you removed #ddev-generated from .ddev/apache/apache-site.conf, add Require ip 127.0.0.1 to its <Location "/phpstatus">


Internal Changes



Minor Updates



  • PHP 8.5.12, 8.4.27, 8.3.36, and 8.2.35

  • Node.js 24.22.1, npm 11.19.1

  • Docker Compose v5.6.1, recommended buildx 0.38.1


What's Changed



  • ci(textlint): fail on errors instead of only annotating (#8800) [skip ci] by @stasadev in #8800

  • docs: add subtle sponsorship callouts to GitHub templates and release notes (#8796) [skip ci] by @rfay in #8796

  • fix(zensical): drop strict-build retry workaround, require 0.0.58 (#8795) [skip ci] by @stasadev in #8795

  • test: update the drupal 12 bats test minding the 403 by @rpkoller in #8810

  • build: bump 1password/load-secrets-action from 4 to 5 by @dependabot[bot] in #8807

  • chore(claude): consolidate agent guidance, correct stale claims by @stasadev in #8805

  • fix(dbserver): prefer mariadb-backup over deprecated mariabackup name by @rfay in #8803

  • feat(docker): support prerelease tags for images, so vX.Y.Z-rc1 can be released by @rfay in #8766

  • ci: consolidate per-image container push comments into one PR comment by @rfay in #8791

  • fix: stale-pin check should compare against the resolved release tag, not the raw hash by @weitzman in #8801

  • test(auth-ssh): fix test-ssh-server image by @stasadev in #8813

  • feat: forward TERM_PROGRAM and other terminal variables to ddev ssh/exec, fixes #8808 by @wazum in #8809

  • docs(quickstart): fix Maho redirect, take install URLs from ddev exec by @stasadev in #8814

  • ci(github): remove setup-homebrew pin (#8815) [skip ci] by @stasadev in #8815

  • ci: build Windows on Linux and use the signer only for signtool by @rfay in #8769

  • test(export-db): cover mysql in TestDdevExportDB and trim redundant per-engine checks by @rfay in #8798

  • fix: reduce init() usage and redundant NewApp()/app-root calls in cmd package, fixes #7472 by @rfay in #8774

  • ci: fix release workflow broken by windows signing change #8769 by @rfay in #8818

  • fix(dbserver): add --single-transaction and MySQL 9.5+ dump flags to export-db by @rfay in #8797

  • build(compose): update compose to current, revert #8767, fixes #8768 by @rfay in #8819

  • test(buildkite): fix WSL2 agent tagging and remove orphaned NAT pipelines (#8822) [skip ci] by @rfay in #8822

  • chore(claude): fix fallout from doc-lint and manual-testing guidance (#8823) [skip ci] by @rfay in #8823

  • docs(buildkite): document git-mirrors-path best practice for testbots by @rfay in #8799

  • build(images): skip fork release-marker check once marker's tag is published, fixes #8804 by @rfay in #8827

  • test(perf-collector): drop retired pipelines and improve failure message by @rfay in #8839

  • feat: add console commands to Shopware 6 projects by @ntzrbtr in #8845

  • fix(nginx): stop intercepting app-level 404s in the magento, magento2 and maho templates, fixes #8837 by @gunnie-agency in #8838

  • docs: merge CLAUDE.md into AGENTS.md (#8852) [skip ci] by @rfay in #8852

  • fix(webserver): use an isolated volume in the webserver image test suite, fixes #8849 (#8851) [skip ci] by @rfay in #8851

  • docs(extend): split overlapping custom-service pages and fix ports/expose examples (#8841) [skip ci] by @rfay in #8841

  • feat: add x-ddev.container-user, fixes #8806 (#8829) [skip ci] by @rfay in #8829

  • fix: don't fail ddev start on unused containers, fixes #8830 by @rfay in #8843

  • fix(images): exclude test dirs, README, and LICENSE from image hash, fixes #8850 by @rfay in #8853

  • fix(webserver): stop the 403 explanation from disabling directory listing by @stasadev in #8821

  • fix: pass PATH_INFO to php-fpm from nginx, fixes #3854, fixes #4001 by @rfay in #8844

  • fix: install project-type-specific web image utilities only when needed, fixes #8824 by @rfay in #8828

  • fix(add-ons): install the latest release, not the first one GitHub lists, fixes #8854 by @stasadev in #8855

  • fix(ci): handle stray |, line endings and ' in embargo variables by @stasadev in #8864

  • ci: consolidate test eligibility checks by @rfay in #8863

  • ci: load macOS signing identity from 1Password, fixes #8842, fixes #8869 by @rfay in #8871

  • feat: add initial partial php8.6 support, fixes #8779 by @rfay in #8826

  • chore(claude): stop denying sed -i by @stasadev in #8874

  • feat: show QR codes in ddev share and ddev launch --qr, remove ddev-qr add-on, for ddev/ddev-qr#15 by @stasadev in #8870

  • fix: stop download progress bar from running tput on every refresh (#8876) [skip ci] by @stasadev in #8876

  • fix(podman): use init in CopyIntoVolume container to avoid stop delay (#8875) [skip ci] by @stasadev in #8875

  • fix: show Git Bash PATH instructions in ddev utility download-ddev on Windows by @rfay in #8873

  • fix(download-ddev): look up --head through the GitHub API by @stasadev in #8877

  • fix: make make staticrequired and make textlint work on Windows (#8879) [skip ci] by @rfay in #8879

  • fix(github): retry without a token only on 401, not on an API 404, for #8855 by @stasadev in #8881

  • feat: let commands that don't use Docker run without it by @stasadev in #8880

  • fix: start with the last built images when offline and the build fails, for #8832 by @stasadev in #8860

  • fix(list): fit table columns to their contents and wrap router errors by @stasadev in #8878

  • feat: add ssh_agent_upstream to use an existing SSH agent, fixes #3878 by @rfay in #8861

  • fix(download-images): pull images for the service's platform by @stasadev in #8859

  • ci(images): report and delete unused Docker Hub image tags, fixes #8848 by @rfay in #8857

  • docs: fix SvelteKit quickstart for SvelteKit 3, which drops svelte.config.js by @rfay in #8892

  • docs: explain how to keep changes made inside the web container across restarts (#8894) [skip ci] by @stasadev in #8894

  • ci: hide Homebrew's Landlock ABI warning annotation on Linux runners (#8893) [skip ci] by @rfay in #8893

  • test: show command output when diagnose, dockercheck and xdebug-diagnose tests fail (#8897) [skip ci] by @rfay in #8897

  • fix: build a profile's images when it starts, and refresh built ones on --no-cache, fixes #8817 (#8820)[skip ci] by @rfay in #8820

  • build: retry transient network failures in web image builds and tests, fix mariadb wrapper race by @rfay in #8896

  • test(buildkite): update homebrew recipe to buildkite-agent@4 [skip github] by @rfay in #8899

  • feat: OSC 8 links and open-in-editor keys in the TUI and CLI output, fixes #8882 (#8883) [skip ci] by @rfay in #8883

  • fix(dbserver): stop spurious InnoDB and TLS startup warnings, fixes #8831 by @rfay in #8885

  • test: log restart output and global-commands volume state in TestAutocompletionForCustomCmds by @rfay in #8905

  • chore(claude): deny unsetting GOTEST_SHORT, predict the PR number (#8902) [skip ci] by @stasadev in #8902

  • ci(images): stop treating registry errors as a missing image tag (#8910) [skip ci] by @stasadev in #8910

  • fix(webserver): always resolve composer to /usr/local/bin/composer in every shell, fixes #8907 (#8908) [skip ci] by @stasadev in #8908

  • feat: add ddev restart --service and --profiles, fixes #7904 by @stasadev in #8906

  • fix: run all-project-types in full and fix the bugs it found (#8903) [skip ci] by @stasadev in #8903

  • feat: forward AI agent variables and bare web_environment names on exec, fixes #8378 by @AkibaAT in #8380

  • chore(claude): update the PR body when adding commits to an open PR (#8917) [skip ci] by @stasadev in #8917

  • fix(modx): pass the request path to index.php as q in the nginx config by @casparml in #8915

  • fix(dockerutil): prepare the CopyIntoVolume target with Exec instead of the container command, for #8912 by @rfay in #8913

  • fix: DDEV should choose host ports instead of leaving it to docker/compose, fixes #8293 (#8887) [skip ci] by @rfay in #8887

  • feat: add global hooks in global_config.yaml, fixes #3200 (#8889) [skip ci] by @rfay in #8889

  • test: wait for the host port to be released in TestExistingContainerHostPortStopped by @rfay in #8918

  • fix: pull the base image of build services tagged per service, fixes #8832 by @stasadev in #8900

  • feat: show failed container logs when CI=true by @stasadev in #8920

  • test: skip SkipUnlessDefaultEnvironment tests when Mutagen is the global default, fixes #8919 by @rfay in #8921

  • fix(webserver): log to /proc/1/fd/1 instead of the /var/tmp/logpipe FIFO, fixes #8911, fixes #8912 (#8914) [skip ci] by @rfay in #8914

  • fix: serialize shared router and network setup with a global lock, fixes #5527 (#8891) [skip ci] by @rfay in #8891

  • refactor: rename router "ephemeral" ports to substitute ports, fixes #8898 by @rfay in #8923

  • test(mutagen): make TestMutagenSimple diagnosable, cheaper and default-environment only by @rfay in #8930

  • fix(dockerutil): half-close the exec stream when no stdin is attached, for #7372 by @rfay in #8928

  • test: fix share test timing races and log router state on URL failures, minor ddev share adjustments by @rfay in #8922

  • test: require drupal_cms_helper before drush si in the Drupal CMS quickstart test by @rfay in #8933

  • docs: refresh CONTRIBUTING.md and defer shared rules to ddev/.github, fixes #8699 [skip ci] (#8932) [skip ci] by @rfay in #8932

  • feat: add global_config.*.yaml overrides, for #3200 by @rfay in #8888

  • feat(tui): delete projects with D key, fixes #8782 by @MitraKumar in #8786

  • test: authenticate bee download-core and make quickstart failures readable by @rfay in #8942

  • chore(claude): link the Read the Docs preview in docs PRs (#8949) [skip ci] by @stasadev in #8949

  • refactor(mutagen): mount project_mutagen once, chown around bind mounts, for #8895 by @rfay in #8944

  • feat(tui): rebuild ddev tui layout, keys and help, fixes #8916 by @stasadev in #8940

  • feat: support zstd in import-db, import-files, and export-db, add export-db --compression, fixes #8856 (#8939) [skip ci] by @rfay in #8939

  • fix: recover from empty or unparseable .state.yaml and project_list.yaml, fixes #8935 by @rfay in #8936

  • feat(start): offer to configure a web project that has no DDEV config, fixes #7976 by @rfay in #8890

  • fix: serialize hosts-file edits with the global lock, fixes #8937 by @rfay in #8938

  • fix(dbserver): raise redo log, halve buffer pool, align init_connect, split slow log, fixes #8884 by @rfay in #8929

  • feat: pass GitHub token to web builds as a secret, document PIE, fixes #7929, fixes #8549 (#8948) [skip ci] by @stasadev in #8948

  • feat: add pre-delete and post-delete hooks, fixes #2988 by @wazum in #8946

  • test: show npm stderr and debug log when TestNpmGlobalInstall fails (#8952) [skip ci] by @rfay in #8952

  • ci: mask systemd-binfmt in WSL2 tests and require systemd running by @rfay in #8957

  • fix: remove stale containers holding project volumes on ddev delete, fixes #8777 by @wazum in #8950

  • test: cover corepack npm fallback on Node.js 26, for #8965 (#8966) [skip ci] by @rfay in #8966

  • docs: create the macOS Podman machine with 6GB of memory (#8970) [skip ci] by @rfay in #8970

  • refactor: remove unreachable returns after infinite loops in dockerutil by @rfay in #8967

  • test: retry TestCmdLogs HTTP check and trim its failure output (#8969) [skip ci] by @rfay in #8969

  • perf: list containers once for ddev list, describe and tui, for #8941 by @stasadev in #8955

  • test(quickstart): retry upstream downloads and authenticate Composer to GitHub by @rfay in #8978

  • fix: stop repeating settings messages on ddev start for Backdrop, WordPress, and TYPO3 (#8971) [skip ci] by @rfay in #8971

  • refactor(router): remove the unused ddev-router-letsencrypt volume (#8977) [skip ci] by @rfay in #8977

  • test(webserver): retry the FPM log tail check, and use run -0 in php_webserver.bats (#8982) [skip ci] by @rfay in #8982

  • ci: download mkcert only for packaging, and retry it longer (#8980) [skip ci] by @rfay in #8980

  • fix(nginx): never execute PHP from CMS user-generated files directories (#8962) [skip ci] by @rfay in #8962

  • feat: show only changed settings after ddev config global with flags by @rfay in #8968

  • fix: don't panic on compose services that use network_mode (#8984) [skip ci] by @rfay in #8984

  • perf: report ddev start step timings inline and speed up router config push (#8972) [skip ci] by @rfay in #8972

  • fix(updatecheck): make TestAvailableUpdates reliable by using the latest-release endpoint (#8988) [skip ci] by @rfay in #8988

  • ci: run GitHub workflows on Ubuntu 26.04 and install latest docker-ce from Docker's repo by @rfay in #8985

  • chore(claude): drop the commit hook, inline the formatting hooks by @stasadev in #8989

  • fix: keep host variables out of the daemons' ddev start launches, for #8380 by @stasadev in #8976

  • chore: stop requesting reviews from the empty documentation team by @rfay in #8992

  • feat: set container_name and hostname on all compose services by @rfay in #8983

  • fix: keep DDEV_DEBUG output readable by quieting compose progress and router port messages by @rfay in #8953

  • build(containers): load locally built images with Docker media types on Podman, so make test works there by @rfay in #8981

  • build(deps): bump go.mod by @stasadev in #8994

  • fix: hide Compose's "No services to build" warning in ddev restart -s by @stasadev in #8996

  • test(docs): fail quickstart downloads at the step that broke by @rfay in #8997

  • fix: resolve symlinked SSH agent sockets for ssh_agent_upstream, fixes #8961 by @rfay in #8963

  • feat: warn when ddev-router's ports don't answer on the host by @rfay in #8990

  • fix: signal handling - remove in-flight temporary containers when ddev is interrupted, fixes #8951 by @rfay in #8954

  • perf: render only what is on screen in ddev tui, for #8941 by @stasadev in #8979

  • feat(tui): wrap around the project list by @stasadev in #8999

  • fix: resolve a symlinked project root for Mutagen, for #8924 by @dave-agilepixel in #8987

  • docs(router): add custom maintenance page by @stasadev in #9007

  • build: always run go build from make so embedded assets and version stay current [skip buildkite] by @rfay in #9003

  • feat(docs): add social cards and llms.txt, fix zensical 0.0.72 privacy error by @stasadev in #9009

  • build(deps): bump zod and puppeteer in /perf/metrics/03-drupal-install by @dependabot[bot] in #9010

  • fix: allow /phpstatus only from inside the web container, fixes #9005 by @rfay in #9006

  • fix(webserver): apply php.net mitigations for session upload progress and PHP 8.6 by @rfay in #9012

  • build: Create v1.25.5 images, fixes #8993 by @rfay in #9016


New Contributors



Full Changelog: v1.25.4...v1.25.5


Changelog



  • d2d47af build: Create v1.25.5 images, fixes #8993 (#9016)

  • 2e66b75 fix(webserver): apply php.net mitigations for session upload progress and PHP 8.6 (#9012)

  • fab900b fix: allow /phpstatus only from inside the web container, fixes #9005 (#9006)

  • b8e119c build(deps): bump zod and puppeteer in /perf/metrics/03-drupal-install (#9010) [skip ci]

  • c017916 feat(docs): add social cards and llms.txt, fix zensical 0.0.72 privacy error (#9009)

  • a8fdb9c build: always run go build from make so embedded assets and version stay current [skip buildkite] (#9003) [skip ci]

  • 3e8c3cc docs(router): add custom maintenance page (#9007) [skip ci]

  • 32a60f1 fix: resolve a symlinked project root for Mutagen, for #8924 (#8987)

  • cc2cfe9 feat(tui): wrap around the project list (#8999) [skip ci]

  • 8d73e9f perf: render only what is on screen in ddev tui, for #8941 (#8979) [skip ci]

  • 677a140 fix: signal handling - remove in-flight temporary containers when ddev is interrupted, fixes #8951 (#8954)

  • 18c58bf feat: warn when ddev-router's ports don't answer on the host (#8990) [skip ci]

  • 0b87317 fix: resolve symlinked SSH agent sockets for ssh_agent_upstream, fixes #8961 (#8963) [skip ci]

  • b3b546c test(docs): fail quickstart downloads at the step that broke (#8997) [skip ci]

  • 62838ef fix: hide Compose's "No services to build" warning in ddev restart -s (#8996) [skip ci]

  • b2cb738 build(deps): bump go.mod (#8994) [skip ci]

  • 6818847 build(containers): load locally built images with Docker media types on Podman, so make test works there (#8981)

  • eea391d fix: keep DDEV_DEBUG output readable by quieting compose progress and router port messages (#8953) [skip ci]

  • e6d5b8d feat: set container_name and hostname on all compose services (#8983) [skip ci]

  • f0fa6f5 chore: stop requesting reviews from the empty documentation team (#8992) [skip ci]

  • a7f3f33 fix: keep host variables out of the daemons' ddev start launches, for #8380 (#8976) [skip ci]

  • 95c5633 chore(claude): drop the commit hook, inline the formatting hooks (#8989) [skip ci]

  • 8afc985 ci: run GitHub workflows on Ubuntu 26.04 and install latest docker-ce from Docker's repo (#8985) [skip ci]

  • 2f5d9f2 fix(updatecheck): make TestAvailableUpdates reliable by using the latest-release endpoint (#8988) [skip ci]

  • a9bd9d3 perf: report ddev start step timings inline and speed up router config push (#8972) [skip ci]

  • 469f9b7 fix: don't panic on compose services that use network_mode (#8984) [skip ci]

  • 36af2e2 feat: show only changed settings after ddev config global with flags (#8968)

  • e5cdbfe fix(nginx): never execute PHP from CMS user-generated files directories (#8962) [skip ci]

  • 2f234ec ci: download mkcert only for packaging, and retry it longer (#8980) [skip ci]

  • 9b6e2b8 test(webserver): retry the FPM log tail check, and use run -0 in php_webserver.bats (#8982) [skip ci]

  • d1814ff refactor(router): remove the unused ddev-router-letsencrypt volume (#8977) [skip ci]

  • 3c6ac83 fix: stop repeating settings messages on ddev start for Backdrop, WordPress, and TYPO3 (#8971) [skip ci]

  • 0e9ab54 test(quickstart): retry upstream downloads and authenticate Composer to GitHub (#8978)

  • cec563d perf: list containers once for ddev list, describe and tui, for #8941 (#8955)

  • 6f953f3 test: retry TestCmdLogs HTTP check and trim its failure output (#8969) [skip ci]

  • 26f9387 refactor: remove unreachable returns after infinite loops in dockerutil (#8967) [skip ci]

  • f114646 docs: create the macOS Podman machine with 6GB of memory (#8970) [skip ci]

  • d9d83e4 test: cover corepack npm fallback on Node.js 26, for #8965 (#8966) [skip ci]

  • 3d9c472 fix: remove stale containers holding project volumes on ddev delete, fixes #8777 (#8950)

  • d9e691f ci: mask systemd-binfmt in WSL2 tests and require systemd running (#8957)

  • c4750c9 test: show npm stderr and debug log when TestNpmGlobalInstall fails (#8952) [skip ci]

  • 2d1d017 feat: add pre-delete and post-delete hooks, fixes #2988 (#8946)

  • f71e0a7 feat: pass GitHub token to web builds as a secret, document PIE, fixes #7929, fixes #8549 (#8948) [skip ci]

  • 85c3a5b fix(dbserver): raise redo log, halve buffer pool, align init_connect, split slow log, fixes #8884 (#8929)

  • e5e8052 fix: serialize hosts-file edits with the global lock, fixes #8937 (#8938) [skip ci]

  • 2546c4f feat(start): offer to configure a web project that has no DDEV config, fixes #7976 (#8890) [skip ci]

  • 6fd1c15 fix: recover from empty or unparseable .state.yaml and project_list.yaml, fixes #8935 (#8936) [skip ci]

  • 3e70ce1 feat: support zstd in import-db, import-files, and export-db, add export-db --compression, fixes #8856 (#8939) [skip ci]

  • 2b41b97 feat(tui): rebuild ddev tui layout, keys and help, fixes #8916 (#8940) [skip ci]

  • c86501a refactor(mutagen): mount project_mutagen once, chown around bind mounts, for #8895 (#8944) [skip ci]

  • b49d155 chore(claude): link the Read the Docs preview in docs PRs (#8949) [skip ci]

  • 9e38f30 test: authenticate bee download-core and make quickstart failures readable (#8942)

  • 733ea39 feat(tui): delete projects with D key, fixes #8782 (#8786) [skip ci]

  • 63b0149 feat: add global_config.*.yaml overrides, for #3200 (#8888)

  • f2834f4 docs: refresh CONTRIBUTING.md and defer shared rules to ddev/.github, fixes #8699 [skip ci] (#8932) [skip ci]

  • 4c560c1 test: require drupal_cms_helper before drush si in the Drupal CMS quickstart test (#8933) [skip ci]

  • 35478c2 test: fix share test timing races and log router state on URL failures, minor ddev share adjustments (#8922)

  • 1d3921c fix(dockerutil): half-close the exec stream when no stdin is attached, for #7372 (#8928) [skip ci]

  • d4065df test(mutagen): make TestMutagenSimple diagnosable, cheaper and default-environment only (#8930)

  • 3e9373b refactor: rename router "ephemeral" ports to substitute ports, fixes #8898 (#8923)

  • ce5c19a fix: serialize shared router and network setup with a global lock, fixes #5527 (#8891) [skip ci]

  • 7148e60 fix(webserver): log to /proc/1/fd/1 instead of the /var/tmp/logpipe FIFO, fixes #8911, fixes #8912 (#8914) [skip ci]

  • 1ca8b89 test: skip SkipUnlessDefaultEnvironment tests when Mutagen is the global default, fixes #8919 (#8921)

  • 2eeb549 feat: show failed container logs when CI=true (#8920) [skip ci]

  • 6036eb3 fix: pull the base image of build services tagged per service, fixes #8832 (#8900)

  • 34a1f85 test: wait for the host port to be released in TestExistingContainerHostPortStopped (#8918) [skip ci]

  • 15426f8 feat: add global hooks in global_config.yaml, fixes #3200 (#8889) [skip ci]

  • b315e5f fix: DDEV should choose host ports instead of leaving it to docker/compose, fixes #8293 (#8887) [skip ci]

  • 56212a1 fix(dockerutil): prepare the CopyIntoVolume target with Exec instead of the container command, for #8912 (#8913) [skip ci]

  • b8e4fdf fix(modx): pass the request path to index.php as q in the nginx config (#8915) [skip ci]

  • cc190e0 chore(claude): update the PR body when adding commits to an open PR (#8917) [skip ci]

  • e978222 feat: forward AI agent variables and bare web_environment names on exec, fixes #8378 (#8380)

  • 5fdde42 fix: run all-project-types in full and fix the bugs it found (#8903) [skip ci]

  • 94c92c9 feat: add ddev restart --service and --profiles, fixes #7904 (#8906)

  • 5213923 fix(webserver): always resolve composer to /usr/local/bin/composer in every shell, fixes #8907 (#8908) [skip ci]

  • ab91f54 ci(images): stop treating registry errors as a missing image tag (#8910) [skip ci]

  • 0669aef chore(claude): deny unsetting GOTEST_SHORT, predict the PR number (#8902) [skip ci]

  • 598e255 test: log restart output and global-commands volume state in TestAutocompletionForCustomCmds (#8905)

  • 0bbc99d fix(dbserver): stop spurious InnoDB and TLS startup warnings, fixes #8831 (#8885)

  • 5d80819 feat: OSC 8 links and open-in-editor keys in the TUI and CLI output, fixes #8882 (#8883) [skip ci]

  • a11c85e test(buildkite): update homebrew recipe to buildkite-agent@4 [skip github] (#8899)

  • a8f22d4 build: retry transient network failures in web image builds and tests, fix mariadb wrapper race (#8896)

  • d8e2143 fix: build a profile's images when it starts, and refresh built ones on --no-cache, fixes #8817 (#8820)[skip ci]

  • b3ed160 test: show command output when diagnose, dockercheck and xdebug-diagnose tests fail (#8897) [skip ci]

  • a57266f ci: hide Homebrew's Landlock ABI warning annotation on Linux runners (#8893) [skip ci]

  • 15084bf docs: explain how to keep changes made inside the web container across restarts (#8894) [skip ci]

  • 5bf1e0f docs: fix SvelteKit quickstart for SvelteKit 3, which drops svelte.config.js (#8892)

  • 81ce907 ci(images): report and delete unused Docker Hub image tags, fixes #8848 (#8857) [skip ci]

  • 4466def fix(download-images): pull images for the service's platform (#8859)

  • b65a22e feat: add ssh_agent_upstream to use an existing SSH agent, fixes #3878 (#8861)

  • 01b6033 fix(list): fit table columns to their contents and wrap router errors (#8878)

  • bfe9365 fix: start with the last built images when offline and the build fails, for #8832 (#8860) [skip ci]

  • d0af353 feat: let commands that don't use Docker run without it (#8880) [skip ci]

  • e05e3a6 fix(github): retry without a token only on 401, not on an API 404, for #8855 (#8881) [skip ci]

  • d4b0042 fix: make make staticrequired and make textlint work on Windows (#8879) [skip ci]

  • 42cf1ae fix(download-ddev): look up --head through the GitHub API (#8877)

  • 5f10b39 fix: show Git Bash PATH instructions in ddev utility download-ddev on Windows (#8873)

  • c69f458 fix(podman): use init in CopyIntoVolume container to avoid stop delay (#8875) [skip ci]

  • 92ec634 fix: stop download progress bar from running tput on every refresh (#8876) [skip ci]

  • daedbf4 feat: show QR codes in ddev share and ddev launch --qr, remove ddev-qr add-on, for ddev/ddev-qr#15 (#8870)

  • e0eb3d1 chore(claude): stop denying sed -i (#8874) [skip ci]

  • 8f8ac2f feat: add initial partial php8.6 support, fixes #8779 (#8826)

  • c733ccb ci: load macOS signing identity from 1Password, fixes #8842, fixes #8869 (#8871)

  • ed76ebe ci: consolidate test eligibility checks (#8863) [skip ci]

  • a71005d fix(ci): handle stray |, line endings and ' in embargo variables (#8864) [skip ci]

  • b5c78cc fix(add-ons): install the latest release, not the first one GitHub lists, fixes #8854 (#8855)

  • ef0ea52 fix: install project-type-specific web image utilities only when needed, fixes #8824 (#8828)

  • 60e251f fix: pass PATH_INFO to php-fpm from nginx, fixes #3854, fixes #4001 (#8844)

  • 18ecfec fix(webserver): stop the 403 explanation from disabling directory listing (#8821)

  • a75ec19 fix(images): exclude test dirs, README, and LICENSE from image hash, fixes #8850 (#8853)

  • d1576fd fix: don't fail ddev start on unused containers, fixes #8830 (#8843)

  • a8d9369 feat: add x-ddev.container-user, fixes #8806 (#8829) [skip ci]

  • 46ce2bd docs(extend): split overlapping custom-service pages and fix ports/expose examples (#8841) [skip ci]

  • ac1835a fix(webserver): use an isolated volume in the webserver image test suite, fixes #8849 (#8851) [skip ci]

  • 9c8b75c docs: merge CLAUDE.md into AGENTS.md (#8852) [skip ci]

  • 35b5204 fix(nginx): stop intercepting app-level 404s in the magento, magento2 and maho templates, fixes #8837 (#8838)

  • ee9b64c feat: add console commands to Shopware 6 projects (#8845)

  • 2a06644 test(perf-collector): drop retired pipelines and improve failure message (#8839)

  • f9d959f build(images): skip fork release-marker check once marker's tag is published, fixes #8804 (#8827)

  • bd98eeb docs(buildkite): document git-mirrors-path best practice for testbots (#8799) [skip ci]

  • ca6023f chore(claude): fix fallout from doc-lint and manual-testing guidance (#8823) [skip ci]

  • 464d23d test(buildkite): fix WSL2 agent tagging and remove orphaned NAT pipelines (#8822) [skip ci]

  • 83cf649 build(compose): update compose to current, revert #8767, fixes #8768 (#8819)

  • accbe7f fix(dbserver): add --single-transaction and MySQL 9.5+ dump flags to export-db (#8797)

  • 82b2f55 ci: fix release workflow broken by windows signing change #8769 (#8818)

  • 55c2043 fix: reduce init() usage and redundant NewApp()/app-root calls in cmd package, fixes #7472 (#8774)

  • 8cde811 test(export-db): cover mysql in TestDdevExportDB and trim redundant per-engine checks (#8798) [skip ci]

  • 95c5bca ci: build Windows on Linux and use the signer only for signtool (#8769) [skip ci]

  • d59e729 ci(github): remove setup-homebrew pin (#8815) [skip ci]

  • c0299f5 docs(quickstart): fix Maho redirect, take install URLs from ddev exec (#8814)

  • 48cf35d feat: forward TERM_PROGRAM and other terminal variables to ddev ssh/exec, fixes #8808 (#8809) [skip ci]

  • 1228d0a test(auth-ssh): fix test-ssh-server image (#8813) [skip ci]

  • ece124c fix: stale-pin check should compare against the resolved release tag, not the raw hash (#8801) [skip ci]

  • 35a2ab1 ci: consolidate per-image container push comments into one PR comment (#8791)

  • e1f5555 feat(docker): support prerelease tags for images, so vX.Y.Z-rc1 can be released (#8766) [skip ci]

  • 2d3f835 fix(dbserver): prefer mariadb-backup over deprecated mariabackup name (#8803) [skip ci]

  • b9c8d4b chore(claude): consolidate agent guidance, correct stale claims (#8805) [skip ci]

  • 6883fe3 build: bump 1password/load-secrets-action from 4 to 5 (#8807) [skip ci]

  • 2f96a57 test: update the drupal 12 bats test minding the 403 (#8810) [skip ci]

  • 13a50dc fix(zensical): drop strict-build retry workaround, require 0.0.58 (#8795) [skip ci]

  • 7952fd2 docs: add subtle sponsorship callouts to GitHub templates and release notes (#8796) [skip ci]

  • 21c8600 ci(textlint): fail on errors instead of only annotating (#8800) [skip ci]




💙 DDEV is free and open source, maintained by the nonprofit DDEV Foundation.

If this release saves you time, consider sponsoring DDEV.

Cyber Threat Intelligence & Forensik

ATT&CK-Navigator · IoC-Radar · Exploit-Belege
MITRE ATT&CK Matrix Navigator
1 belegte Technik
T1499.003TA0040 · Impact
Endpoint Denial of Service:Application Exhaustion Flood
Gegenmaßnahme: keine allgemeine in ATT&CK dokumentiert
Quelle: CAPEC-Kette (CWE➔CAPEC➔ATT&CK) · CAPEC-130 (Excessive Allocation)
Impact
IoC Intelligence
2 Indikatoren · Defanged · STIX 2.1
CVE-2026-109618CVE-2026-109619
CTI Threat Relationship Graph
Akteure · Techniken · Beziehungen
5 Knoten · 4 Relationen
CVE / Incident Threat Actor Software MITRE ATT&CK CWE Weakness IoC
Exploit & Remediation Lifecycle
PoC · Ausnutzung · Patch-Stufen
CVE-2026-109618
Entdeckung & Meldung
Schwachstelle identifiziert & registriert
Sicherheits-Advisory
Offizielle Warnung & CVE-Zuweisung
Exploit / PoC
Öffentlicher Nachweis/Code verfügbar (Exploit-DB/EUVD)
In-the-Wild Ausnutzung
Keine Massenausnutzung gemeldet
Patch & Schutzmaßnahmen
Upstream-Patch-Referenz vorhanden (Commit-/Advisory-Link)
Exploit Weaponization & PoC Radar
Nur belegte Faktoren · kein Score-Theater
CRITICAL WEAPONIZED · Index 100/100
Exploit-DB
EDB-52704
Interaktion
0-Click
Authentifizierung
Nicht erforderlich

CWE-Schwachstellen-Taxonomie & Defensive Architektur

Schwachstellen-Klassen · Root Cause · Mitigation
MITRE CWE Matrix
CWE-1325 Software-Schwachstellen-Klasse CWE-1325
Allgemeine Sicherheitsarchitektur
Wurzelursache (Root Cause)
Spezifische Schwachstelle gemäß MITRE CWE-Katalog.
Exploitation-Mechanik
Potenzielle Beeinträchtigung von Vertraulichkeit, Integrität oder Verfügbarkeit.
Defensive Architektur
Upstream-Advisory und herstellerspezifische Richtlinien für sichere Programmierung prüfen.
CWE-1419 Software-Schwachstellen-Klasse CWE-1419
Allgemeine Sicherheitsarchitektur
Wurzelursache (Root Cause)
Spezifische Schwachstelle gemäß MITRE CWE-Katalog.
Exploitation-Mechanik
Potenzielle Beeinträchtigung von Vertraulichkeit, Integrität oder Verfügbarkeit.
Defensive Architektur
Upstream-Advisory und herstellerspezifische Richtlinien für sichere Programmierung prüfen.
CWE-416 Verwendung nach Freigabe (Use-After-Free)
A03:2021-Injection / Memory Corruption
Wurzelursache (Root Cause)
Programm greift auf Speicheradressen zu, nachdem diese bereits an das Betriebssystem freigegeben wurden.
Exploitation-Mechanik
Heap-Exploitation; Überschreiben mit Angreifer-Payload führt zu arbiträrer Codeausführung.
Defensive Architektur
Nullen von Pointern nach free(), Verwendung von Smart Pointern oder Übergang zu Rust.
CWE-755 Software-Schwachstellen-Klasse CWE-755
Allgemeine Sicherheitsarchitektur
Wurzelursache (Root Cause)
Spezifische Schwachstelle gemäß MITRE CWE-Katalog.
Exploitation-Mechanik
Potenzielle Beeinträchtigung von Vertraulichkeit, Integrität oder Verfügbarkeit.
Defensive Architektur
Upstream-Advisory und herstellerspezifische Richtlinien für sichere Programmierung prüfen.
CWE-824 Software-Schwachstellen-Klasse CWE-824
Allgemeine Sicherheitsarchitektur
Wurzelursache (Root Cause)
Spezifische Schwachstelle gemäß MITRE CWE-Katalog.
Exploitation-Mechanik
Potenzielle Beeinträchtigung von Vertraulichkeit, Integrität oder Verfügbarkeit.
Defensive Architektur
Upstream-Advisory und herstellerspezifische Richtlinien für sichere Programmierung prüfen.

Compliance, SLA & Vendor Adherence

Advisory-Prüfung · Score-Einordnung · Fristen
CISA-SSVC-Triage (vulnrichment)CVE-2026-109618
Exploitation: none (Keine bekannte Ausnutzung)Automatable: no (Nicht automatisierbar)Technical Impact: total (Vollständig)
Quelle: CISA-ADP vulnrichment · Stand 2026-10-21T14:34:39.479770Z · CISA Coordinator
Advisory Radar

Hersteller-Sicherheitsmeldungen & Patch-Status

In herstellerseitiger Prüfung
Handlungsempfehlung für Administratoren

Hersteller-Advisory noch nicht formal hinterlegt. Regelmäßiges Re-Scanning der CTI-Quellen anberaumt.

Referenzen aus der Primärquelle („Verifiziert" nur bei Hersteller-Domäne):
  • Upstream-Referenz (Code-Hosting, kein Advisory)
    github.com
Intelligence Digest — kostenlos Täglich die wichtigsten Security-News · jederzeit abbestellbar
Community Rating & Social Proof
⭐ Leser-Wertung
–
Ø / 5.0
Noch keine Leser-Bewertungen
War diese Seite hilfreich?
0
Jetzt Bewertung abgeben
🟢 Niedrig (1-3.9) 🟡 Mittel (4.0-6.9) 🔴 Hoch (7.0-8.9) Kritisch (9.0-10.0)

Verwandte Story-Cluster & Quellen (Vektor-KI)

Zum Aktualisieren ziehen
Nächster Beitrag