diff --git a/lib/manager/composer/range.spec.ts b/lib/manager/composer/range.spec.ts
index 2f1d3621e0bbda58cb414f55a829557dc5bb7a2e..ad94f004fee6d384f0bc9fc3ae8ecec5492c3feb 100644
--- a/lib/manager/composer/range.spec.ts
+++ b/lib/manager/composer/range.spec.ts
@@ -41,4 +41,14 @@ describe('manager/composer/range', () => {
     const config: RangeConfig = { rangeStrategy: 'auto', depType: 'require' };
     expect(getRangeStrategy(config)).toBe('replace');
   });
+  it('defaults to widen for TYPO3 extensions', () => {
+    const config: RangeConfig = {
+      managerData: {
+        composerJsonType: 'typo3-cms-extension',
+      },
+      rangeStrategy: 'auto',
+      depType: 'require',
+    };
+    expect(getRangeStrategy(config)).toBe('widen');
+  });
 });
diff --git a/lib/manager/composer/range.ts b/lib/manager/composer/range.ts
index 0b9936cfdfc5b63830bd4862181b2ce55bb164e3..dbbca8c541fb30585ef70718991e09f1f18dafd5 100644
--- a/lib/manager/composer/range.ts
+++ b/lib/manager/composer/range.ts
@@ -42,7 +42,7 @@ export function getRangeStrategy(config: RangeConfig): RangeStrategy {
     logger.trace({ dependency: depName }, 'Pinning app require');
     return 'pin';
   }
-  if (isComplexRange) {
+  if (isComplexRange || ['typo3-cms-extension'].includes(composerJsonType)) {
     return 'widen';
   }
   return 'replace';