diff --git a/typo3/sysext/extensionmanager/Classes/Controller/ExtensionComposerStatusController.php b/typo3/sysext/extensionmanager/Classes/Controller/ExtensionComposerStatusController.php
index c9926b52dc7478c51b0c69bd68a7924da60d1b3e..be1b4aee1a72b5e93b3ffe99fde6b15961b92236 100644
--- a/typo3/sysext/extensionmanager/Classes/Controller/ExtensionComposerStatusController.php
+++ b/typo3/sysext/extensionmanager/Classes/Controller/ExtensionComposerStatusController.php
@@ -18,6 +18,7 @@ declare(strict_types=1);
 namespace TYPO3\CMS\Extensionmanager\Controller;
 
 use Psr\Http\Message\ResponseInterface;
+use TYPO3\CMS\Backend\Template\ModuleTemplate;
 use TYPO3\CMS\Core\Core\Environment;
 use TYPO3\CMS\Core\Imaging\Icon;
 use TYPO3\CMS\Core\Imaging\IconFactory;
@@ -42,6 +43,7 @@ class ExtensionComposerStatusController extends AbstractModuleController
     protected PageRenderer $pageRenderer;
     protected IconFactory $iconFactory;
     protected ListUtility $listUtility;
+    protected string $returnUrl = '';
 
     public function __construct(
         ComposerDeficitDetector $composerDeficitDetector,
@@ -57,10 +59,24 @@ class ExtensionComposerStatusController extends AbstractModuleController
         $this->listUtility = $listUtility;
     }
 
+    protected function initializeAction(): void
+    {
+        parent::initializeAction();
+        // The returnUrl, given in the request contains the actual destination, e.g. reports module.
+        // Since we need to forward it in all actions, we define it as class variable here.
+        if ($this->request->hasArgument('returnUrl')) {
+            $this->returnUrl = GeneralUtility::sanitizeLocalUrl(
+                (string)$this->request->getArgument('returnUrl')
+            );
+        }
+    }
+
     public function listAction(): ResponseInterface
     {
         $extensions = [];
         $basePackagePath = Environment::getExtensionsPath() . '/';
+        // Contains the return link to this action + the initial returnUrl, e.g. reports module
+        $detailLinkReturnUrl = $this->uriBuilder->reset()->uriFor('list', array_filter(['returnUrl' => $this->returnUrl]));
         foreach ($this->composerDeficitDetector->getExtensionsWithComposerDeficit() as $extensionKey => $deficit) {
             $extensionPath = $basePackagePath . $extensionKey . '/';
             $extensions[$extensionKey] = [
@@ -69,7 +85,7 @@ class ExtensionComposerStatusController extends AbstractModuleController
                 'icon' => $this->getExtensionIcon($extensionPath),
                 'detailLink' => $this->uriBuilder->reset()->uriFor('detail', [
                     'extensionKey' => $extensionKey,
-                    'returnUrl' => $this->uriBuilder->reset()->uriFor('list'),
+                    'returnUrl' => $detailLinkReturnUrl,
                 ])
             ];
         }
@@ -77,6 +93,7 @@ class ExtensionComposerStatusController extends AbstractModuleController
         $this->view->assign('extensions', $this->listUtility->enrichExtensionsWithEmConfInformation($extensions));
 
         $moduleTemplate = $this->initializeModuleTemplate($this->request);
+        $this->registerDocHeaderButtons($moduleTemplate);
         $moduleTemplate->setContent($this->view->render());
         return $this->htmlResponse($moduleTemplate->renderContent());
     }
@@ -98,16 +115,7 @@ class ExtensionComposerStatusController extends AbstractModuleController
         }
 
         $moduleTemplate = $this->initializeModuleTemplate($this->request);
-        $buttonBar = $moduleTemplate->getDocHeaderComponent()->getButtonBar();
-        $returnUrl = GeneralUtility::sanitizeLocalUrl((string)$this->request->getArgument('returnUrl'));
-        $buttonBar->addButton(
-            $buttonBar
-                ->makeLinkButton()
-                ->setHref($returnUrl)
-                ->setClasses('typo3-goBack')
-                ->setTitle($this->getLanguageService()->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.goBack'))
-                ->setIcon($this->iconFactory->getIcon('actions-view-go-back', Icon::SIZE_SMALL))
-        );
+        $this->registerDocHeaderButtons($moduleTemplate);
         $moduleTemplate->setContent($this->view->render());
         return $this->htmlResponse($moduleTemplate->renderContent());
     }
@@ -152,6 +160,23 @@ class ExtensionComposerStatusController extends AbstractModuleController
         return $icon ? PathUtility::getAbsoluteWebPath($extensionPath . $icon) : '';
     }
 
+    protected function registerDocHeaderButtons(ModuleTemplate $moduleTemplate): void
+    {
+        $buttonBar = $moduleTemplate->getDocHeaderComponent()->getButtonBar();
+
+        // Add "Go back" in case a return url is defined
+        if ($this->returnUrl !== '') {
+            $buttonBar->addButton(
+                $buttonBar
+                    ->makeLinkButton()
+                    ->setHref($this->returnUrl)
+                    ->setClasses('typo3-goBack')
+                    ->setTitle($this->getLanguageService()->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.goBack'))
+                    ->setIcon($this->iconFactory->getIcon('actions-view-go-back', Icon::SIZE_SMALL))
+            );
+        }
+    }
+
     protected function getLanguageService()
     {
         return $GLOBALS['LANG'];