diff --git a/typo3/sysext/about/composer.json b/typo3/sysext/about/composer.json
index cc97ec3ec0173b3cd44b13c523623ff7fb663b6d..ab218629324b5a4e0951b8fab80d325ee5f21f21 100644
--- a/typo3/sysext/about/composer.json
+++ b/typo3/sysext/about/composer.json
@@ -19,7 +19,7 @@
 		"sort-packages": true
 	},
 	"require": {
-		"typo3/cms-core": "10.4.*@dev"
+		"typo3/cms-core": "10.4.28"
 	},
 	"conflict": {
 		"typo3/cms": "*"
diff --git a/typo3/sysext/adminpanel/composer.json b/typo3/sysext/adminpanel/composer.json
index 982bc1a216b2398f6f6d97cf60c5e327c618e3f3..7df95864fe85cc2694fdca0096bf6e41257a41d7 100644
--- a/typo3/sysext/adminpanel/composer.json
+++ b/typo3/sysext/adminpanel/composer.json
@@ -23,10 +23,10 @@
 		"psr/http-server-handler": "^1.0",
 		"psr/http-server-middleware": "^1.0",
 		"symfony/var-dumper": "^4.4 || ^5.0",
-		"typo3/cms-backend": "10.4.*@dev",
-		"typo3/cms-core": "10.4.*@dev",
-		"typo3/cms-fluid": "10.4.*@dev",
-		"typo3/cms-frontend": "10.4.*@dev",
+		"typo3/cms-backend": "10.4.28",
+		"typo3/cms-core": "10.4.28",
+		"typo3/cms-fluid": "10.4.28",
+		"typo3/cms-frontend": "10.4.28",
 		"typo3fluid/fluid": "^2.6.10"
 	},
 	"conflict": {
diff --git a/typo3/sysext/backend/composer.json b/typo3/sysext/backend/composer.json
index 5d17a4acbadec00602505ec1f3e44fde1be92d35..1335b941d2dbb4bfb7873b098fc4e3465091238f 100644
--- a/typo3/sysext/backend/composer.json
+++ b/typo3/sysext/backend/composer.json
@@ -20,8 +20,8 @@
 	},
 	"require": {
 		"psr/event-dispatcher": "^1.0",
-		"typo3/cms-core": "10.4.*@dev",
-		"typo3/cms-recordlist": "10.4.*@dev"
+		"typo3/cms-core": "10.4.28",
+		"typo3/cms-recordlist": "10.4.28"
 	},
 	"suggest": {
 		"typo3/cms-install": "To generate url to install tool in environment toolbar"
diff --git a/typo3/sysext/belog/composer.json b/typo3/sysext/belog/composer.json
index f01d4ef4eb7344a0b296b38049ccde856f2446d5..3b2cb3e4667fd792f9d088f4074a659088d9c169 100644
--- a/typo3/sysext/belog/composer.json
+++ b/typo3/sysext/belog/composer.json
@@ -19,7 +19,7 @@
 		"sort-packages": true
 	},
 	"require": {
-		"typo3/cms-core": "10.4.*@dev"
+		"typo3/cms-core": "10.4.28"
 	},
 	"conflict": {
 		"typo3/cms": "*"
diff --git a/typo3/sysext/beuser/composer.json b/typo3/sysext/beuser/composer.json
index 03774036b70fa06c8da3e76f5a6f79ca45058778..2bc6dd76674d327ccc1b38c95d29b25162093595 100644
--- a/typo3/sysext/beuser/composer.json
+++ b/typo3/sysext/beuser/composer.json
@@ -19,7 +19,7 @@
 		"sort-packages": true
 	},
 	"require": {
-		"typo3/cms-core": "10.4.*@dev"
+		"typo3/cms-core": "10.4.28"
 	},
 	"conflict": {
 		"typo3/cms": "*"
diff --git a/typo3/sysext/core/Classes/Information/Typo3Version.php b/typo3/sysext/core/Classes/Information/Typo3Version.php
index 9b2f324f2adf38f0d12c06c82989caf18e221b29..774a5ff0cb2fd7cac0107e27573ca437c47afb91 100644
--- a/typo3/sysext/core/Classes/Information/Typo3Version.php
+++ b/typo3/sysext/core/Classes/Information/Typo3Version.php
@@ -19,7 +19,7 @@ namespace TYPO3\CMS\Core\Information;
 
 class Typo3Version
 {
-    protected const VERSION = '10.4.28-dev';
+    protected const VERSION = '10.4.28';
     protected const BRANCH = '10.4';
 
     /**
diff --git a/typo3/sysext/dashboard/composer.json b/typo3/sysext/dashboard/composer.json
index 34910b9fa76bed99ab37a9b839737410cccb084a..5ebd42fbf1f7d03ba17c67c5a4451ef8d8fb8a31 100644
--- a/typo3/sysext/dashboard/composer.json
+++ b/typo3/sysext/dashboard/composer.json
@@ -19,11 +19,11 @@
 		"sort-packages": true
 	},
 	"require": {
-		"typo3/cms-core": "10.4.*@dev",
-		"typo3/cms-frontend": "10.4.*@dev",
-		"typo3/cms-backend": "10.4.*@dev",
-		"typo3/cms-fluid": "10.4.*@dev",
-		"typo3/cms-extbase": "10.4.*@dev"
+		"typo3/cms-core": "10.4.28",
+		"typo3/cms-frontend": "10.4.28",
+		"typo3/cms-backend": "10.4.28",
+		"typo3/cms-fluid": "10.4.28",
+		"typo3/cms-extbase": "10.4.28"
 	},
 	"conflict": {
 		"typo3/cms": "*"
diff --git a/typo3/sysext/extbase/composer.json b/typo3/sysext/extbase/composer.json
index c4a57d0bbaa855ee460aa5c5fcce626f80a5eb36..a34ebadf4c6c8981d17c7259812fb3222a0fb99a 100644
--- a/typo3/sysext/extbase/composer.json
+++ b/typo3/sysext/extbase/composer.json
@@ -24,7 +24,7 @@
 		"symfony/dependency-injection": "^4.4 || ^5.0",
 		"symfony/property-access": "^4.4 || ^5.0",
 		"symfony/property-info": "^4.4 || ^5.0",
-		"typo3/cms-core": "10.4.*@dev"
+		"typo3/cms-core": "10.4.28"
 	},
 	"suggest": {
 		"typo3/cms-scheduler": "Additional scheduler tasks"
diff --git a/typo3/sysext/extensionmanager/composer.json b/typo3/sysext/extensionmanager/composer.json
index bc0c60668a4938a05c53c0bbf9ec898f14c997da..0836bb23efcbc83a76e0ceebe084799478990ad5 100644
--- a/typo3/sysext/extensionmanager/composer.json
+++ b/typo3/sysext/extensionmanager/composer.json
@@ -20,7 +20,7 @@
 	},
 	"require": {
 		"ext-libxml": "*",
-		"typo3/cms-core": "10.4.*@dev"
+		"typo3/cms-core": "10.4.28"
 	},
 	"conflict": {
 		"typo3/cms": "*"
diff --git a/typo3/sysext/felogin/composer.json b/typo3/sysext/felogin/composer.json
index a84747bd9628920ea80a94451015bd9afe3ade72..a733b650d35f687ff438163cc50df5910c4f4897 100644
--- a/typo3/sysext/felogin/composer.json
+++ b/typo3/sysext/felogin/composer.json
@@ -19,7 +19,7 @@
 		"sort-packages": true
 	},
 	"require": {
-		"typo3/cms-core": "10.4.*@dev"
+		"typo3/cms-core": "10.4.28"
 	},
 	"conflict": {
 		"typo3/cms": "*"
diff --git a/typo3/sysext/filelist/composer.json b/typo3/sysext/filelist/composer.json
index d2e9fcc9276dc4a015184a9007932e9253de9a8b..b9587d469248e5e2de7dec9d5208a401f59aeb7f 100644
--- a/typo3/sysext/filelist/composer.json
+++ b/typo3/sysext/filelist/composer.json
@@ -19,7 +19,7 @@
 		"sort-packages": true
 	},
 	"require": {
-		"typo3/cms-core": "10.4.*@dev"
+		"typo3/cms-core": "10.4.28"
 	},
 	"conflict": {
 		"typo3/cms": "*"
diff --git a/typo3/sysext/filemetadata/composer.json b/typo3/sysext/filemetadata/composer.json
index d16d255b88ecc477ed7c655c668b038471564014..c6471c79cff0de32c999ee05954109d449fb5ef3 100644
--- a/typo3/sysext/filemetadata/composer.json
+++ b/typo3/sysext/filemetadata/composer.json
@@ -19,7 +19,7 @@
 		"sort-packages": true
 	},
 	"require": {
-		"typo3/cms-core": "10.4.*@dev"
+		"typo3/cms-core": "10.4.28"
 	},
 	"conflict": {
 		"typo3/cms": "*"
diff --git a/typo3/sysext/fluid/composer.json b/typo3/sysext/fluid/composer.json
index aac5609c03b9197dd3abf8bb7d882b0f14e9e1b0..89dfff8c0f365a55b3827d886927202aa7e26bdf 100644
--- a/typo3/sysext/fluid/composer.json
+++ b/typo3/sysext/fluid/composer.json
@@ -20,8 +20,8 @@
 	},
 	"require": {
 		"symfony/dependency-injection": "^4.4 || ^5.0",
-		"typo3/cms-core": "10.4.*@dev",
-		"typo3/cms-extbase": "10.4.*@dev",
+		"typo3/cms-core": "10.4.28",
+		"typo3/cms-extbase": "10.4.28",
 		"typo3fluid/fluid": "^2.6.10"
 	},
 	"conflict": {
diff --git a/typo3/sysext/fluid_styled_content/composer.json b/typo3/sysext/fluid_styled_content/composer.json
index fa79d12fd94fc07ecca1fd15336361b640d3291a..bc4fc8c94628acab798a22230bf5f5a06deb1f8b 100644
--- a/typo3/sysext/fluid_styled_content/composer.json
+++ b/typo3/sysext/fluid_styled_content/composer.json
@@ -19,9 +19,9 @@
 		"sort-packages": true
 	},
 	"require": {
-		"typo3/cms-core": "10.4.*@dev",
-		"typo3/cms-fluid": "10.4.*@dev",
-		"typo3/cms-frontend": "10.4.*@dev"
+		"typo3/cms-core": "10.4.28",
+		"typo3/cms-fluid": "10.4.28",
+		"typo3/cms-frontend": "10.4.28"
 	},
 	"conflict": {
 		"typo3/cms": "*"
diff --git a/typo3/sysext/form/composer.json b/typo3/sysext/form/composer.json
index 2998ce64a8856b213ec4de790e766b293050e632..53d5316a4dd9d5f52425a7479b27e627740f8404 100644
--- a/typo3/sysext/form/composer.json
+++ b/typo3/sysext/form/composer.json
@@ -21,7 +21,7 @@
 	"require": {
 		"psr/http-message": "^1.0",
 		"symfony/expression-language": "^4.4 || ^5.0",
-		"typo3/cms-core": "10.4.*@dev"
+		"typo3/cms-core": "10.4.28"
 	},
 	"suggest": {
 		"typo3/cms-filelist": "Listing of files in the directory",
diff --git a/typo3/sysext/frontend/composer.json b/typo3/sysext/frontend/composer.json
index 3ecb5067e14cc7f0053476636ed3118bfd58488e..e48d7b5b98281f9981099924f7813dac2da4af1b 100644
--- a/typo3/sysext/frontend/composer.json
+++ b/typo3/sysext/frontend/composer.json
@@ -21,7 +21,7 @@
 	"require": {
 		"ext-libxml": "*",
 		"symfony/polyfill-mbstring": "^1.16",
-		"typo3/cms-core": "10.4.*@dev"
+		"typo3/cms-core": "10.4.28"
 	},
 	"conflict": {
 		"typo3/cms": "*"
diff --git a/typo3/sysext/impexp/composer.json b/typo3/sysext/impexp/composer.json
index 1ccca02e41a290db3562114e8d8f1c5ff9ac2877..8aefec61fa354b4d9130ccae39ae33c5201f6d65 100644
--- a/typo3/sysext/impexp/composer.json
+++ b/typo3/sysext/impexp/composer.json
@@ -19,7 +19,7 @@
 		"sort-packages": true
 	},
 	"require": {
-		"typo3/cms-core": "10.4.*@dev"
+		"typo3/cms-core": "10.4.28"
 	},
 	"conflict": {
 		"typo3/cms": "*"
diff --git a/typo3/sysext/indexed_search/composer.json b/typo3/sysext/indexed_search/composer.json
index 53a0fdc8fc9f76fce2cfc442526c0e68ef8563ce..107f0da7bb193a87a391a5164ee3ed11e8d0fc3a 100644
--- a/typo3/sysext/indexed_search/composer.json
+++ b/typo3/sysext/indexed_search/composer.json
@@ -19,7 +19,7 @@
 		"sort-packages": true
 	},
 	"require": {
-		"typo3/cms-core": "10.4.*@dev"
+		"typo3/cms-core": "10.4.28"
 	},
 	"conflict": {
 		"typo3/cms": "*"
diff --git a/typo3/sysext/info/composer.json b/typo3/sysext/info/composer.json
index 1771fbfaf2f9c384057b5e03ff7c7dedecadf102..0387c1ae572c60664fdfa78068d347d0307954f8 100644
--- a/typo3/sysext/info/composer.json
+++ b/typo3/sysext/info/composer.json
@@ -19,7 +19,7 @@
 		"sort-packages": true
 	},
 	"require": {
-		"typo3/cms-core": "10.4.*@dev"
+		"typo3/cms-core": "10.4.28"
 	},
 	"conflict": {
 		"typo3/cms": "*"
diff --git a/typo3/sysext/install/composer.json b/typo3/sysext/install/composer.json
index 9255efc44d8c78db1a48f78ff21b3ecb841939e4..612aa99c979f7f2d581a8ada62fb5138844f4eb6 100644
--- a/typo3/sysext/install/composer.json
+++ b/typo3/sysext/install/composer.json
@@ -22,9 +22,9 @@
 		"doctrine/dbal": "~2.10.0 || ~2.11.2 || ~2.13.1",
 		"nikic/php-parser": "^4.10.4",
 		"symfony/finder": "^4.4 || ^5.0",
-		"typo3/cms-core": "10.4.*@dev",
-		"typo3/cms-extbase": "10.4.*@dev",
-		"typo3/cms-fluid": "10.4.*@dev"
+		"typo3/cms-core": "10.4.28",
+		"typo3/cms-extbase": "10.4.28",
+		"typo3/cms-fluid": "10.4.28"
 	},
 	"conflict": {
 		"typo3/cms": "*"
diff --git a/typo3/sysext/linkvalidator/composer.json b/typo3/sysext/linkvalidator/composer.json
index 810f83da8bef3df740258db3353e4011055ce607..e3d53960a135f15b44446d99daa6be6adec1c12c 100644
--- a/typo3/sysext/linkvalidator/composer.json
+++ b/typo3/sysext/linkvalidator/composer.json
@@ -19,8 +19,8 @@
 		"sort-packages": true
 	},
 	"require": {
-		"typo3/cms-core": "10.4.*@dev",
-		"typo3/cms-info": "10.4.*@dev"
+		"typo3/cms-core": "10.4.28",
+		"typo3/cms-info": "10.4.28"
 	},
 	"suggest": {
 		"typo3/cms-scheduler": "Regular checks of links"
diff --git a/typo3/sysext/lowlevel/composer.json b/typo3/sysext/lowlevel/composer.json
index 08dc63899464c25f182397bbbcd563c61a6c138b..a26987ded00749bfb1f31cb8fa6c7372e99382c4 100644
--- a/typo3/sysext/lowlevel/composer.json
+++ b/typo3/sysext/lowlevel/composer.json
@@ -19,7 +19,7 @@
 		"sort-packages": true
 	},
 	"require": {
-		"typo3/cms-core": "10.4.*@dev"
+		"typo3/cms-core": "10.4.28"
 	},
 	"conflict": {
 		"typo3/cms": "*"
diff --git a/typo3/sysext/opendocs/composer.json b/typo3/sysext/opendocs/composer.json
index 447e3844540445b3970f1cade87a3e734093ebdf..6a436681527a840f8301e74f034d2713724e54bd 100644
--- a/typo3/sysext/opendocs/composer.json
+++ b/typo3/sysext/opendocs/composer.json
@@ -19,7 +19,7 @@
 		"sort-packages": true
 	},
 	"require": {
-		"typo3/cms-core": "10.4.*@dev"
+		"typo3/cms-core": "10.4.28"
 	},
 	"conflict": {
 		"typo3/cms": "*"
diff --git a/typo3/sysext/recordlist/composer.json b/typo3/sysext/recordlist/composer.json
index 7cda3989431651cba94036ca3a3bbd7c026d1a48..e2e39d32710bece16721e740af063f4d7237d96c 100644
--- a/typo3/sysext/recordlist/composer.json
+++ b/typo3/sysext/recordlist/composer.json
@@ -19,7 +19,7 @@
 		"sort-packages": true
 	},
 	"require": {
-		"typo3/cms-core": "10.4.*@dev"
+		"typo3/cms-core": "10.4.28"
 	},
 	"conflict": {
 		"typo3/cms": "*"
diff --git a/typo3/sysext/recycler/composer.json b/typo3/sysext/recycler/composer.json
index 59d9a1362d3643fbd96c93cc310787c32b0390a8..726db25d5ef9024fbb4e82e07a9a1d424e7e0921 100644
--- a/typo3/sysext/recycler/composer.json
+++ b/typo3/sysext/recycler/composer.json
@@ -19,7 +19,7 @@
 		"sort-packages": true
 	},
 	"require": {
-		"typo3/cms-core": "10.4.*@dev"
+		"typo3/cms-core": "10.4.28"
 	},
 	"require-dev": {
 		"ext-libxml": "*"
diff --git a/typo3/sysext/redirects/composer.json b/typo3/sysext/redirects/composer.json
index d96f9cfadcd8b5a9158698094e164b6db35e1872..c46e4be45fca77a26df32f9239b7ddfa92569dc4 100644
--- a/typo3/sysext/redirects/composer.json
+++ b/typo3/sysext/redirects/composer.json
@@ -22,8 +22,8 @@
 		"doctrine/dbal": "~2.10.0 || ~2.11.2 || ~2.13.1",
 		"psr/http-message": "^1.0",
 		"psr/log": "^1.0",
-		"typo3/cms-backend": "10.4.*@dev",
-		"typo3/cms-core": "10.4.*@dev",
+		"typo3/cms-backend": "10.4.28",
+		"typo3/cms-core": "10.4.28",
 		"typo3fluid/fluid": "^2.6.10"
 	},
 	"conflict": {
diff --git a/typo3/sysext/reports/composer.json b/typo3/sysext/reports/composer.json
index 0aa198eb9ea81805239690aad4cd11ddd251e213..9b655d19c786e6cb518f9ee0b89c1ace77627b1d 100644
--- a/typo3/sysext/reports/composer.json
+++ b/typo3/sysext/reports/composer.json
@@ -19,7 +19,7 @@
 		"sort-packages": true
 	},
 	"require": {
-		"typo3/cms-core": "10.4.*@dev"
+		"typo3/cms-core": "10.4.28"
 	},
 	"suggest": {
 		"typo3/cms-scheduler": "Determine system's status and send it via email"
diff --git a/typo3/sysext/rte_ckeditor/composer.json b/typo3/sysext/rte_ckeditor/composer.json
index 91d3e0361c72904881b49d245b7ea3d58643ba25..fadec6b524160516019bac246a154bcaa4ea1362 100644
--- a/typo3/sysext/rte_ckeditor/composer.json
+++ b/typo3/sysext/rte_ckeditor/composer.json
@@ -19,7 +19,7 @@
 		"sort-packages": true
 	},
 	"require": {
-		"typo3/cms-core": "10.4.*@dev"
+		"typo3/cms-core": "10.4.28"
 	},
 	"conflict": {
 		"typo3/cms": "*"
diff --git a/typo3/sysext/scheduler/composer.json b/typo3/sysext/scheduler/composer.json
index dcc8ee1a71889c4b547481be3345e1a66e490141..221323de473fdd3ddbf2c15374f2cd744e2d4560 100644
--- a/typo3/sysext/scheduler/composer.json
+++ b/typo3/sysext/scheduler/composer.json
@@ -19,7 +19,7 @@
 		"sort-packages": true
 	},
 	"require": {
-		"typo3/cms-core": "10.4.*@dev"
+		"typo3/cms-core": "10.4.28"
 	},
 	"conflict": {
 		"typo3/cms": "*"
diff --git a/typo3/sysext/seo/composer.json b/typo3/sysext/seo/composer.json
index 43e2f5e697a6e9bf1f1eb097aed0263cebbd2d16..20377aec578d6df662d149ab678670239af77a40 100644
--- a/typo3/sysext/seo/composer.json
+++ b/typo3/sysext/seo/composer.json
@@ -19,9 +19,9 @@
 		"sort-packages": true
 	},
 	"require": {
-		"typo3/cms-core": "10.4.*@dev",
-		"typo3/cms-frontend": "10.4.*@dev",
-		"typo3/cms-extbase": "10.4.*@dev"
+		"typo3/cms-core": "10.4.28",
+		"typo3/cms-frontend": "10.4.28",
+		"typo3/cms-extbase": "10.4.28"
 	},
 	"conflict": {
 		"typo3/cms": "*"
diff --git a/typo3/sysext/setup/composer.json b/typo3/sysext/setup/composer.json
index c21e68c07199baca44affa753c93c94bd62e051b..30db3c804f9afddb91e8df1a0b1df3e1c25016d9 100644
--- a/typo3/sysext/setup/composer.json
+++ b/typo3/sysext/setup/composer.json
@@ -19,7 +19,7 @@
 		"sort-packages": true
 	},
 	"require": {
-		"typo3/cms-core": "10.4.*@dev"
+		"typo3/cms-core": "10.4.28"
 	},
 	"conflict": {
 		"typo3/cms": "*"
diff --git a/typo3/sysext/sys_note/composer.json b/typo3/sysext/sys_note/composer.json
index 2b06718b87b59e15d30a381eca589c349dfdc9d6..0049f0722d8727df5f4b036836eaf8034dbf5059 100644
--- a/typo3/sysext/sys_note/composer.json
+++ b/typo3/sysext/sys_note/composer.json
@@ -19,7 +19,7 @@
 		"sort-packages": true
 	},
 	"require": {
-		"typo3/cms-core": "10.4.*@dev"
+		"typo3/cms-core": "10.4.28"
 	},
 	"conflict": {
 		"typo3/cms": "*"
diff --git a/typo3/sysext/t3editor/composer.json b/typo3/sysext/t3editor/composer.json
index 7a5cc6f735024f6ac74bcd6f1d681e128e823cf2..63268c50bb6107b656d706f10d86d196988c5fb7 100644
--- a/typo3/sysext/t3editor/composer.json
+++ b/typo3/sysext/t3editor/composer.json
@@ -20,7 +20,7 @@
 	},
 	"require": {
 		"ext-libxml": "*",
-		"typo3/cms-core": "10.4.*@dev"
+		"typo3/cms-core": "10.4.28"
 	},
 	"conflict": {
 		"typo3/cms": "*"
diff --git a/typo3/sysext/tstemplate/composer.json b/typo3/sysext/tstemplate/composer.json
index 3ba5c61e50e090ffa3264ff19ec7da9bc18c4436..07a10bf31812d2da3f9da8190536e9e9e8a6fc5c 100644
--- a/typo3/sysext/tstemplate/composer.json
+++ b/typo3/sysext/tstemplate/composer.json
@@ -19,7 +19,7 @@
 		"sort-packages": true
 	},
 	"require": {
-		"typo3/cms-core": "10.4.*@dev"
+		"typo3/cms-core": "10.4.28"
 	},
 	"conflict": {
 		"typo3/cms": "*"
diff --git a/typo3/sysext/viewpage/composer.json b/typo3/sysext/viewpage/composer.json
index 7215810a98ffa8e2bd5e9292b3918991ed48e203..e3625a3dcf17344e58146bea5a8cab41f840f18e 100644
--- a/typo3/sysext/viewpage/composer.json
+++ b/typo3/sysext/viewpage/composer.json
@@ -19,7 +19,7 @@
 		"sort-packages": true
 	},
 	"require": {
-		"typo3/cms-core": "10.4.*@dev"
+		"typo3/cms-core": "10.4.28"
 	},
 	"conflict": {
 		"typo3/cms": "*"
diff --git a/typo3/sysext/workspaces/composer.json b/typo3/sysext/workspaces/composer.json
index c51824bbc2c19d60ae2eff41712f06e5cebd6b2a..ca7577837fa0ccb5cdca83a26c3f007f49d78712 100644
--- a/typo3/sysext/workspaces/composer.json
+++ b/typo3/sysext/workspaces/composer.json
@@ -19,7 +19,7 @@
 		"sort-packages": true
 	},
 	"require": {
-		"typo3/cms-core": "10.4.*@dev"
+		"typo3/cms-core": "10.4.28"
 	},
 	"conflict": {
 		"typo3/cms": "*"