Skip to content

Updated Drupal core to '11.4.12' and contrib modules to resolve 16 security advisories. - #365

Merged
AlexSkrypnyk merged 2 commits into
developfrom
feature/drupal-updates-2026-11-07
Nov 7, 2026
Merged

AlexSkrypnyk merged 2 commits into
developfrom
feature/drupal-updates-2026-11-07

Conversation

@AlexSkrypnyk

@AlexSkrypnyk AlexSkrypnyk commented Nov 7, 2026 •

Copy link
Copy Markdown
Member

Before / After

BEFORE (develop 4b789dc)                 AFTER (this branch)
┌──────────────────────────────┐         ┌──────────────────────────────┐
│ drupal/core        11.4.11   │         │ drupal/core        11.4.12   │
│ symfony/* 7.4      v7.4.22   │  ───►   │ symfony/* 7.4      v7.4.23   │
│ symfony/* 8.1      v8.1.10   │         │ symfony/* 8.1      v8.1.11   │
│ drupal/highlight_js 1.3.0    │         │ drupal/highlight_js 1.3.1    │
├──────────────────────────────┤         ├──────────────────────────────┤
│ composer audit: 16 advisories│         │ composer audit: 0 advisories │
│ across 10 packages           │         │ config.audit.ignore: empty   │
└──────────────────────────────┘         └──────────────────────────────┘

Checklist before requesting a review

  • Subject includes ticket number as [#123] Verb in past tense.
  • Ticket number #123 added to description
  • Added context in Changed section
  • Self-reviewed code and commented in commented complex areas.
  • Added tests for fix/feature.
  • Relevant tests run and passed locally.

Changed

composer audit --locked on develop reports 16 advisories published on 4 November, and this branch brings it to 0. Drupal core goes from 11.4.11 to 11.4.12, the Symfony 7.4 components move from v7.4.22 to v7.4.23, the Symfony 8.1 components from v8.1.10 to v8.1.11, and 7 contrib modules take patch or minor releases.

15 of the advisories sit in Symfony components core depends on (http-foundation, http-kernel, routing, serializer, validator, yaml, filesystem, config, http-client), including CVE-2026-118514 (HEAD requests bypass access_control methods), CVE-2026-118516 (host placeholders match the start of the path) and CVE-2026-118515 (serializer builds UploadedFile from request data). The 16th is SA-CONTRIB-2026-299, a critical XSS in drupal/highlight_js below 1.3.1.

Only composer.json constraints and composer.lock change. Every patch in extra.patches applied without a re-roll, config.audit.ignore was already empty, and config/default/ is untouched. drush updb and drush cex have not been run locally against this branch, so a post-update hook that rewrites config would not show up in this diff. The phpstan/phpstan 2.3.3 pin stays in place.

  1. Drupal core - drupal/core, drupal/core-recommended and drupal/core-composer-scaffold 11.4.11 to 11.4.12, pulling in Symfony v7.4.23 / v8.1.11, masterminds/html5 2.12.0, and symfony/cache-contracts and symfony/http-client-contracts v3.8.1.
  2. Contrib modules - drupal/captcha 2.0.12, drupal/highlight_js 1.3.1 (security), drupal/key 1.23.0, drupal/metatag 2.2.6, drupal/photoswipe 5.0.13, drupal/shield 1.11.0, drupal/stage_file_proxy 4.0.2.
  3. Tooling - Drush's consolidation/* libraries patched, mglaman/phpstan-drupal 2.2.2 to 2.3.0, symfony/browser-kit v8.1.11.

Security advisories resolved

Package Advisory Fixed in
drupal/highlight_js SA-CONTRIB-2026-299 / CVE-2026-122068 - XSS (Critical) 1.3.1
symfony/config GHSA-5jff-8h8q-r5qx - XXE in XmlUtils::parse() v8.1.11
symfony/filesystem GHSA-6prc-h956-hxjq - paths escape their base directory v7.4.23
symfony/http-client GHSA-gq53-v8w2-gjhj - scoped credentials sent to other origins v7.4.23
symfony/http-client GHSA-c7hm-wqwp-f9v8 - DNS rebinding in NoPrivateNetworkHttpClient v7.4.23
symfony/http-foundation CVE-2026-118514 - HEAD bypasses access_control methods v7.4.23
symfony/http-foundation GHSA-3h27-hjv7-fqjx - path rules bypassed via script name v7.4.23
symfony/http-foundation GHSA-xg2q-4rrq-657q - private_ranges trusts mapped IPv6 clients v7.4.23
symfony/http-foundation GHSA-5mx8-mwrp-5693 - generated URLs use a client-chosen host v7.4.23
symfony/http-kernel GHSA-wg5q-m2ww-f3c9 - inline fragments trust forwarded headers v7.4.23
symfony/routing CVE-2026-118516 - host placeholders match the start of the path v7.4.23
symfony/serializer CVE-2026-118515 - UploadedFile built from request data v7.4.23
symfony/serializer GHSA-pxj9-jh84-vhm5 - DataUriNormalizer reads local files v7.4.23
symfony/serializer GHSA-hqp2-7rr8-hf26 - dotted keys bypass #[Ignore] v7.4.23
symfony/validator GHSA-4qpf-57w4-m3wc - Ip constraint accepts IPv4-mapped IPv6 v7.4.23
symfony/yaml GHSA-hwfg-qwvh-2wfx - exponential parse times v7.4.23

Testing focus

  • Open pages with code samples and confirm syntax highlighting renders.
  • Confirm the shield login prompt still appears on non-production environments and accepts the configured credentials.
  • Check page titles, meta descriptions and social share cards on a content page, the 403 page and the 404 page.
  • Open an image in a content page and confirm the zoom lightbox opens and closes.
  • Submit a captcha-protected form and confirm both a valid and a failed submission behave as expected.
  • Confirm content authoring API requests that use an API key still authenticate.

Deployment

Run drush updb and drush cim as part of the normal deploy. No manual steps beyond that.

Package changes

  • consolidation/annotated-command updated from 4.10.5 to 4.10.6 patch
  • consolidation/config updated from 3.2.1 to 3.2.2 patch
  • consolidation/log updated from 3.1.2 to 3.1.3 patch
  • consolidation/output-formatters updated from 4.7.1 to 4.7.2 patch
  • drupal/captcha updated from 2.0.11 to 2.0.12 patch
  • drupal/core updated from 11.4.11 to 11.4.12 patch - release notes
  • drupal/core-composer-scaffold updated from 11.4.11 to 11.4.12 patch
  • drupal/core-recommended updated from 11.4.11 to 11.4.12 patch
  • drupal/highlight_js updated from 1.3.0 to 1.3.1 patch
  • drupal/key updated from 1.22.0 to 1.23.0 minor
  • drupal/metatag updated from 2.2.5 to 2.2.6 patch
  • drupal/photoswipe updated from 5.0.12 to 5.0.13 patch
  • drupal/shield updated from 1.10.0 to 1.11.0 minor
  • drupal/stage_file_proxy updated from 4.0.1 to 4.0.2 patch
  • masterminds/html5 updated from 2.10.1 to 2.12.0 minor
  • mglaman/phpstan-drupal updated from 2.2.2 to 2.3.0 minor
  • symfony/browser-kit updated from v8.1.10 to v8.1.11 patch
  • symfony/cache-contracts updated from v3.7.1 to v3.8.1 minor
  • symfony/config updated from v8.1.10 to v8.1.11 patch
  • symfony/console updated from v7.4.22 to v7.4.23 patch
  • symfony/dependency-injection updated from v7.4.22 to v7.4.23 patch
  • symfony/filesystem updated from v7.4.21 to v7.4.23 patch
  • symfony/finder updated from v7.4.22 to v7.4.23 patch
  • symfony/http-client updated from v7.4.22 to v7.4.23 patch
  • symfony/http-client-contracts updated from v3.7.3 to v3.8.1 minor
  • symfony/http-foundation updated from v7.4.22 to v7.4.23 patch
  • symfony/http-kernel updated from v7.4.22 to v7.4.23 patch
  • symfony/routing updated from v7.4.22 to v7.4.23 patch
  • symfony/runtime updated from v7.4.22 to v7.4.23 patch
  • symfony/serializer updated from v7.4.22 to v7.4.23 patch
  • symfony/translation updated from v8.1.10 to v8.1.11 patch
  • symfony/validator updated from v7.4.22 to v7.4.23 patch
  • symfony/yaml updated from v7.4.22 to v7.4.23 patch

Screenshots

N/A

Summary by CodeRabbit

  • Chores
    • Updated version requirements for Drupal core and several project packages. No user-facing feature changes are noted.

@AlexSkrypnyk AlexSkrypnyk added A2 Board worker 2 AUTOMERGE Pull request has been approved and set to automerge labels Nov 7, 2026
@coderabbitai

coderabbitai Bot commented Nov 7, 2026 •

Copy link
Copy Markdown

Explain Change →

No actionable comments were generated in the recent review.

Walkthrough

Composer constraints were raised for Drupal core, several contributed packages, Symfony HTTP client, and the PHPStan Drupal development dependency.

Changes: Composer dependency updates

Layer / File(s) Summary
Updated dependency constraints
composer.json
Constraints were raised for Drupal core, highlight_js, metatag, photoswipe, shield, stage_file_proxy, Symfony HTTP client, and PHPStan Drupal.

Estimated code review effort: 1 (Trivial) | ~4 minutes

Change: Other

Possibly related issues

  • drevops/website#358: The issue lists pending Composer updates for packages also updated in this PR, including Drupal core and highlight_js. It does not confirm that all listed updates are completed.

Possibly related PRs

  • drevops/website#362: Both PRs change Composer constraints for metatag, stage_file_proxy, and Symfony HTTP client, with differing constraint values.
Merge Risk: Minimal · up to 89227

The dependency updates have no identified merge-blocking issue. Normal deployment and compatibility checks remain appropriate.

Pre-merge checks: Passed 5

Check name Status Explanation
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check Passed The title names the two main changes: the Drupal core bump to 11.4.12 and the contrib module updates made to resolve security advisories. The raw summary confirms the core constraint move from ~11.4.1…
Docstring Coverage Passed No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentat…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Title check

Explanation

The title names the two main changes: the Drupal core bump to 11.4.12 and the contrib module updates made to resolve security advisories. The raw summary confirms the core constraint move from ~11.4.11 to ~11.4.12 and the raised contrib constraints in composer.json. The PR objectives describe the same updates and the advisory count. The title is specific and matches the changeset, so it passes.

Full details: Docstring Coverage

Explanation

No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 0 functions across 0 files. (1 skipped: 1 unsupported.)

Finishing Touches

Generate unit tests (beta)

  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
Recent review info

Run configuration

  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: ASSERTIVE
  • Plan: Team
  • Run ID: f044ad2b-1fad-4f9c-bb4f-344e6660e1cf
Commits

Reviewing files that changed from the base of the PR and between 4b789dc and 892270c.

Files ignored due to path filters: 1

  • composer.lock is excluded by !**/*.lock
Files selected for processing: 1

  • composer.json

Included review availability: This review used your included allowance. 4 included reviews remain after this review. Your included PR review attempts over the past 7 days set your current allowance at 8 reviews per hour.

@github-actions

github-actions Bot commented Nov 7, 2026

Copy link
Copy Markdown

Code coverage (threshold: 80%)

  Classes: 58.82% (20/34)
  Methods: 80.65% (100/124)
  Lines:   89.22% (894/1002)
Per-class coverage
Drupal\do_ai_alt_text\AltTextGenerator
  Methods:  85.71% ( 6/ 7)   Lines:  98.72% ( 77/ 78)
Drupal\do_ai_alt_text\Plugin\Action\RegenerateImageAltText
  Methods: 100.00% ( 8/ 8)   Lines: 100.00% ( 63/ 63)
Drupal\do_base\EventSubscriber\PreviewLinkCacheSubscriber
  Methods:  33.33% ( 1/ 3)   Lines:  11.11% (  1/  9)
Drupal\do_base\EventSubscriber\ThemeColorSubscriber
  Methods:  66.67% ( 2/ 3)   Lines:  40.00% (  4/ 10)
Drupal\do_base\Hook\AutomatedListPagerHook
  Methods: 100.00% ( 5/ 5)   Lines: 100.00% ( 31/ 31)
Drupal\do_base\Hook\LibraryInfoAlterHook
  Methods: 100.00% ( 3/ 3)   Lines: 100.00% ( 11/ 11)
Drupal\do_base\Hook\MetatagsAlterHook
  Methods: 100.00% ( 7/ 7)   Lines: 100.00% ( 58/ 58)
Drupal\do_base\Hook\PageAttachmentsHook
  Methods:  87.50% ( 7/ 8)   Lines:  96.61% ( 57/ 59)
Drupal\do_base\Hook\SvgMediaHook
  Methods:  75.00% ( 3/ 4)   Lines:  96.15% ( 25/ 26)
Drupal\do_base\Hook\TwigValidatorRuleInfoAlterHook
  Methods: 100.00% ( 1/ 1)   Lines: 100.00% (  3/  3)
Drupal\do_base\NavigationScriptHash
  Methods: 100.00% ( 3/ 3)   Lines: 100.00% ( 27/ 27)
Drupal\do_base\SvgDimensions
  Methods: 100.00% ( 1/ 1)   Lines: 100.00% ( 13/ 13)
Drupal\do_base\Twig\IconAssetsExtension
  Methods: 100.00% ( 2/ 2)   Lines: 100.00% (  3/  3)
Drupal\do_base\Twig\ImageDimensionsExtension
  Methods:  60.00% ( 3/ 5)   Lines:  93.02% ( 40/ 43)
Drupal\do_content_api\EventSubscriber\JsonApiWriteGateSubscriber
  Methods:  66.67% ( 2/ 3)   Lines:  88.89% (  8/  9)
Drupal\do_content_api\Hook\EntityCreateAccessHook
  Methods: 100.00% ( 2/ 2)   Lines: 100.00% ( 12/ 12)
Drupal\do_content_api\Hook\ModerationPolicyHook
  Methods:  50.00% ( 1/ 2)   Lines:  93.75% ( 15/ 16)
Drupal\do_content_api\Routing\RouteSubscriber
  Methods: 100.00% ( 3/ 3)   Lines: 100.00% ( 11/ 11)
Drupal\do_feed\FeedUrlBuilder
  Methods: 100.00% ( 4/ 4)   Lines: 100.00% ( 18/ 18)
Drupal\do_feed\Form\FeedSettingsForm
  Methods: 100.00% ( 4/ 4)   Lines: 100.00% ( 15/ 15)
Drupal\do_feed\Hook\EntityDeleteHook
  Methods:  50.00% ( 1/ 2)   Lines:  92.31% ( 12/ 13)
Drupal\do_feed\Hook\EntityPresaveHook
  Methods: 100.00% ( 4/ 4)   Lines: 100.00% ( 54/ 54)
Drupal\do_feed\Hook\PreprocessParagraphHook
  Methods: 100.00% ( 2/ 2)   Lines: 100.00% ( 14/ 14)
Drupal\do_feed\Hook\PreprocessViewsViewRowRssHook
  Methods: 100.00% ( 1/ 1)   Lines: 100.00% (  3/  3)
Drupal\do_feed\Hook\ViewsPreViewHook
  Methods:  50.00% ( 1/ 2)   Lines:  96.43% ( 27/ 28)
Drupal\do_generated_content\Generator\CaseMatrix
  Methods: 100.00% ( 3/ 3)   Lines: 100.00% ( 12/ 12)
Drupal\do_generated_content\Generator\RelativeDate
  Methods: 100.00% ( 1/ 1)   Lines: 100.00% (  1/  1)
Drupal\do_package\Hook\PackageAccessHook
  Methods: 100.00% ( 7/ 7)   Lines: 100.00% ( 27/ 27)
Drupal\do_package\Hook\PackageFileHook
  Methods: 100.00% (11/11)   Lines: 100.00% ( 40/ 40)
Drupal\do_package\Routing\RouteSubscriber
  Methods: 100.00% ( 1/ 1)   Lines: 100.00% (  5/  5)

@codecov

codecov Bot commented Nov 7, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 86.85%. Comparing base (4b789dc) to head (892270c).
⚠️ Report is 1 commits behind head on develop.

Additional details and impacted files
@@           Coverage Diff            @@
##           develop     #365   +/-   ##
========================================
  Coverage    86.85%   86.85%           
========================================
  Files           35       35           
  Lines          791      791           
========================================
  Hits           687      687           
  Misses         104      104           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@AlexSkrypnyk
AlexSkrypnyk disabled auto-merge November 7, 2026 04:15
@AlexSkrypnyk
AlexSkrypnyk merged commit 3ae0c7d into develop Nov 7, 2026
15 of 16 checks passed
@AlexSkrypnyk
AlexSkrypnyk deleted the feature/drupal-updates-2026-11-07 branch November 7, 2026 04:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A2 Board worker 2 AUTOMERGE Pull request has been approved and set to automerge

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant