# UNDF: UNDF-2026-000000929 --- a/BTCPayServer/Services/Apps/AppService.cs +++ b/BTCPayServer/Services/Apps/AppService.cs @@ -113,9 +113,12 @@ // fill up the gaps + // CWE-407: series.All(e => e.Date != date) inside foreach is O(D*S) where + // D = numberOfDays and S = series.Count. Build a HashSet for O(1) lookup. + var existingDates = new HashSet(series.Select(e => e.Date)); foreach (var i in Enumerable.Range(0, numberOfDays)) { var date = (DateTimeOffset.UtcNow - TimeSpan.FromDays(i)).Date; - if (series.All(e => e.Date != date)) + if (!existingDates.Contains(date)) { series.Add(new AppSalesStatsItem { Date = date, Label = date.ToString("MMM dd", CultureInfo.InvariantCulture) }); + existingDates.Add(date); } }