Problem/Motivation

Bump Symfony versions for https://symfony.com/blog/cve-2026-48736-iputils-private-subnets-omits-ip... and https://symfony.com/blog/cve-2026-48784-urlgenerator-encoding-skips-ever...

Steps to reproduce

Proposed resolution

Remaining tasks

User interface changes

Introduced terminology

API changes

Data model changes

Release notes snippet

Issue fork drupal-3592421

Command icon Show commands

Start within a Git clone of the project using the version control instructions.

Or, if you do not have SSH keys set up on git.drupalcode.org:

Comments

godotislate created an issue. See original summary.

dww’s picture

Status: Active » Needs review

Looks like a sea of green MRs. Will try to review once I get to my desk.

godotislate’s picture

I have MRs up for main, 11.x, 11.4.x, 11.3.x, 11.2.x, and 10.5.x.

10.6.x is on hold for the commit from #3592382: Update Twig to v3.27.0.

znerol’s picture

Note, updating symfony is not enough to fix CVE-2026-48784, Drupal has its own UrlGenerator #3592341: Fix dot-segment encoding for chained "../" and "./" in generated URLs.

dww’s picture

Status: Needs review » Needs work

I tested locally on all of the following branches:

  • main
  • 11.x
  • 11.4.x
  • 11.3.x
  • 11.2.x
  • 10.5.x

In each case, a fresh git pull; composer install; composer audit resulted in:

Found 2 security vulnerability advisories affecting 2 packages:
+-------------------+----------------------------------------------------------------------------------+
| Package           | symfony/http-foundation                                                          |
| Severity          |                                                                                  |
| Advisory ID       | PKSA-y6py-qpv1-h52p                                                              |
| CVE               | CVE-2026-48736                                                                   |
| Title             | CVE-2026-48736: IpUtils::PRIVATE_SUBNETS Omits IPv6 Transition Forms (6to4,      |
|                   | NAT64, Teredo, IPv4-compatible): SSRF Bypass in NoPrivateNetworkHttpClient       |
| URL               | https://symfony.com/cve-2026-48736                                               |
| Affected versions | >=6.4.0,<6.4.41|>=7.0.0,<7.1.0|>=7.1.0,<7.2.0|>=7.2.0,<7.3.0|>=7.3.0,<7.4.0|>=7. |
|                   | 4.0,<7.4.13|>=8.0.0,<8.0.13                                                      |
| Reported at       | 2026-05-26T08:00:00+00:00                                                        |
+-------------------+----------------------------------------------------------------------------------+
+-------------------+----------------------------------------------------------------------------------+
| Package           | symfony/routing                                                                  |
| Severity          |                                                                                  |
| Advisory ID       | PKSA-bf7t-jnpz-492k                                                              |
| CVE               | CVE-2026-48784                                                                   |
| Title             | CVE-2026-48784: UrlGenerator Dot-Segment Encoding Skips Every Other Chained      |
|                   | `../` or `./` → Generated URL Collapses Off-Route Under RFC 3986 Normalization   |
| URL               | https://symfony.com/cve-2026-48784                                               |
| Affected versions | >=2.0.0,<3.0.0|>=3.0.0,<4.0.0|>=4.0.0,<5.0.0|>=5.0.0,<5.1.0|>=5.1.0,<5.2.0|>=5.2 |
|                   | .0,<5.3.0|>=5.3.0,<5.4.0|>=5.4.0,<5.4.53|>=6.0.0,<6.1.0|>=6.1.0,<6.2.0|>=6.2.0,< |
|                   | 6.3.0|>=6.3.0,<6.4.0|>=6.4.0,<6.4.41|>=7.0.0,<7.1.0|>=7.1.0,<7.2.0|>=7.2.0,<7.3. |
|                   | 0|>=7.3.0,<7.4.0|>=7.4.0,<7.4.13|>=8.0.0,<8.0.13                                 |
| Reported at       | 2026-05-26T08:00:00+00:00                                                        |
+-------------------+----------------------------------------------------------------------------------+

After checking out the corresponding branch from the fork repo, another composer install; composer audit gives:

No security vulnerability advisories found.

2 things prevent me from RTBC'ing:

  1. We need the MR for 10.6.x.
  2. composer/Metapackage/PinnedDevDependencies/composer.json is only updated in the MR for 10.5.x. However, on all the 11.* branches, that file is still pinning "symfony/polyfill-php84": "~v1.37.0", but we bump that version to "v1.38.1" in 10.5.x. Presumably we need that everywhere. Copy/paste failed myself. Everything is cool. The polyfills are gone from PinnedDevDependencies in the 11.* branches.

dww’s picture

Argh, I copy/paste/failed myself. Edited previous comment to clarify. Only awaiting 10.6.x MR, then this is RTBC.

godotislate’s picture

Status: Needs work » Needs review
dww’s picture

Status: Needs review » Reviewed & tested by the community

Did the same test on 10.6.x. Same 2 vulnerabilities before. After checking out 3592421-update-symfony-versions-10.6.x and running composer install, composer audit is happy. MR diff looks good. Given the bot is happy everywhere else, and the changes are functionally equivalent, the only way I see the pipeline failing is a random fail. Being bold, and moving to RTBC.

Thanks!
-Derek

dww’s picture

Priority: Normal » Major
Issue tags: +Security

Bumping to major (at least) and tagging for Security since the change is to resolve CVEs.

znerol’s picture

It looks like the issue from last week #3591179: Update main and 11.x to latest Twig and Symfony versions changed core/composer.json and various other composer.json files in addition to the one in composer/Metapackage/CoreRecommended. I used this command to compile a CSV containing a list of symfony dependencies defined in various composer.json files.

git grep -h -o 'symfony/[^"]*' **/composer.json | uniq > /tmp/symfony-dependencies.txt
while read DEP; do git grep $DEP **/composer.json |tr ':' ','; done < /tmp/symfony-dependencies.txt > /tmp/symfony-dependencies.csv

Not super efficient, but it does what it should. Using the spreadsheet I can see that symfony/http-kernel is at a different patch level in composer/Metapackage/CoreRecommended/composer.json vs. core/composer.json:

composer/Metapackage/CoreRecommended/composer.json	symfony/http-kernel	~v8.0.13
core/composer.json	symfony/http-kernel	^8.0.12
longwave’s picture

@znerol that's fine. We only bump the minimum dependency when there is a security release. So 8.0.12 is still secure, but we have locked to 8.0.13 in the lockfile so ~8.0.13 is in core recommended, because we didn't test with 8.0.12 explicitly.

godotislate’s picture

Status: Reviewed & tested by the community » Needs review

Sorry about this, I ran the wrong composer commands originally.

Documenting for posterity:
I did COMPOSER_ROOT_VERSION={branch} composer update symfony/*

Spoke to longwave and correct commands are

COMPOSER_ROOT_VERSION={branch} composer -d core require symfony/routing:^{version} symfony/http-foundation:^{version} --no-update
COMPOSER_ROOT_VERSION={branch} composer update drupal/core symfony/routing symfony/http-foundation

MRs updated.

godotislate’s picture

Title: Update Symfony versions » Update Symfony routing and http-foundation versions
dww’s picture

Status: Needs review » Reviewed & tested by the community

Re-reviewed and retested everywhere. Smaller diff now that we're only updating those 2 symfony packages, not every Symfony thing with a new release. All looks good to me. Ship it. 😅

Thanks!
-Derek

znerol’s picture

Thanks @godotislate, tested all MRs and looked at the diffs/stats. I think its all okay now.

  • catch committed f870bd65 on main
    task: #3592421 Update Symfony routing and http-foundation versions
    
    By:...

  • catch committed e4d1ef8a on 11.x
    task: #3592421 Update Symfony routing and http-foundation versions
    
    By:...

  • catch committed 81d284eb on 11.4.x
    task: #3592421 Update Symfony routing and http-foundation versions
    
    By:...

  • catch committed 09c8562d on 11.3.x
    task: #3592421 Update Symfony routing and http-foundation versions
    
    By:...

  • catch committed 255c37be on 11.2.x
    task: #3592421 Update Symfony routing and http-foundation versions
    
    By:...

  • catch committed bfde0989 on 10.6.x
    task: #3592421 Update Symfony routing and http-foundation versions
    
    By:...

  • catch committed 9f017a54 on 10.5.x
    task: #3592421 Update Symfony routing and http-foundation versions
    
    By:...

catch’s picture

Version: main » 10.5.x-dev
Status: Reviewed & tested by the community » Fixed

Committed/pushed to all branches, thanks!

The 11.x MR cherry-picked to 11.4.x so I did that one as a cherry-pick.

Now that this issue is closed, review the contribution record.

As a contributor, attribute any organization that helped you, or if you volunteered your own time.

Maintainers, credit people who helped resolve this issue.

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.