Install
To start a new Drupal project with version 11.3.3:To update your site and all dependencies to the latest version of Drupal:
To update your site to this specific release:
Pinning to a specific release may make it more challenging to update your site in future, see composer documentation for managing pinned versions
Using Composer to manage Drupal site dependencies
Downloads
Download tar.gz
19.91 MB
MD5: c71d4d292832ad20f51382cc43736050
SHA-1: 4c61cb5e25ef476d804dc02b6fff70446888ea7f
SHA-256: bb01dd6c74e43f5e4c750844fb236e579c4e2498d5a889a1979196fe486ed284
Download zip
34.16 MB
MD5: 02aaff28a5fd731567061a2562a61130
SHA-1: 217fd9a20ebd5fa5a19a6a8d1da1fd23387d891d
SHA-256: f8bc835eca439a1019accc049cd31d5d1b5559ef0ffcffed96a01742c9838d35
Release notes
This is a patch (bugfix) release of Drupal 11 and is ready for use on production sites. Learn more about the latest version of Drupal.
Drupal 11.3.x will receive security coverage until December 2026.
All changes since 11.3.2
- task: #3566054 Add heddn as a maintainer of the Image subsystem
- task: #3566053 Add heddn as a maintainer of the Authentication and Authorization subsystem
- task: #3566049 Add amateescu as a maintainer of the Workflows subsystem
- test: #3571492 Several tests fail on PHP 8.1 on 10.6.x because of requirements issues
- fix: #3463524 editor_post_update_sanitize_image_upload_settings fails on missing text format
- Reapply "task: #3571196 Update symfony/process constraint"
- task: #3570133 PHPUnit security update
- Revert "task: #3571196 Update symfony/process constraint"
- task: #3571196 Update symfony/process constraint
- fix: #3567770 Media Library message persists after deselecting items to fix overflow
- docs: #3532469 Documentation mentions Drupal being fully "repaired"
- fix: #3566568 The short description for the \Drupal\user\AccountForm class is not correct
- fix: #3569778 Fix link in \Drupal\Tests\package_manager\Kernel\TestSandboxManager::__sleep doc
- fix: #3564510 TypeError: Drupal\Core\Utility\ThemeRegistry::getGlobalPreprocess(): Return value must be of type array
- fix: #3570220 RoleSettingsForm::submitForm() should not load config overrides
- fix: #3570219 BlockListBuilder::submitForm() should not load config overrides
- fix: #3565213 Adjust contextual CSS for navigation module reset CSS
- fix: #3568141 Try to avoid style recalculation in Olivero's isDesktopNav
- fix: #3564880 BigPipe placeholders with identical IDs are not all replaced
- docs: #3563727 Fix PHPStan missingType.generics for \ArrayIterator not specifying its types
- feat: #3535230 Reverted revision is not listed on the version history when using Set as current revision
- Revert "feat: #3535230 Reverted revision is not listed on the version history when using Set as current revision"
- feat: #3535230 Reverted revision is not listed on the version history when using Set as current revision
- feat: #3556794 preprocess_HOOK__candidates in themes can be assigned to module invoke maps
- docs: #3559209 cache contexts should use `list` everywhere
- task: #3566060 Add smustgrave as a maintainer of the Menu UI subsystem
- task: #3566058 Add penyaskito as a maintainer of the Content Translation subsystem
- task: #3566059 Add penyaskito as a maintainer of the Language subsystem
- fix: #3561800 Using \Drupal\Core\Database\Query\Insert::from() on postgres on a table with a serial field can result in duplicate key error
- fix: #3327662 Deleting the system.site:page.front config results in a PHP deprecation
- task: #3564264 Fix concrete typehinting of EntityTypeManager
- task: #3567983 Avoid unnecessary style recalculation from Olivero search
- task: #3449874 Update to jQuery 4.0.0
- fix: #3562759 ContentEntityBase::hasTranslationChanges() must use loadRevisionUnchanged()
- fix: #3552984 MigrateTestBase::display() causes a TypeError if a test fails a migration
- fix: #3532360 Check return value from getCurrentRequest() before calling setRequest() in ViewExecutableFactory
- fix: #3450792 Only set #group is status field exists in NodeForm
- fix: #3560093 $target_url in ViewAjaxController::ajaxView can be NULL
- fix: #3389633 SwitchShortcutSet form does not set access on machine name element
- fix: #3567086 Alias case sensitivity after the removal of the preload cache
- Revert "fix: #3516264 CKEditor 5 loads all plugin translations on AJAX operations"
- test: #3520036 [random test failure] CKEditor5MarkupTest
- task: #3563647 Remove unneeded patterns from deprecation-ignore.txt
- fix: #3401726 MediaLibraryUiBuilder service does not properly allow additional contextual filter arguments
- Revert "fix: #3560202 UserCreationTrait::create* methods can never return false"
- fix: #3560202 UserCreationTrait::create* methods can never return false
- fix: #3550787 [random test failure] CKEditor5Test::testLanguageOfPartsPlugin
- fix: #3566844 [random test failure] MediaTest::testTranslationAlt
- fix: #3566845 [random test failure] ImageTest::testLinkability
- fix: #3549107 Escape or strip control characters in JSON:API
- fix: #3505182 An entity without a label causes an uncaught exception for the navigation:title component
- fix: #1522154 Saving non-default revisions shouldn't trigger a search reindex
- fix: #3526908 Fix issues with ConfigEntityValidationTestBase
- fix: #3557014 PageDisplayVariant does not transmit cache metadata
- task: #3556936 Outdated todo in EarlyRenderingControllerWrapperSubscriber
- fix: #3061838 Email element does not have default #ajax event
- task: #3557840 Remove @legacy-covers in cases where the test method name starts with the covered method
- task: #3562214 Upgrade glob because of CVE-2025-64756
- fix: #3565703 block_content post update fails if views module is disabled
- fix: #3566261 [regression] custom field twig for second comment fields has null value in comment after 11.3.0 upgrade
- fix: #3565937 Workaround PHP bug with fibers and __get()
- fix: #3387013 Check LinkItemInterface::isEmpty() before validating
- task: #2620330 Move ContainerDerivativeDiscoveryDecoratorTest::testGetDefinitions() to DerivativeDiscoveryDecoratorTest
- task: #2436209 Test ContentEntityBase constructor called with multilanguage values
- task: #3308418 Improve more error messages on unrouted URLs
- fix: #3552531 Unsupported operand types: array + null when calling field_formatter_third_party_settings_form hook
- fix: #3152281 Extra field blocks render even when empty
- Back to dev.