[ N S S | > research ]

Technical analysis NSS-GR-01TLP:CLEAR

Expanded by NSS294 names from NSS's own certificate records, 284 unlisted on 13 Nov; pattern on lists since July

A name generator behind 294 Aldi and Lidl look-alike .shop names: technical analysis

In nine hours from 17:15 UTC on 12 November 2026, NSS's certificate records logged 294 .shop names that put an Aldi or Lidl label in front of a generated shop name, such as lidldeals[.]kelmsfordgrocer[.]shop. 222 carry a Lidl label; the 2,043 names of this shape on public lists before then carried almost only Aldi labels. The 30 registrations NSS sampled were bought at one registrar between April and July 2026, eight within 10 seconds, and left unused until November. Two branded shop pages were live when NSS loaded them; three names from the 41-word grid served no page. On 13 November 284 of the 294 were on no list NSS holds; an update follows on 20 November.

Published
Last updated
Reading time
14 min
Marking
TLP:CLEAR
ShareDownload PDF

brand names logged in nine hours from 17:15 UTC, 12 Nov 2026
294
with a Lidl label; 4 of 2,043 before
222
registrations read: Apr to Jul 2026, one registrar
30 of 30
on no list NSS holds, 13 Nov 2026, 15:27 UTC
284 of 294
The 294 names by their brand label
  • lidldeals109
  • lidlmart98
  • aldideals32
  • aldishop18
  • lidl15
  • aldimart14
  • aldi, aldius, aldi-us8

The left-most part of each name. One name per registered .shop name.

Key findings

  1. Between 17:15 UTC on 12 November and 02:10 UTC on 13 November 2026, NSS's certificate records logged 294 names of one shape: an Aldi or Lidl label, then an invented shop name on .shop, such as lidldeals[.]kelmsfordgrocer[.]shop. Search DNS, web gateway and certificate logs for names matching ^(aldi|lidl)[a-z-]*\.[a-z0-9-]+\.shop$ and treat a hit as a look-alike of the brand.
  2. The shop names are generated. 255 of the 294 end in one of five shop words: grocer, market, mart, pantry or basket. 41 invented words, such as fenbrook, glenwillow and kelmsford, appear with all five, which makes 205 names. A second set of five words (aisle, corner, shelf, store, depot) appears on 31 names.
  3. The brand label changed. Before 12 November, public lists that NSS reads carried 2,043 names of this shape, and 4 of them had a Lidl label. Of the 294 names logged in nine hours from 17:15 UTC on 12 November 2026, 222 have one: lidldeals, lidlmart or lidl.
  4. The names were bought months before use. All 30 registrations in NSS's sample are at one registrar and date from 6 April to 9 July 2026, 125 to 220 days before the names' certificates. Eight were bought within 77 seconds on 22 May and eight within 10 seconds on 26 May. In the names NSS read, names bought together carry the same brand label: every 22 May name carries lidldeals and every 26 May name lidlmart.
  5. Every name has a certificate of its own. Each of the 294 first appeared in NSS's certificate records under its brand name, never as the bare registered name, a www name or a wildcard. That is why the brand label shows in public certificate logs, and why watching those logs for the two brand words finds this set.
  6. Two names served shop pages when NSS loaded them on 13 November. lidl[.]orvystore[.]shop showed the Lidl logo, a photo of a Lidl store, kitchen appliances in US dollars and a cart. aldi[.]vineyardmart[.]shop showed the Aldi logo and slogan, power tools and garden machines in US dollars at a fraction of their usual price, an account sign-up and a cart. Asked as a search crawler, the same name sent the visit on to google[.]com, so a crawler-based check sees Google, not the shop. Three names from the 41-word grid did not serve a page: the delivery network refused the secure connection or showed its own error page.
  7. On 13 November 2026, 284 of the 294 hosts were on no list NSS holds (checked at 15:27 UTC and again at 19:26 UTC); 10 were listed. The pattern itself is not new: public lists have carried 2,062 registered names of this shape since 25 July 2026. NSS adds the 294 from its own records, the way the names are built, the purchase runs, the two pages and a search pattern.
Figure in three parts. One: a name is a brand label, an invented word and a shop word, for example lidldeals[.]kelmsfordgrocer[.]shop; a grid of 41 invented words by the five shop words grocer, market, mart, pantry and basket makes 205 names, coloured by brand label, and 40 of the 41 words carry one label on all five. Two: public lists before 12 November carried 2,043 names of this shape, 2,039 with an Aldi label and 4 with a Lidl label; NSS's records of 12 November hold 294, 222 with a Lidl label and 72 with an Aldi label. Three: the 30 registration records NSS read by purchase day, April to July 2026, with eight names bought within 77 seconds on 22 May and eight within 10 seconds on 26 May, then 125 to 220 days unused until 294 certificates in nine hours on 12 November
How the names are built and bought. The grid and the label counts are from NSS's certificate records of 12 November 2026 and the lists NSS reads; the purchase days are the 30 public registration records NSS read on 13 November. Times are UTC.
NSS capture of lidl[.]orvystore[.]shop in a desktop and a phone view: a shop page with the Lidl logo, a banner offering home delivery within the UK, a photo of a Lidl store opening, a Trusted Store badge, and best sellers such as outdoor kitchen fittings and a grill priced from 49 to 61 US dollars with struck-through higher prices and Quick view buttons
What a visitor saw: NSS's stored capture of lidl[.]orvystore[.]shop, 13 November 2026, 15:40 UTC. The page's phone number and contact address are covered and the faces in its store photo are blurred; cuts in the desktop view are marked. Product pictures that had not loaded in the desktop view are shown as captured.
NSS capture of aldi[.]vineyardmart[.]shop in a desktop and a phone view: the Aldi logo, the slogan ALDI Good for everyone, power tools and garden machines priced from 50 to 175 US dollars, My Account and Cart links, and a footer with a newsletter sign-up field left empty
NSS's stored capture of aldi[.]vineyardmart[.]shop, 13 November 2026, 15:37 UTC: the Aldi logo and slogan, power tools and garden machines in US dollars, an account link, a newsletter field (empty, as captured) and a cart. Cuts in the desktop view are marked.

How an analyst finds this with NSS

The same trail, in the order a defender would follow it, on NSS's own screens on 13 November 2026.

  1. Step 1. Start from one name. Typed into Investigate, lidl[.]orvystore[.]shop reads Suspicious 55/100: the name carries Lidl's name without being one of Lidl's domains, and its page is a shop selling under Lidl's identity.

    NSS Investigate casefile for lidl[.]orvystore[.]shop: Suspicious, several risk signals but no confirmation yet, risk score 55 of 100; below it the finding: this name carries Lidl's name but is not one of Lidl's own domains, and its desktop view is a shop selling under Lidl's identity
    NSS Investigate, 13 November 2026. The finding is shown to its first sentence.
  2. Step 2. Open the page capture in the same casefile: a store dressed as Lidl, prices in US dollars, no password field, and the same page for a desktop, a phone and a crawler.

    The page capture panel inside the lidl[.]orvystore[.]shop casefile: no password field on the page, three outside hosts, the same page for desktop, phone and crawler, a certificate issued within seven days, page title AIDL, captured 13 November 2026 15:40 UTC, with the desktop and phone screenshots of the Lidl-branded shop
    NSS's capture of the page, 13 November 2026, 15:40 UTC. Rows that give the hosting and the page's address are left out, the page's contact details are covered and faces in the store photo are blurred.
  3. Step 3. Follow a second store of the same shape. The capture of aldi[.]vineyardmart[.]shop lists the hosts its page loaded and marks one as known bad, aldi[.]nelvostore[.]shop; one click opens that name's casefile, High risk.

    Two steps in NSS. One: the Aldi page's capture lists seven outside hosts it loaded, one known to NSS as bad: aldi[.]nelvostore[.]shop, outlined. Two: one click opens the casefile for aldi[.]nelvostore[.]shop in a new tab of the same case, reading High risk
    The outline was added for this figure.
  4. Step 4. Chain two live checks on that name: its registration record, then its certificate. The certificate names that one host only and was issued on 10 November 2026.

    NSS tool chain on aldi[.]nelvostore[.]shop: a live registration record lookup, then a live certificate read, both OK; the result is one certificate for aldi[.]nelvostore[.]shop alone, issued 10 November 2026
    NSS tool chain in the casefile, 13 November 2026. The goal box and the list of tools are left out.
  5. Step 5. Widen to the family. From one generator name, lidldeals[.]kelmsfordgrocer[.]shop, the family finder groups 762 registered names of the same shape and shows when they were bought: 75 names in 99 seconds on 22 May 2026 and 84 in 138 seconds on 26 May.

    NSS family finder for lidldeals[.]kelmsfordgrocer[.]shop: 762 registered names, first seen 25 October 2026, 513 listed and 249 unlisted; below it the purchase timeline from April to July 2026 with two tall bars of names bought within seconds on 22 and 26 May and two short ones on 4 and 9 July
    NSS family finder, 13 November 2026 at 19:05 UTC, with registration records read for about 200 of the 762 names; the 30 records in this paper's sample are among them, inside the same runs. Its first-seen date is the first record in NSS's own data, which starts in late October; public lists carried names of this shape from 25 July. Its counts grow as more records are read; the table "Which names each number counts" says how they relate to the 294. The view's batch labels are left out of the timeline.
  6. Step 6. Act on the whole family: export its names as CSV or JSON for blocking, and put the names that matter on watch from their casefiles. The family finder, the export and watch are NSS Full features.

    The member list of the family in NSS, with its CSV and JSON export buttons
    NSS family finder, 13 November 2026.

Automate it with the NSS API

Every NSS check is also a JSON answer, so this paper's list can be re-checked by a script. The public check takes one name or address and returns its band, its host type, its public listing state and the time of the reading; it allows 3 lookups a day from one address.

A Full account adds API keys, each with its own daily allowance, sent only as an Authorization: Bearer header and never in the address; the keyed address is in the Station's Docs. Over a limit the API answers 429 with Retry-After.

The public check from a shell

NAME=$(curl -s https://nsshq.com/research/files/nss-gr-01.json \
  | python3 -c 'import json, sys; print(json.load(sys.stdin)["indicators"][0]["value"])')
curl -s "https://nsshq.com/api/v1/check?value=$NAME"

The name is read from the paper's indicator file, so no indicator is typed into the command.

The answer

{
  "value": "lidl.orvystore[.]shop",
  "type": "domain",
  "found": true,
  "view": "public",
  "band": "Suspicious",
  "band_is_host_class": false,
  "known_good": false,
  "host_class": {
    "class": "platform",
    "label": "Shared platform",
    "sentence": "Shared platform (...). Tenants differ per name, so what other names on it do says nothing about this one; judge the specific name, and do not block the address, which would block unrelated sites.",
    "as_of": "2026-11-13T17:36:47Z"
  },
  "names": null,
  "reports": 0,
  "public_listing": { ... },
  "as_of": "2026-11-13T18:00:26Z"
}

The real answer of 13 November 2026, 18:00 UTC, shortened: the value is defanged, the host-type sentence cut and the listing block left out (the public view had not yet run its listing check for this name; the paper's own check is in its findings).

Re-check the whole list from your own tooling

#!/usr/bin/env python3
"""Check every name in an NSS Research indicator file and report the names whose NSS band changed since the last run.
Run it from cron or a SIEM job. Standard library only.
  NSS_LIST     the paper's indicator file, a URL or a local path (JSON or CSV)
  NSS_API_URL  the check address (default: the public check, 3 lookups a day per address)
  NSS_API_KEY  a Full account's API key, sent as "Authorization: Bearer"; use it with the keyed address in your Station's Docs
  NSS_STATE    where the last bands are kept between runs (default nss_watch_state.json)
Exit code 0: nothing changed; 1: at least one band changed; 2: stopped by a limit or an error."""
import csv, io, json, os, sys, time, urllib.error, urllib.parse, urllib.request

LIST = os.environ.get("NSS_LIST", "https://nsshq.com/research/files/nss-gr-01.json")
API = os.environ.get("NSS_API_URL", "https://nsshq.com/api/v1/check")
KEY = os.environ.get("NSS_API_KEY", "")
STATE = os.environ.get("NSS_STATE", "nss_watch_state.json")
GAP_S = float(os.environ.get("NSS_GAP_S", "11"))          # the public check allows 6 a minute per address


def fetch(url, headers=None):
    req = urllib.request.Request(url, headers={"User-Agent": "nss-watch-list/1", **(headers or {})})
    with urllib.request.urlopen(req, timeout=90) as r:
        return r.read().decode("utf-8"), r.headers


def names():
    text = fetch(LIST)[0] if LIST.startswith("https://") else open(LIST, encoding="utf-8").read()
    rows = json.loads(text)["indicators"] if text.lstrip().startswith("{") else list(csv.DictReader(io.StringIO(text)))
    return [r.get("value") or r.get("indicator") for r in rows if r.get("type") == "domain"]


def check(value):
    auth = {"Authorization": "Bearer " + KEY} if KEY else {}
    for _ in range(3):
        try:
            body, headers = fetch(API + "?" + urllib.parse.urlencode({"value": value}), auth)
            a = json.loads(body)
            return a.get("band") or a.get("verdict"), headers.get("NSS-Quota-Remaining")
        except urllib.error.HTTPError as e:
            if e.code != 429:
                raise
            if b'"cap"' in e.read():                         # the day's allowance, not a per-minute limit
                raise SystemExit("daily allowance used up; run again after 00:00 UTC")
            time.sleep(int(e.headers.get("Retry-After") or 60))
    raise SystemExit("still rate limited after three tries")


def main():
    old = json.load(open(STATE)) if os.path.exists(STATE) else {}
    new, changed = dict(old), []
    try:
        for value in names():
            band, left = check(value)
            if old.get(value) not in (None, band):
                changed.append({"value": value, "was": old[value], "now": band})
            new[value] = band
            if left == "0":
                break
            time.sleep(GAP_S)
    except SystemExit as stop:
        print(stop, file=sys.stderr)
        json.dump(new, open(STATE, "w"), indent=1)
        sys.exit(2)
    json.dump(new, open(STATE, "w"), indent=1)
    for c in changed:
        print(json.dumps(c))                                 # one JSON line per change: easy to ship to a SIEM
    sys.exit(1 if changed else 0)


if __name__ == "__main__":
    main()

Run it from cron: it reads the paper's JSON or CSV file, checks each name, keeps the last band of every name in a state file, and prints one JSON line for each name whose band changed, ready for a SIEM. With no key it stays inside the public allowance and stops when the day's checks are used.

The STIX 2.1 file for automated ingestion

BASE=https://raw.githubusercontent.com/nsshq/nssresearch/main/NSS-GR-01-aldi-lidl-lookalike-shop-names
curl -sO "$BASE/stix2.1-bundle.json"     # STIX 2.1 bundle: one report, its indicators, TLP:CLEAR

The same indicators in NSS's public indicator repository, under the CC BY 4.0 licence; the folder also holds the list in other formats.

The developers section of nsshq.com: every check is JSON, the fields each answer carries, a sample request with a Copy button, and the tools the answers fit into
The developers page on nsshq.com, 13 November 2026.

Timeline

  1. 6 Apr 2026
    The earliest registration among the names NSS read (aldius[.]yelqon[.]shop).
  2. 22 Apr, 02:22 UTC
    Four names are bought within 39 seconds, three of them ending in mart; all four carry the aldi label in November.
  3. 22 May, 19:15 to 19:16 UTC
    Eight names are bought within 77 seconds. All eight carry the lidldeals label in November.
  4. 26 May, 21:19 to 21:20 UTC
    Eight names are bought within 10 seconds. All eight carry the lidlmart label in November.
  5. 8 Jun to 9 Jul
    Further names are bought: invented store names on 8 Jun (lidl label), place names on 4 Jul (aldideals and aldimart) and 9 Jul (aldishop).
  6. 25 Jul
    The first name of this shape reaches NSS from public lists. By 11 Nov the lists carry 2,043 names of the shape, 4 with a Lidl label.
  7. 12 Nov, 17:15 UTC to 13 Nov, 02:10 UTC
    294 brand names appear in NSS's certificate records, one per registered name; 222 carry a Lidl label.
  8. 13 Nov, 15:27 UTC
    NSS checks every name against the lists it holds: 284 of 294 are on none.
  9. 13 Nov, 15:32 to 15:40 UTC
    NSS loads five of the names. Two serve shop pages with the Lidl or Aldi logo; three serve no page.

What NSS recorded

NSS keeps its own record of names as they appear in public certificate logs. Between 17:15 UTC on 12 November and 02:10 UTC on 13 November 2026 that record gained 294 names with the same shape: a label made from the word aldi or lidl, then a registered name on .shop. Each registered name carries exactly one of these names in NSS's records, so 294 names means 294 registered names.

The shape was already known. Public lists that NSS reads have carried names like these since 25 July 2026, 2,062 registered names in all, almost all with Aldi labels. What NSS adds here is the 12 November set, read from its own records, and the evidence for how it was put together.

Across everything NSS holds, the generator is larger than one day. On 13 November 2026 NSS searched all its records for names built exactly this way: an Aldi or Lidl label over an invented word ending in grocer, market, mart, pantry, basket, store or hub. It found 962 registered names. Public lists carried 699 of them. NSS held 269 in its own records, and 263 of those were on no list NSS holds. The narrower shape is why 962 is below the 2,062 above, which counts any name with an Aldi or Lidl label in front of a .shop name.

Which names each number counts

This paper counts names of two shapes. The broad shape is any name with an Aldi or Lidl label in front of a .shop name, ^(aldi|lidl)[a-z0-9-]*\.[a-z0-9-]+\.shop$. The generator shape is narrower: the label over an invented word ending in grocer, market, mart, pantry, basket, store or hub. NSS's family finder uses the five shop words only.

NumberShapeWhat it counts
294broadNames in NSS's certificate records in nine hours from 17:15 UTC on 12 November 2026, one per registered name
2,043broadNames on public lists before 12 November 2026: 2,039 with an Aldi label, 4 with a Lidl label
2,062broadRegistered names on public lists from 25 July to 12 November 2026
962generatorRegistered names across every record NSS holds, with lists read on 13 November 2026 at about 15:30 UTC
699generatorOf the 962, those on public lists
269generatorOf the 962, those NSS holds in its own records
263generatorOf the 269, those on no list NSS holds
762five shop wordsRegistered names of the five-shop-word shape that NSS's family finder groups across all its records on 13 November 2026 at 19:05 UTC: 513 on lists, 249 not. It counts names from every month, so it is larger than the 294 of one evening
261indicatorsThe names in the indicator list: those of the 294, and the image host, that NSS rated Suspicious or higher on 13 November 2026

How the names are built

Each name has three parts: a brand label, an invented word and a shop word.

PartWhat it isCounts in the 294
Brand labelaldi or lidl, often with deals, mart or shoplidldeals 109, lidlmart 98, aldideals 32, aldishop 18, lidl 15, aldimart 14, aldi 4, aldius 3, aldi-us 1
Invented worda made-up place name, such as fenbrook, glenwillow, kelmsford, ambercross41 words appear with all five shop words
Shop wordgrocer, market, mart, pantry, basket255 names
Second shop setaisle, corner, shelf, store, depot31 names

So one invented word becomes five registered names, for example kelmsfordgrocer[.]shop, kelmsfordmarket[.]shop, kelmsfordmart[.]shop, kelmsfordpantry[.]shop and kelmsfordbasket[.]shop, and each of them carries one brand name such as lidldeals[.]kelmsfordgrocer[.]shop. Of the 41 words that appear with all five shop words, 40 carry one brand label on all five names. Eight names follow neither shop set; they are short invented words or two-word names such as weeklysaver.

The label moved from Aldi to Lidl

Before 12 November the lists NSS reads carried 2,043 names of this shape. 2,039 had an Aldi label and 4 had a Lidl label. Of the 294 names that appeared on 12 November, 222 carry a Lidl label and 72 an Aldi label. Aldi and Lidl labels appeared side by side through the day, so this is not a switch at one moment; it is a different mix from what the lists had carried until then.

Bought months before use

NSS read the public registration record of a sample of 30 of the names on 13 November, and of 11 more the same day. All 30 in the sample are at one registrar (the 11 others too), use the registrar's default name servers, and were registered between 6 April and 9 July 2026: 125 to 220 days before their certificates were logged. None was new when it came into use.

BoughtNames in the sampleBrand label in November
6 and 22 Apr2aldius, aldi
22 May, 19:15 to 19:16 UTC8, within 77 secondslidldeals
26 May, 21:18 to 21:20 UTC10, eight of them within 10 secondslidlmart
8 Jun2lidl
24 Jun1aldi-us
4 Jul5aldideals, aldimart
9 Jul2aldishop

Two of these are purchase runs: eight names bought one after another, all within 77 seconds on 22 May and all within 10 seconds on 26 May. In the names NSS read, names bought together carry the same label: every 22 May name carries lidldeals, every 26 May name lidlmart, and on 4 July the names bought at 10:22 to 10:25 UTC carry aldideals while those bought at 10:36 to 10:37 UTC carry aldimart. That suggests the names were bought in groups planned for one label from the start. The registrar serves many unrelated customers and its default name servers are shared, so neither is treated as a link.

A certificate for every name

Each of the 294 first appeared in NSS's certificate records under its brand name. None appeared first as the bare registered name, a www name or a wildcard covering everything under it. The two certificates NSS read when it loaded pages on 13 November each named one host only. A certificate per name puts the brand label into public certificate logs, which is how the set can be watched.

What the pages showed

NSS loaded five of the names on 13 November between 15:32 and 15:40 UTC through its capture service. It submitted no form and downloaded no file.

NameWhat NSS saw
lidl[.]orvystore[.]shopA shop page with the Lidl logo, a photo of a Lidl store, a banner offering home delivery within the UK, kitchen appliances priced in US dollars, a "Trusted Store" badge and a cart. Not listed on 13 Nov.
aldi[.]vineyardmart[.]shopA shop page with the Aldi logo and the slogan "ALDI - Good for everyone", power tools and garden machines priced in US dollars at a fraction of their usual price, an account sign-up, a newsletter box and a cart. Asked as a search crawler, the same name sent the visit on to google[.]com, so a crawler-based check sees Google, not the shop. Listed from 10 Nov.
lidlmart[.]ambercrossgrocer[.]shopNo page: the delivery network refused the secure connection.
lidlmart[.]driftvalegrocer[.]shopNo page: the delivery network refused the secure connection.
lidldeals[.]fenbrookgrocer[.]shopNo page: the delivery network refused the secure connection, and over plain web showed its own error page saying it could not find the site's server.

Both shop pages run on the same hosted shop software, with different themes and different shop numbers; that software is used by many unrelated shops, so it is not a link. The Aldi page also loads its pictures from aldi[.]nelvostore[.]shop, a further name of the same shape. NSS did not open a checkout or payment page and holds no payment details.

The three grid names NSS loaded served nothing on 13 November. NSS does not know whether they are waiting for content, were refused by the delivery network, or are kept in reserve.

What ties the names and what does not

  • The naming pattern. The brand labels, the invented words and the two fixed sets of five shop words. This is what ties the 294 together and to the names the lists already carried.
  • The purchase runs. Eight names in 77 seconds and eight in 10 seconds at one registrar, months before use.
  • The certificate day. 294 brand names in one nine-hour window.

Not links: the registrar and its default name servers (shared by many customers), and the addresses. In NSS's records most of the names point to a shared address of a large content-delivery network; three of the names NSS read point to other addresses of the same network. No address is an indicator.

What a defender can look for

  • In DNS, web gateway and certificate logs, names matching ^(aldi|lidl)[a-z-]*\.[a-z0-9-]+\.shop$. The narrower form ^(aldi|lidl)[a-z-]*\.[a-z]+(grocer|market|mart|pantry|basket)\.shop$ matches the 255 names on the five shop words.
  • Block the registered name under each listed name (for example orvystore[.]shop for lidl[.]orvystore[.]shop). Blocking a registered name covers the brand name under it.
  • Watch certificate logs for the two brand words as the first label of a new .shop name. This set put its brand label there on purpose.
  • Shoppers and help desks: a shop with the Aldi or Lidl logo on a .shop address, prices far below normal and payment to an unknown site is not the grocer's own shop.
  • Do not block the delivery-network addresses. They serve many unrelated sites.
  • Never block the grocers' own domains. Aldi and Lidl are the brands being copied.

The NSS tools used

  • Investigate

    Read the public registration record, the current address and the host type of 30 of the names on 13 November and built a casefile for each.

  • Capture

    Loaded five of the names on 13 November through NSS's capture service: two shop pages with the Lidl or Aldi logo, three with no page. No form was submitted and nothing was downloaded.

Indicators

The first 25 of 261 indicators. Each is written defanged so it cannot be opened by accident. TLP:CLEAR. Use them in your own tools; no account needed.

IndicatorTypeNote
lidl[.]orvystore[.]shopDomainServed a shop page with the Lidl logo, US dollar prices and a cart when NSS loaded it on 13 Nov 2026; registered 8 Jun 2026; certificate logged 12 Nov 2026; on no list NSS holds on 13 Nov 2026
aldi[.]vineyardmart[.]shopDomainServed a shop page with the Aldi logo and slogan, US dollar prices and a cart when NSS loaded it on 13 Nov 2026; registered 22 Apr 2026; certificate logged 12 Nov 2026; on public lists from 10 Nov 2026
aldi[.]nelvostore[.]shopDomainImage host for the aldi[.]vineyardmart[.]shop shop page (the page loaded its pictures from here); same naming shape; not among the 294, whose certificates were logged in the nine-hour window; on public lists from 10 Nov 2026; High risk on 13 Nov 2026
aldius[.]yelqon[.]shopDomainBrand look-alike name; registered 6 Apr 2026; certificate logged 12 Nov 2026; on public lists from 15 Oct 2026
lidldeals[.]garlestongrocer[.]shopDomainBrand look-alike name; registered 22 May 2026 with seven other names in this list within 77 seconds; certificate logged 12 Nov 2026; on no list NSS holds on 13 Nov 2026
lidldeals[.]loxbridgemart[.]shopDomainBrand look-alike name; registered 22 May 2026 (same purchase run); certificate logged 13 Nov 2026 UTC; on no list NSS holds on 13 Nov 2026
lidldeals[.]avenshiremarket[.]shopDomainBrand look-alike name; registered 22 May 2026 (same purchase run); certificate logged 12 Nov 2026; on no list NSS holds on 13 Nov 2026
lidldeals[.]elvershammart[.]shopDomainBrand look-alike name; registered 22 May 2026 (same purchase run); certificate logged 12 Nov 2026; on no list NSS holds on 13 Nov 2026
lidldeals[.]daleswickgrocer[.]shopDomainBrand look-alike name; registered 22 May 2026 (same purchase run); certificate logged 12 Nov 2026; on no list NSS holds on 13 Nov 2026
lidldeals[.]carrmontpantry[.]shopDomainBrand look-alike name; registered 22 May 2026 (same purchase run); certificate logged 12 Nov 2026; on no list NSS holds on 13 Nov 2026
lidldeals[.]brecktonmart[.]shopDomainBrand look-alike name; registered 22 May 2026 (same purchase run); certificate logged 12 Nov 2026; on no list NSS holds on 13 Nov 2026
lidldeals[.]draymeremarket[.]shopDomainBrand look-alike name; registered 22 May 2026 (same purchase run); certificate logged 12 Nov 2026; on no list NSS holds on 13 Nov 2026
lidlmart[.]clovermerebasket[.]shopDomainBrand look-alike name; registered 26 May 2026; certificate logged 12 Nov 2026; on no list NSS holds on 13 Nov 2026
lidlmart[.]ironbrookpantry[.]shopDomainBrand look-alike name; registered 26 May 2026 with seven other names in this list within 10 seconds; certificate logged 12 Nov 2026; on no list NSS holds on 13 Nov 2026
lidlmart[.]jademerebasket[.]shopDomainBrand look-alike name; registered 26 May 2026 (same purchase run); certificate logged 12 Nov 2026; on no list NSS holds on 13 Nov 2026
lidlmart[.]kingsmeremarket[.]shopDomainBrand look-alike name; registered 26 May 2026 (same purchase run); certificate logged 13 Nov 2026 UTC; on no list NSS holds on 13 Nov 2026
lidlmart[.]junipermeadgrocer[.]shopDomainBrand look-alike name; registered 26 May 2026 (same purchase run); certificate logged 13 Nov 2026 UTC; on no list NSS holds on 13 Nov 2026
lidlmart[.]embervalepantry[.]shopDomainBrand look-alike name; registered 26 May 2026 (same purchase run); certificate logged 12 Nov 2026; on no list NSS holds on 13 Nov 2026
lidlmart[.]harborfieldmart[.]shopDomainBrand look-alike name; registered 26 May 2026 (same purchase run); certificate logged 13 Nov 2026 UTC; on no list NSS holds on 13 Nov 2026
lidlmart[.]glenwillowmarket[.]shopDomainBrand look-alike name; registered 26 May 2026 (same purchase run); certificate logged 12 Nov 2026; on no list NSS holds on 13 Nov 2026
lidlmart[.]ambercrossgrocer[.]shopDomainBrand look-alike name; registered 26 May 2026 (same purchase run); certificate logged 12 Nov 2026; refused a secure connection when NSS loaded it on 13 Nov 2026; on no list NSS holds on 13 Nov 2026
lidlmart[.]fallowbrookbasket[.]shopDomainBrand look-alike name; registered 26 May 2026; certificate logged 12 Nov 2026; on no list NSS holds on 13 Nov 2026
aldideals[.]yarrowfieldmart[.]shopDomainBrand look-alike name; registered 4 Jul 2026; certificate logged 12 Nov 2026; on no list NSS holds on 13 Nov 2026
aldideals[.]wheatbarrowbasket[.]shopDomainBrand look-alike name; registered 4 Jul 2026; certificate logged 12 Nov 2026; on no list NSS holds on 13 Nov 2026
aldishop[.]dawnoramarket[.]shopDomainBrand look-alike name; registered 9 Jul 2026; certificate logged 12 Nov 2026; on no list NSS holds on 13 Nov 2026
All 261 indicators:CSVJSONSTIXMore formats on GitHubNo sign-up.

How we know

What this rests on

  • The 294 names, their labels and the time each was first logged are from NSS's own certificate records, read in one stamped run on 13 November 2026 at 15:27 UTC.
  • The listing state of every name is from the lists NSS takes in, checked in the same run. The count of earlier names of the same shape is from the same lists.
  • The family-wide count (962 registered names: 699 listed, and 263 held by NSS and on no list) is from one search of every record NSS holds, with listings read on 13 November 2026 at about 15:30 UTC.
  • Registration dates and the registrar are the public registration records of a sample of 30 of the names and 11 more, read on 13 November 2026.
  • What the pages showed is from NSS's own page loads of five names on 13 November 2026 between 15:32 and 15:40 UTC.

What we cannot say

  • The pattern is on public lists since July 2026. NSS did not discover it; this paper describes the 294 names of 12 November and how they were made.
  • NSS loaded five names and saw two shop pages: aldi[.]vineyardmart[.]shop (shop word mart, not one of the 41 grid words) and lidl[.]orvystore[.]shop (second set). The three grid names it loaded served no page.
  • NSS saw no checkout, no payment and no victim.
  • NSS read 41 of 294 registration records. The dates and purchase runs describe the names read, not every name.
  • The naming pattern ties the names. It may be one operator, or one tool used by more than one; NSS cannot tell which.
  • The indicator list carries the 261 names that NSS rated Suspicious or higher on both Investigate and Scan on 13 November 2026: 260 of the 294 and the image host aldi[.]nelvostore[.]shop. The 34 that read Low risk, most of them on the second set of shop words, are left out.
  • Addresses are not in the indicator list. They belong to a content-delivery network that serves many unrelated sites.
  • The listing counts are as of 13 November 2026. An update with the 7-day listing result will follow on 20 November 2026.
  • This paper is not attributed to any named group.

Use and citation

This paper is marked TLP:CLEAR: it may be shared without restriction. Cite as:

Nexus Sentinel Station (NSS), "A name generator behind 294 Aldi and Lidl look-alike .shop names: technical analysis", NSS-GR-01, 13 Nov 2026. https://nsshq.com/research/aldi-lidl-lookalike-shop-names

See something wrong? [email protected]

NSS is not affiliated with Aldi or Lidl or with any registrar, network or service named or described in this paper. Aldi and Lidl are named because the names in this set copy their brands; they are the targets of the imitation, and nothing here says either company knew of or took part in the activity. Their own domains are not indicators. Product brands shown on the captured pages are named only because the pages display them.

New research by email

One plain email when NSS publishes a research paper, about one or two a month. You confirm by email first, and you can unsubscribe in one click.

Your address is used for these mails only, and the mails carry no tracking. Privacy