diff --git a/lib/modules/datasource/helm/index.ts b/lib/modules/datasource/helm/index.ts
index 2d719d5ebd3b3c5f37a4dae3040110b32b0ae585..81372fe73b154641f7215cd522ad578eb6769957 100644
--- a/lib/modules/datasource/helm/index.ts
+++ b/lib/modules/datasource/helm/index.ts
@@ -1,6 +1,5 @@
 import is from '@sindresorhus/is';
 import { load } from 'js-yaml';
-import { gt } from 'semver';
 import { logger } from '../../../logger';
 import { cache } from '../../../util/cache/package/decorator';
 import { ensureTrailingSlash } from '../../../util/url';
@@ -63,9 +62,17 @@ export class HelmDatasource extends Datasource {
       }
       const result: HelmRepositoryData = {};
       for (const [name, releases] of Object.entries(doc.entries)) {
-        const latestRelease = releases.sort((r0, r1) =>
-          gt(r0.version, r1.version) ? -1 : 1
-        )[0];
+        let latestRelease = releases[releases.length - 1];
+        const sortedReleases = releases
+          .filter(({ version }) => helmVersioning.api.isValid(version))
+          .sort((r0, r1) =>
+            helmVersioning.api.sortVersions(r0.version, r1.version)
+          );
+        const latestSortedRelease = sortedReleases[sortedReleases.length - 1];
+        if (latestSortedRelease) {
+          latestRelease = latestSortedRelease;
+        }
+
         const { sourceUrl, sourceDirectory } = findSourceUrl(latestRelease);
         result[name] = {
           homepage: latestRelease.home,