❌

Reading view

XCPE Botnet: Is Your Android TV Box Hacked? What to Do Now

Google and a group of security partners said on Nov. 2, 2026, that they had dismantled XCPE, a botnet hidden inside more than 1.3 million TV set-top boxes, most of them inexpensive Android TV boxes. According to Google’s Threat Intelligence Group, the device maker Videostrong Technology Co. built the backdoor into the boxes and sold access to criminals, who used owners’ home internet connections for ad fraud and residential proxy networks. The servers that controlled the botnet are down, but the backdoor is still on the boxes, and owners cannot remove it themselves.

Key points

  • The backdoor, called x.cpe, sits in the box’s firmware and reinstalls itself if you delete it.
  • Google attributes it “with high confidence” to Videostrong Technology Co.
  • Google says the takedown also cuts criminals off from at least 10 million other infected devices.
  • If your box is affected, disconnect it and plan to replace it. A factory reset may not remove the backdoor, which lives in protected firmware.

How the XCPE Backdoor Works

XCPE turned ordinary TV boxes into a botnet, a network of devices that criminals control remotely. According to Google’s report, it worked in three layers:

  1. A hidden system app. A small program named x.cpe (com.oemservice on some boxes) is preloaded in the firmware with system-level access. If a user uninstalls it, it reinstalls itself from a protected part of the firmware the next time the box restarts.
  2. A remote control channel. The backdoor checks in with the operators’ servers and waits for orders. Through it, the operators could install apps silently, run commands, capture the screen, and map the home network. Before installing anything, it switched off Google Play Protect’s app checks.
  3. Paid add-ons for criminals. Videostrong sold access to other criminal groups and loaded their programs onto the boxes. Most of these turned the box into a residential proxy or used it for bandwidth sharing, which rents out your home internet address so someone else’s traffic appears to come from your house. Others faked ad views or loaded other malware.

Google says it saw the operators take live screenshots, inject keystrokes, and copy account details, device information, app lists, and system logs from infected boxes. Google ties two of the add-on programs, Moyu and Bird, to the BadBox operation. The FBI warned consumers about that operation, known as BADBOX 2.0, in a June 2025 public service announcement.

Most infected devices were Android TV set-top boxes, but Google also found the backdoor on telehealth devices, karaoke machines, and digital signage. (For more background on this kind of threat, see our explainers on backdoor attacks and pre-installed malware on Android devices.)

Google says it used legal action to take down the botnet’s control servers and the control domains of more than a dozen malware families. It also banned Videostrong and any future subsidiaries or affiliates from making certified Android devices or supplying software to other certified vendors. Japan’s National Police Agency, Lumen, HUMAN Security, Plume, Synthient, and TrendAI worked with Google on the operation, according to Google’s report.

Is My Android TV Box Affected?

There is no single test, but these checks will tell you whether your box is likely part of XCPE. Work through them in order.

  1. Check the brand and model. Researchers at Synthient and Plume link MECOOL-branded boxes to Videostrong, and Synthient found the backdoor already installed on a MECOOL KM9PRO Max it bought. Synthient has published a list of 182 device model names seen in the campaign. A match is a strong warning sign, not proof: the list itself says a model name alone does not confirm infection. A box that is not on the list is not automatically safe, because Videostrong also makes boxes sold under other brands.
  2. Look for the backdoor app. On the box, open Settings, then Apps, and choose the option to show system apps. If you see x.cpe, com.oemservice, or com.abc.nexus, treat the box as infected. These are the package names Google published. Not finding them does not clear the box: since August 2026, the operators have also installed extra apps disguised as Android system apps, with names such as com.android.system.ntp.
  3. Check whether Play Protect was turned off. The XCPE backdoor disables Google Play Protect’s app checks. If you find Play Protect’s app scanning switched off and you did not turn it off, treat that as a red flag.
  4. Watch your home network. The FBI lists unexplained internet traffic as a possible sign of an infected device. Check your router’s app or admin page for heavy data use by the TV box, especially when nobody is watching anything.

Warning Signs Your TV Box Is Part of a Botnet

Red flag Why it matters
The box was sold as “unlocked” or able to access free content The FBI lists this as a possible sign of a compromised device
The brand is one you do not recognize The FBI lists unrecognizable brands as a possible sign of a compromised device. Videostrong also makes boxes for other brands, so its firmware can ship under names you may not know
Google Play Protect is off and you did not turn it off XCPE disables Play Protect’s app checks so it can install software silently
Apps appear that you never installed The backdoor can install apps without asking
Heavy internet traffic from the box while it sits idle Proxy software sends other people’s traffic through your connection
Settings change on their own The operators can run commands on the box remotely

Doesn’t Play Protect Certification Protect Me?

Not in this case. Google requires device makers to pass compatibility and security tests before they can ship Google’s apps, but Google says Videostrong hid its code to get through a gap in those tests and loaded the malicious parts only after the box first started up. Plume found both Google-certified boxes and uncertified boxes in the botnet. Google has not said how many certified devices were affected.

Google says it has changed its review process and is improving how it checks firmware on certified Android TV devices. Certification is still worth checking for, but it is not proof that a particular box is clean, so check the other signs above as well.

What to Do If Your TV Box Is Affected

  1. Unplug it from your network. Remove the Ethernet cable and forget your Wi-Fi network on the box, or simply power it off. This stops your connection from being used as a proxy and cuts the operators’ access to your home network.
  2. Don’t count on a factory reset. The backdoor lives in the box’s firmware, which a reset does not replace, and it reinstalls itself after it is deleted. Plume suggests a full reset to clear any extra programs the operators added, but researchers disagree on whether any home fix works: TrendAI says cleanup needs vendor action, platform protection, or replacement of the device, and Synthient advises throwing these boxes away.
  3. Replace the box. Contact the seller or marketplace and ask about a return or refund, and keep your receipt, order details, and the model number. Recycle the old box as electronic waste rather than passing it on to someone else.
  4. Change passwords for accounts you used on the box. That includes streaming services, your Google account, and any other app you signed in to. Google observed the operators capturing screens, injecting keystrokes, and copying account details, so assume anything typed on the box may have been seen. Turn on multi-factor authentication where it is offered.
  5. Secure your router. Change your Wi-Fi password and the router’s admin password, and remove any devices you don’t recognize. If your router supports a guest network, put streaming boxes and other smart devices on it, apart from your computers and phones.
  6. Check your other devices. If a phone or tablet shares the network and is behaving oddly, follow our steps to remove malware from an Android device.
  7. Watch your accounts. Look out for login alerts, password-reset emails you didn’t request, or charges you don’t recognize. If you entered payment details on the box and see charges you didn’t make, call your bank or card issuer. If someone opened accounts or used your identity, report it and get a recovery plan at IdentityTheft.gov.

How to Buy a Safer Android TV Box

Google recommends buying set-top boxes only from reputable manufacturers, and it keeps a list of its Android TV partners you can check before you buy. Skip boxes sold as “unlocked” or able to access free content, which the FBI lists as a possible sign of a compromised device. Once the box is set up, keep Google Play Protect on, install apps only from official app stores, and pass on any app that offers to pay you for your unused bandwidth. Google says those apps are one of the main ways illicit proxy networks grow.

How to Report It

  • FBI Internet Crime Complaint Center: If you think a device on your network was used for criminal activity or someone got into your accounts, file a report at ic3.gov.
  • Federal Trade Commission: Report a seller or marketplace listing that sold you an infected device at ReportFraud.ftc.gov.
  • The seller or marketplace: Report the listing so others don’t buy the same device.
  • Local police: File a report if you lost money.

Google warns that when one part of this criminal supply chain is disrupted, operators quickly switch to new loaders and tools. If your TV box matches the signs above, unplug it and replace it rather than waiting for a fix.

The post XCPE Botnet: Is Your Android TV Box Hacked? What to Do Now appeared first on McAfee Blog.

  •  

Malware for Hire: The Story of Marsalek, a Malware-as-a-Service Operation

Authored by Aayush Tyagi

Introduction

Malware-as-a-service (MaaS) is becoming increasingly accessible within online gaming communities and across the internet. Sophisticated malware that once required technical expertise to develop can now be obtained for free, giving aspiring hackers the tools to target unsuspecting victims. For younger users in particular, what begins as curiosity or experimentation can become a gateway into cybercrime, potentially desensitizing them to the real-world consequences of their actions.

Following our investigation into WeedHack, a malware-as-a-service campaign targeting Minecraft players, McAfee Labs has uncovered another operation linked to the same cybercriminal ecosystem. Called Marsalek, this campaign expanded its reach beyond Minecraft by disguising malicious software as popular gaming tools, cheats, and utilities for games including Roblox, Fortnite, and Counter-Strike 2.

Active from approximately December 2025 through May 2026, Marsalek offered free access to sophisticated information-stealing malware through a publicly accessible platform, complete with a dashboard that allowed users to create malicious files, track victims, and access stolen information. McAfee Labs identified more than 1,560 registered accounts, over 400 malicious files, and more than 29 distribution URLs associated with the campaign, illustrating the accessibility and potential reach of these operations.

Our investigation also uncovered a particularly concerning tactic known as a dual-hook infection. This occurs when a single malware infection uses two separate channels to collect and send stolen information, potentially allowing multiple cybercriminals to profit from the same victim. In Marsalek’s case, the malware deploys an additional information stealer called PureLog, which sends stolen data to a separate server. This means that while someone using Marsalek may believe they’re collecting stolen passwords and other personal information for themselves, the malware operator could also gain access to that information without their knowledge.

Like WeedHack, Marsalek highlights a troubling shift in the cybercrime landscape: powerful malware tools are becoming easier to obtain and operate, lowering the barriers for inexperienced users to engage in cybercrime. For unsuspecting gamers and everyday internet users, the consequences can be serious. Downloading what appears to be a free game modification or useful application could expose saved passwords, online accounts, cryptocurrency wallets, and sensitive personal files to cybercriminals.

Key Findings

  • ‘Marsalek’ was active from midDecember 2025 until around the end of May 2026. It was operating in parallel with Weedhack.
  • We’ve discovered that both the campaigns are linked, as they reference the same telegram channel for customer support. i.e. ‘@MetaMaskenMann’.
  • This campaign offers 4 different stage 1 infection vectors. Namely, PowerShell, ClickFix, Python and PE executable files.
  • We’ve discovered over 400 malicious files that are part of this attack, and over 29 URLs that are distributing this malware.
  • By analyzing filenames and distribution URLs, we noticed that Marsalek was used to target various games such as Roblox, Fortnight, Minecraft, CS2, Grim Dawn by impersonating game utilities and game hacks, and spreading them through fake websites and discord.
  • Similarly, Marsalek also impersonated hack tools, infostealer malware, discord tools, hardware ID spoofers, crypto currency applications and cookie checker tools. We‘ve seen similar campaigns, where GitHub was used to spread trojanized cracks, game hacks and crypto tools.
  • Unlike Weedhack that relied on Java based malware, Marsalek uses python for implementing its intermediate-stage payloads but shared the same final-stage payloads observed in the Weedhack campaign.
  • Marsalek had over 1560+ unique registered accounts, indicating a sizable user base.
  • Marsalek only offered a free tier during its operation, while the premium tier was marked as “coming soon.” The free tier does not require a Discord or email account for access.
  • Marsalek bypassed Chrome’s App-Bound Encryption (ABE) by using DLL Injection to access cookies, passwords and refresh tokens from well-known and trusted Chromium-based browsers such as Chrome, Edge, and Brave.
  • Marsalek also targets over 32 Chromium-based browsers, that use traditional DPAPI encryption techniques or AES-GCM encryption to steal cookies, passwords and browser extension data for cryptocurrency wallets.
  • Marsalek looks for discord credentials in 26 different paths, decrypts and validates them before compressing and exfiltrating them to the C2. It also extracts Telegram and Mullvad VPN details from the victim’s computer.
  • Marsalek has the capability to search across 5 prominent file paths, identifying files based on 24 keywords and 21 file extensions.
  • Marsalek targets over 56 browser extensions and 12 applications responsible for handling crypto currencies. The malware also creates backdoors in the Exodus and Atomic Wallet desktop applications.
  • The threat actor maintains persistence through Startup folder and scheduled task entries, creates over 23 windows defender exclusions, and leverages LOLBAS binaries to facilitate privilege escalation.
  • Like Weedhack, Marsalek also offers an extensive dashboard that allows customers to view stolen credentials, view a heatmap of all the victims, download different payloads, configure notifications for telegram, access an FAQ section that teaches customers how to use stolen credentials and clean stolen cryptocurrencies.
  • This campaign also drops PureLog infostealer, which targets 48 browser extensions, 35 browsers and 12 desktop applications. This sample exfiltrates the data to a separate C2 server, demonstrating that the operation is dual-hooked.

Attack Vector

Figure 1: Attack Vector

Figure 1: Attack Vector

Marsalek provides its customers with two script builders, that enable users to build custom PowerShell and Python payloads, embedded with a unique user ID. It also provides EXE and ClickFix page builders.

Figure 2: Marsalek’s EXE Builder

Figure 2: Marsalek’s EXE Builder

By supporting multiple payload types, customers can target various python repositories and upload malicious code, share infected PowerShell script with unsuspecting users, create websites that implement ClickFix social engineering techniques and impersonate well known and commonly used software and game mods, thereby maximizing campaign reach and infection rates.

Marsalek’s infection chain remains largely consistent after the initial access vector. Marsalek relies on Python-based payload for stages 2 and 3. Stage 4 payload is PureLog infostealer malware sample that harvests a similar set of credentials but sends them to a separate C2 server.

PureLogs Stealer, first observed in 2022, was developed by a threat actor known as “PureCoder.” Since then, it has become a widely used, low-cost infostealer, with subscriptions available for as little as $59 per month.

This double credential harvesting reveals that the campaign is dual hooked. The attacker behind the campaign retains access to all the credentials harvested by Marsalek. Consequently, if any customer is able to infect a high value victim, then Marsalek’s author may be able to exploit the stolen credentials before the customer.

As a result, customers bear the operational risk and effort of running campaigns yet may not receive the full fruits of their labor.

Marsalek targets the following Browsers:

Chromium Thorium Maple Iridium 7Star CentBrowser
Chrome Edge Brave Opera Opera GX Yandex
Chedot Vivaldi Kometa Elements Uran Epic Privacy Browser
Fenrir Catalina Coowon Liebao QIP Surf Orbitum
Dragon 360Browser CocCoc Maxthon Amigo K-Melon
Torch Sputnik DCBrowser Slimjet UR Browser Firefox

 

Marsalek claims under its FAQ section that it can steal passwords and cookies from all Gecko based browsers, which is false, as it only targets Firefox. While its Firefox extraction logic could easily be adapted to other NSS-compatible Gecko browsers, it does not enumerate or target them explicitly.

It targets these Cryptocurrency browser extensions:

Authenticator Binance Bitapp BoltX Coin98 Coinbase Core Crocobit
Ever ExodusWeb3 Fewcha Finnie Guarda Guild HarmonyOutdated Iconex
Kaikas KardiaChain Keplr Liquality MEWCX MaiarDEFI Martian Math
Metamask2 Mobox Nami Nifty Oxygen PaliWallet Petra Phantom
Ronin Safepal Saturn Slope Solfare Sollet Starcoin Swash
TerraStation Tokenpocket Ton Tron XDEFI Wombat Trust Wallet XMR.PT
Yoroi iWallet Equal TempleTezos Metamask Pontem Jaxx Liberty XinPay

 

It targets the following Cryptocurrency Desktop Wallets:

Atomic Exodus          Electrum Electrum-LTC
Zcash Armory Bytecoin Jaxx
Ethereum Guarda Coinomi Monero

Marsalek searches several commonly used user directories for files. Specifically, it scans the following locations:

%USERPROFILE%\Desktop

%USERPROFILE%\Documents

%USERPROFILE%\Downloads

%USERPROFILE%\OneDrive\Documents

%USERPROFILE%\OneDrive\Desktop

And they actively target the following keywords:

passw mdp motdepasse mot_de_passe login secret
account acount paypal banque metamask wallet
crypto exodus discord 2fa code memo
compte token backup seecret passphrase seed

 

This shotgun approach of targeting such a massive list of applications and files ensures that almost every infected user yields something of value.

In our analysis, we found that Marsalek largely focused on impersonating widely used Roblox script executors, such as Swift executor, Solara executor, MatrixHub External and Matcha External. Some well-known Minecraft clients were also targeted, such as Shadow Client and Boss Client.

Threat actors also created look-a-like websites to lure innocent users and infect them.
Such infection vectors carry massive potential to infect young players across the internet.

Geographical Prevalence

Figure 3: Geographical Prevalence

Figure 3: Geographical Prevalence

Over the last 6 months, McAfee has spotted that Marsalek was most prevalent in United States, followed by Germany, United Kingdom, India, Brazil, Poland, Netherlands, Italy and Canada.

Why Does It Matter?

McAfee has seen a rise in Malware-as-a-service campaigns in 2026. Selling malware was limited to the Dark Web earlier, but in recent times, we’ve noticed that sophisticated malware is just a Google search away. Even the cost of acquiring malware has reduced significantly, with many campaigns offering free tier to attract more customers. This low risk-high reward scenario attracts a lot of teenagers who do not comprehend the consequences of their actions.

These symbiotic relationships between the attacker and their customers create a mutually beneficial ecosystem for both parties. Customers who lack any technical skills to create and manage a malware campaign gain access to ready-made malware. On the other hand, threat actors have limited bandwidth and can infect only a certain number of victims on their own. By having more than a thousand customers, they can significantly increase the reach and success of their campaigns.

Since this campaign is dual-hooked, the attacker effectively gets the first stab at their victims, walking away with the most profits. Purchasing the premium tier does not eliminate the risk for customers, as the campaign owner can shut down the C2 and bail out with stolen credentials and subscription fees anytime.

We’ve encountered a rise in malware posing as game hacks and  legitimate tools. These campaigns prey on users looking for an easy way to access gaming software that is usually locked behind a paywall. Downloading these trojanized applications can allow threat actors to gain access to credentials saved on a victim’s device.
These stolen credentials are often sold on Telegram channels or dark web marketplaces, generating substantial profits for cybercriminals.

Infostealer logs have become the backbone of cybercrime in 2026, and such attacks are expected to rise exponentially in the coming years.

At McAfee Labs, we have been actively hunting for such malware campaigns, so you don’t need to worry. But it always helps to be informed and educated about the latest threats in the threat landscape and how to protect yourself and your loved ones against them.

Step  User Experience  Behind the Scenes  Red Flags  How McAfee Helps
1.      You come across an exe file on discord. Another user shared a file, claiming it to be a game hack or another cracked tool. In most cases, these are trojanized software, laced with infostealer malware. The file masquerades as a free version of a legitimate game client.  McAfee® Total Protection is regularly updated to combat evolving malware threats, including infostealers, ransomware, trojanized applications, and other emerging attack techniques.
2.     You discovered a website offering a cracked version of a recently released game. The Website seems genuine, as it is well crafted and beautiful. 1. It’s easier to create such websites now, due to the advancements in AI models.

 

2. Cracked games and software are often distributed with embedded malware.

Since bypassing anti-piracy protections usually takes time and effort, “free” versions of recently released games are frequently used as a lure to distribute malware. McAfee’s Web Protection​ help block malicious sites.
3.     You download a Minecraft or Roblox client, and it gets detected by your AV product. The website mentions that sometimes AV products make mistakes, and you should disable your AV products to use the client. The threat actors manipulate users into executing malware that is already known and detected by security solutions. The website does not explain why their tool is being mistaken as malware. McAfee’s Threat Explainer informs us why a certain file is being detected.
4.     You or someone you know has been contacted by a hacker claiming to have hacked your system. Threat actors claim to know your IP address and show evidence that they have access to your webcam or to your system. Threat actors reach out to their victims, to harass and bully them. Reach out to someone you trust, such as a parent or guardian, and inform them about the incident.

Following the attacker’s instructions could lead to more damage.

5.     You’ve seen an infostealer malware available for free on the internet. You came across GitHub repositories or Discord channels that share malware or malicious tools designed to compromise other users’ systems. These malicious tools are often embedded with malware, targeting users who are enticed into downloading and using them.

 

Be cautious of free malicious tools available online. Malware is often developed by highly skilled threat actors who spend months refining their code to create FUDs.
If you’re not paying for the product, you may be the product.
McAfee® Total Protection is regularly updated to combat evolving malware threats, including infostealers, ransomware, trojanized applications, and other emerging attack techniques.

 

Malware Dashboard

Figure 4: Marsalek’s PowerShell Builder

Figure 4: Marsalek’s PowerShell Builder

Marsalek offered an enterprise grade dashboard that allows the customers to build and download malware, along with usage instructions on how to infect maximum victims. PowerShell and Python builders provide malicious script that can be appended to any legitimate file.

Figure 5: Fake CAPTCHA page

Figure 5: Fake CAPTCHA page

The fake CAPTCHA page builder provides an HTML file that impersonates Cloudflare CAPTCHA verification page and executes a malicious PowerShell command. EXE builder provides an EXE file, that on execution, follows the same kill chain.

Figure 6: Marsalek’s Dashboard

Figure 6: Marsalek’s Dashboard

Marsalek provides a platform where users can see all their infected victims and all of the collected information from their system. It allows customers to search and filter victims by IP and status.

Figure 7: Heatmap of victim’s location

Figure 7: Heatmap of victim’s location

It provides a global heatmap of infected victims, allowing operators to quickly visualize infection activity at a glance. By presenting infections geographically, it provides a high-level overview of campaign activity, helping operators assess regional trends.

Figure 8: Wallet Injection Section

Figure 8: Wallet Injection Section

On the side pane (Highlighted in Red), it allows customers to view all collected data, including wallet injections, harvested passwords, files, and refresh tokens. Marsalek includes a premium section that is still under development (Highlighted in Yellow).

Figure 9: Statistics Section

Figure 9: Statistics Section

It also includes a detailed statistics section that provides an overview of the operation’s activity. This section displays the total number of logs collected, along with a breakdown of logs categorized as spam, finished or pending review. It also shows the number of logs collected over the past week and provides a day-by-day breakdown of collection activity.

At the bottom of the page, the panel displays aggregated statistics for all collected credentials, categorizing them into passwords, cookies, files, and Discord tokens. It also summarizes all available injections and classifies them according to their target, such as cryptocurrency wallets, and Discord injections.

Another critical segment is the FAQ section of the website.

Figure 10: FAQ Section

Figure 10: FAQ Section

Here, the attacker has created a detailed section that covers the following topics –

  • How to set up a telegram notification bot using the settings section to receive alerts about new infections.
  • How to use harvested Discord Login Tokens and access compromised user accounts.
  • How to use harvested cookies from victim’s PC.
  • How to access Cryptocurrency wallets using stolen browser extension and desktop application data.
  • VPN and residential IP recommendations.
  • How to clean stolen cryptocurrency.

Most noticeably, the attackers advise their customers that they should set up their own XMR node or try to access a privacy friendly XMR node. Then they can exchange the stolen funds for Monero using privacy-focused services such as ETZ-swap or Trocador, which would prevent the funds from being tracked. These stolen funds can then be exchanged into any other cryptocurrency.

Technical Analysis

As discussed above, even though Marsalek offers 4 different initial vectors, the overall kill chain remains the same.

Stage 1 Payload – Installer Scripts

Figure 11: Marsalek’s stage 1 payloads

Figure 11: Marsalek’s stage 1 payloads

Here, the PowerShell (Highlighted in Red) and Fake CAPTCHA (Highlighted in Yellow) scripts are almost similar. They reach out to the C2 domain to download a PowerShell script.

This script downloads a portable Python runtime and configures it. Next, it downloads pip, which is a standard package manager for python. It uses pip to install more python packages, namely setup tools, cryptography, fernet, and requests.

The malicious python script (Highlighted in Green) downloads these packages directly. The EXE variant also checks for python first and then installs these packages. Marsalek uses Fernet symmetric encryption throughout the campaign.

Next, the malware downloads ‘python_setup.py’ from the C2 domain and executes it.

Stage 2 Payload – python_setup.py

This payload checks whether the python file already has administrative rights. If not, it uses CMSTP UAC — (Connection Manager Service Telephony Profile (CMSTP) Installer and UAC (User Account Control) — bypass to gain admin privileges. This is the same technique we’ve observed in the original Weedhack malware campaign.

Here, the following INF is dropped in the temp folder and executed via CMSTP.exe.

Figure 12: Malicious INF file

Figure 12: Malicious INF file

CMSTP is Connection Manager Profile Installer, which is a legitimate tool which is used to install or remove remote access profiles on a system.

To gain admin privileges, the /au parameter is passed along with the file path.

cmstp.exe /au “C:\Users\admin\AppData\Local\Temp\wzyjbqkurc.inf”

Here, the /au (Highlighted in Red below) flag instructs the profile installer to install the connection profile for every user on the system, which inherently requires admin privileges. This triggers a standard User Account Control consent prompt.

Figure 13: Python code to bypass UAC prompt

Figure 13: Python code to bypass UAC prompt

Marsalek then identifies the consent prompt using the service name in the INF file, hides the prompt, and then simulates the Enter key (Highlighted in Green). This ensures that the INF file is executed with admin privileges.

The INF file relaunches python_setup.py, which inherits administrative privileges.

Next, the python script creates a WinDefConfig.cmd file in temp folder and executes it.

Figure 14: WinDefConfig.cmd file

Figure 14: WinDefConfig.cmd file

This file adds 8 exclusion paths and 15 exclusion processes to windows defender, ensuring the subsequent payloads won’t be detected.

Next, the malware decrypts and drops the stage 3 payload ‘svc.py’ into the temp folder and executes it.

Stage 3 Payload – svc.py

Svc.py has over 1400 lines of python code that performs the notorious activity we’ve mentioned at the beginning of the blog.

In the beginning of the script, Marsalek downloads a few more Python libraries, such as pycryptodome and psutil.

Figure 15: Chromium Browsers targeted by Marsalek

Figure 15: Chromium Browsers targeted by Marsalek

Next, it defines the target applications and their corresponding file paths. This list is later used to iterate through each entry and gather all accessible credentials.

Figure 16: Python code to set up Native Functions

Figure 16: Python code to set up Native Functions

Then, the malware uses Python’s ctypes library to directly invoke native Windows APIs from kernel32.dll. These APIs are later used for process manipulation and DLL injections.

3.1 Targeting Chromium Browsers

Figure 17: Python code targeting Chromium Browser  

Figure 17: Python code targeting Chromium Browser  

Firstly, Marsalek targets 32-chromium browser iteratively. It checks whether a browser is installed. Then, it identifies available user profiles, looks for corresponding SQLite database. It retrieves the decryption key from the database and uses ‘CryptUnprotectData’ to decrypt it.

Next, it searches for encrypted passwords in the database and checks the prefix ‘v10’, which indicates that the password uses a Chromium encryption format based on AES-GCM. The encrypted password is stored as the following string –
‘v10’ + 12-byte initialization vector + encrypted password + GCM authentication tag

Then it initializes an AES-GCM decryptor using the decryption key and the initialization vector to decrypt the actual password and throws away the authentication tag. It converts the decrypted bytes into a string to get the final plaintext password.

If the encrypted password does not have the ‘v10’ prefix, then it simply uses ‘CryptUnprotectData’ API to decrypt it.

It follows the same process for cookies, where the cookies are extracted from the SQLite database and decrypted using the identified decryption key and the initialization vector. It converts the cookies into Netscape format and also tracks the number of cookies stolen, before sending all the data to the C2 domain.

Next, it checks for 56 browser extensions. If any are present, it zips their entire local storage data and uploads the archive to the C2 domain.

3.2 Targeting Chrome’s App-Bound Encryption

Figure 18: Python code targeting Chrome's App-Bound Encryption

Figure 18: Python code targeting Chrome’s App-Bound Encryption

Next, it shifts its focus to browsers that utilize Chrome’s App-Bound Encryption. These browsers store encrypted master key inside their local configuration files.

Instead of decrypting this master key using Windows cryptographic APIs, these browsers use their Elevation Service for decryption. Before decrypting the key, the Elevation Service validates the calling process by verifying that its executable path corresponds to a legitimate browser binary located in an approved directory.
Hence, the key is decrypted only when the request originates from the legitimate browser process.

Figure 19: List of targeted browsers that use Chrome's App-Bound Encryption.

Figure 19: List of targeted browsers that use Chrome’s App-Bound Encryption.

Marsalek starts by checking for installation of Chrome, Edge, or Brave on the system and, if so, it collects the encrypted master key and starts the browser in a suspended state. It then creates a named pipe between the suspended browser and itself for communication.

Marsalek then decrypts a DLL and drops it to disk. Using windows APIs, Marsalek injects the DLL into the suspended browser process. Then it sends the encrypted master key to the injected DLL using the named pipe. The DLL requests the browser’s Elevation Service to decrypt the master key. Since the DLL is executing within the browser address space, the request appears to originate from the legitimate browser process, allowing the DLL to receive the decrypted key.

Figure 20: Python code decrypting cookies using the master key.

Figure 20: Python code decrypting cookies using the master key.

Once the sample has the decrypted key, it passes it into the following functions –
extract_v20_cookies
extract_v20_passwords
extract_v20_tokens

These functions access different SQLite databases under different profiles and collect encrypted data. Next, they ensure the data contains the prefix ‘v20’ which indicates the use of App-Bound Encryption (ABE). Then it initializes an AES-GCM decryptor to decrypt various credentials and sends them to the C2 domain.

3.3 Targeting Firefox

Next, Marsalek sets its sight on Firefox.

Figure 21: Python code targeting Firefox

Figure 21: Python code targeting Firefox

It searches for user profiles under the following path –
%APPDATA%\Mozilla\Firefox\Profiles\

For each profile, it looks for cookies.sqlite, which is Firefox’s cookie database. Marsalek queries these databases and searches for Hostname, Cookie name and value. It converts these cookies into Netscape format, counts the total number of cookies, and stores the data for exfiltration.

Next, it searches for Firefox’s NSS3.dll. This is Mozilla’s cryptographic library and is used for operations involving protected credentials. It initializes NSS3.dll into memory against collected Firefox profiles. That allows NSS to access the cryptographic material associated with that profile.

Next, Marsalek collects encrypted credentials from Firefox’s logins.json file. Decrypts the harvested credentials using NSS’s ‘PK11SDR_Decrypt’ function. Instead of implementing Firefox’s decryption algorithm itself, Marsalek leverages Firefox’s legitimate NSS library to perform the cryptographic operation.

It stores the credentials in the following format –

{ “browser”: “Firefox”, “url”: host, “username”: user, “password”: pw }

These are then sent to the C2 server.

As mentioned earlier, Marsalek claims that it can steal passwords and cookies from all Gecko based browsers, which is false, as it only targets Firefox.

3.4 Targeting Discord

Figure 22: Python code targeting Discord

Figure 22: Python code targeting Discord

Marsalek contains 26 hardcoded Discord paths, targeting both the Discord desktop client and Discord tokens present in web browser’s local storage.

Since discord desktop application encrypts its locally stored tokens, Marsalek captures the encrypted key and uses Windows ‘CryptUnprotectData’ API to recover the AES key. It then scans LevelDB files for the string ‘dQw4w9WgXcQ:’ which serves as a marker for Discord token entries. Marsalek captures the token and decrypts it by setting up an AES-GCM decryptor using the recovered AES key.

Next, the malware validates the token, by sending it in a GET request to Discord’s API. Using the API’s response, Marsalek collects additional details such as, User ID, Email address, linked Phone number, username and global name. These details are then stored for exfiltration.

If the Discord desktop application is not present, Marsalek searches various web browsers for stored Discord tokens, by using the following regex pattern –
r”[\w-]{24}\.[\w-]{6}\.[\w-]{25,110}”

These tokens are stored in plain text and do not require a decryption key. These tokens are also validated through Discord’s API to ensure that only active tokens are captured, avoiding outdated tokens or random strings, and are subsequently stored for exfiltration.

3.5 Targeting Telegram and Mullvad

Figure 23: Python code targeting Telegram and Mullvad VPN

Figure 23: Python code targeting Telegram and Mullvad VPN

Marsalek targets Telegram in a straightforward manner. It terminates any running Telegram processes and checks if the following path exists –
%APPDATA%\Telegram Desktop\tdata

If the path exists, then it zips the entire folder and stores it, before sending it to the C2 domain. This folder contains local application data and session-related information. This stolen data can allow the threat actor to execute account takeovers or other similar Telegram-related attacks.

Similarly, Marsalek checks if Mullvad VPN is installed on the system. If it does, then it invokes Mullvad’s command-line interface to retrieve information about the currently configured Mullvad account. It collects metadata and stores it for extraction.

3.6 Hunting Sensitive Files and Wallet Applications

Figure 24: Python code targeting sensitive files and Cryptocurrency wallets

Figure 24: Python code targeting sensitive files and Cryptocurrency wallets

Malware iterates through a list of directories present in the ‘PATHS_TO_SEARCH’ variable. It enumerates all the files under this directory and filters them according to their extension. These acceptable extensions are stored in the ‘ALLOWED_EXTENSIONS’ variable.

Next, it filters these files using filename keywords present in ‘FILE_KEYWORDS’ variable. Then it copies matching files to its staging directory for subsequent collection and exfiltration.

Alongside this activity, Marsalek checks the presence of 12 cryptocurrency wallet applications and, upon discovery, compresses their local storage data into a ZIP archive for exfiltration.

3.7 Injects into Exodus and Atomic Wallets

Figure 25: Python code for Injecting into Exodus and Atomic Wallet

Figure 25: Python code for Injecting into Exodus and Atomic Wallet

In this section of the code, the malware checks if Exodus or Atomic wallet is present in the system. If these applications are present, Marsalek sends a GET request to the C2 domain, downloads two Atom Shell Archive (.asar) files, and replaces the corresponding files in the local directory. This allows the threat actors to maintain a backdoor in both of these wallets.

Finally, Marsalek creates another GET request to download the stage 4 payload and copies it into the temp folder.

Stage 4 Payload – PureLog Stealer

The final stage payload is PureLog infostealer malware. It is obfuscated with DotNet Reactor.

Figure 26: Decrypted PureLog Malware

Figure 26: Decrypted PureLog Malware

This sample reads an embedded resource which is encrypted with Triple DES (3DES) symmetric-key block cipher. It then initializes a 3DES decryption routine (highlighted in green) using a hardcoded 3DES key and initialization vector (highlighted in red).

After decrypting the embedded resource, the sample decompresses the resulting data using GZIP. The decompressed payload is then loaded directly into memory and executed without being written to disk.

The next fileless stage is also obfuscated with .Net Reactor. This payload targets a similar set of credentials as the earlier Python script, with a few differences.

4.1 Scanning for Cryptocurrency Wallets, Browser and Desktop Application Data

PureLog has a list of over 35 browsers that it targets.

Figure 27: Browsers targeted by PureLog Malware

Figure 27: Browsers targeted by PureLog Malware

Other than the browsers targeted by Marsalek, it uniquely targets the following browsers.

QQBrowser Nichrome Chromodo Atom Browser by Mail.Ru

 

Similarly, it has a list of over 48 Browser Extensions.

Figure 28: Browser Extensions targeted by PureLog Malware

Figure 28: Browser Extensions targeted by PureLog Malware

This list overlaps with Marsalek’s browser extension list, except it uniquely targets the following 19 browser extensions.

BitClip Solana Wallet EOS Authenticator Trezor Password Manager Authy
TezBox Cyano Wallet BitKeep GAuth Authenticator Rabet
ZilPay Exodus Web3 Trust Wallet Braavos Smart Wallet Yoroi
MetaMask Guarda Wallet BitKeep Waves Keeper

 

NOTE: We’ve considered Chrome extension IDs to identify the above-mentioned differences. Entries with the same name in both lists have different IDs.

In a similar fashion, PureLog targets the following desktop applications.

Atomic Wallet Bitcoin-Qt Dash-Qt Electrum
Ethereum Exodus Jaxx Litecoin-Qt
Zcash Foxmail Telegram Ledger Live

At this stage, PureLog only checks if any of the above applications are present in the system, and if they do, it generates a log and sends it to the C2 server. PureLog implements component-based architecture, where the initial payload only focuses on reconnaissance and identifying the hack value of a victim. Threat actors can deploy additional components on the fly, allowing them to steal credentials, drop keyloggers, access webcams, or drop additional malware.

4.2 System Reconnaissance and Screenshot Capturing

Figure 29: PureLog collecting Hardware Identifiers

Figure 29: PureLog collecting Hardware Identifiers

Next, PureLog focuses on system reconnaissance, where it collects hardware identifiers such as ram and disk serial numbers and uses them to generate MD5 hash, which is used as a victim identifier.

Next, it identifies the AV product present in the system.

Figure 30: PureLog collecting AV Information

Figure 30: PureLog collecting AV Information

Next, it identifies the current privilege level, installed Windows version and its architecture.

Figure 31: PureLog collecting OS Information

Figure 31: PureLog collecting OS Information

Next, using the query below, it investigates whether the system has a camera or any other imaging device.

Figure 32: PureLog collecting Webcam Information

Figure 32: PureLog collecting Webcam Information

Finally, PureLog identifies the screen dimension and captures a screenshot of the victim’s screen.

Figure 33: PureLog capturing a Screenshot 

Figure 33: PureLog capturing a Screenshot 

This screenshot is then resized and converted into JPEG format, before sending it to the C2 domain.

4.3 Persistence Mechanism

To maintain persistence, PureLog executes the following PowerShell command:

Figure 34: Malicious PowerShell Command

Figure 34: Malicious PowerShell Command

This PowerShell command creates a scheduled task for persistence and executes the ‘RunetimeBroker.exe’ every 5 minutes with elevated privileges. It also configures the task, so it continues running even on battery power.

4.4 C2 communication manager

Finally, PureLog connects to its C2 domain. It decrypts the configuration embedded within the sample to obtain the C2 domain and port number. The configuration is Base64-encoded and compressed using GZIP.

Figure 35: Encrypted PureLog Configuration

Figure 35: Encrypted PureLog Configuration

The sample performs DNS resolution to receive the IP address from the hostname. Then it establishes a TCP connection and implements TLS encryption for secure communication with the C2 server.

PureLog also implements a custom certificate validation routine. The configuration contains an X.509 certificate, which is matched against the X.509 certificate received from the C2 server, indicating the implementation of certificate pinning.

Next, it creates a structured object containing information about the infected machine and sends the data to the C2 domain. The C2 domain we discovered was ‘telemetrydata.to’.

Next, the malware keeps the TLS connection active to receive command data from the C2 server. Each received command is executed within its own thread, allowing threat actors to perform remote command execution.

The malware also implements a persistent reconnection mechanism. If the connection breaks, the malware terminates the active socket and stream, resets its connection state, and attempts reconnection.

This allows threat actors to drop additional PureLog components.

Indicator of Compromise(s)

McAfee has extensive coverage for the Marsalek Malware Campaign. We’re proactively covering new samples observed in the wild.

Trojan:Win/Marsalek.AB                            Trojan:Script/Marsalek.AA

SHA256/URLs File Name
Stage 1 Payload
c70728c7e1bb1369152817d732ae068c0cd6e3356343ca5ea3a916acdf6f3b97 Fake CAPTCHA Page
98f138624ea96313dd5803356dc9428d230e535b5e775ed7cb4fc6dfd8397ab4 build_1280.exe
29f65faa96c9743e9ea1242dcb9d8a4a453b778f7dfb488c8add3f04ee087011 build_1505.exe
ae975e468c26c67a2618d0da28d671c1101d01979a10677abe658a7b40f221be payload_1.ps1
04b0dbddaa7791445adbaf7c47fe388d4ddad724b2a6b55463d2a81cacf3339d ShadowClient.exe
075d2ad32039674a2c65d899ae6760adf2457fe6af93710d204cee69e318a858 Discord Free Nitro Gen.exe
0c6f22efc8212739358ee2ce3564ffd3d193a74c1197cfc90d6345e33655ddeb build_1540.exe
206e7a9a9cb0767d356de26d2f3b6fca85552c2d89104f343fc2e20a64e1efa4 Fortnite_tweaks.exe
279b6b8621f61f63e1537f7225bef375fc497342a812904d8194b5a44df3efbe r.vbs
fe510937483b1b79e9da1f1a18bc7fce21637c0ce7a5799259ee3d29e8364f1e CS2-TriggerBot-main/main.py
 
Stage 2 Payload
4067e5f3dea8180dc47ea8c737b0cd2b11d4dfd5ef65f9e5ff30049eb8762f3e python_setup.py
b75cc775a8c1f91d38dab69a9b7278b9ef7c84cf14435d374a6d7c2660e16c02 downloaded_payload.txt
4067e5f3dea8180dc47ea8c737b0cd2b11d4dfd5ef65f9e5ff30049eb8762f3e python_setup.py
6fb6adb819a82bc9e7afdc83649af7e9e23daec19b45d19ed92f1877bc54acd9 virus.py
091736aba514598513a936446a7776b1fa4585883bee38afb74cfe840176a8bc payload.py
76d90ab4ba2be337e1ae03f69d12bfa873357bd5a0f177274a95b66621139c59 python_setup.py
b28bbedac88d0b52531cf344f25ef95fe364e0f3ff9e5105a119f379d83c6ebd AsyncRAT.py
9327a55cb9e76aab18c404ae4c4b95f2be50fce57c65ba7c0c16ff48193e84ae python_setup.py
 
Stage 3 Payload
3281e77e96bbd073ec8287928eadb2e47ba5337909800268bc9af0ee985def42 svc.py
7387b1ff5c2d4cdff9abcdb078742f26373e479f883bdd472f1aff58969b4fb2 svc.py
c12ffe59220fff73cabe6fd3cbec73a1c78df6988b742ae1d3a6458a82d135a7 svc.py
714267c512e8cfec6a535cda85897d901dfca9761c678b82781177ff13ec5923 svc.py
54ec316f639c97ec8b0cf321a8df32b1e9e2a19da91784f5575ed0a625ead811 svc.py
2c1c38eb0c427ff5f2aaa3029cc4526f797676ee3ba154c6a980c39f9357e2df src.py
c7691712d794d4ef582c591566bf5fda76a364b0bcdad315adbaaec8607ad0f3 chromedriver.dll
Stage 4 Payload
9cf8bab29514d62595e148eb588f0cbecefb947d572c06b4547cff7ea4231747 WinSvcHost.exe
e0866124208da639f6cde652d78a3d5e350ad99dbd008aa48dbd1475af4e93ff Pdihj.exe
9e4ea8b578475f18e092da73e56c0054261a881180d93f0909135bd6bdb4845d Kvxefnlfro.exe
Main C2 Domain
marsalek.cy
Secondary C2 Domain
telemetrydata.to
huehnchenfarm.ru
URLs distributing Marsalek
hxxp://cdn.filepost.dev/file/filepost/uploads/ad/adac14669df84170ae21e99e542ff7d3.exe
hxxp://solaraexecutor.online/solara.zip
hxxps://cdn.discordapp.com/attachments/1406651955421384817/

1453822535136186560/net-nuker.exe?ex=69517c3f&is=69502abf&hm=

4786f77b0db68586992f5e2f7f8961146ae3401cb3ae4edef52a69dce1392538&

hxxps://cdn.discordapp.com/attachments/1406651955421384817/

1455720862660563037/net-nuker.exe?ex=695a5e73&is=69590cf3&hm=

80369b451d7f9b20ebe4893adab9f7530dead3493e895aad7727b0b29ff1e50c&

hxxps://files.catbox.moe/11b8bu.py
hxxps://github.com/shreddfv/Matcha-External/archive/refs/heads/main.zip
hxxps://github.com/shreddfv/Matcha-External/raw/refs/heads/main/Matcha.exe
hxxps://github.com/shreddfv/Matrix-Hub-External-Cracked/blob/main/newuimatrix.exe?raw=true
hxxps://github.com/shreddfv/Matrix-Hub-External-Cracked/raw/refs/heads/main/newuimatrix.exe
hxxps://www.swiftexecutor.online/swift.zip
hxxp://130.12.180.43/files/6749237131/MVvd2DP.exe
hxxp://github.com/FomaNory/Roblox-Script-Executor/releases/download/Release/Executor.rar
hxxp://130.12.180.43/files/5532726588/cPr84lu.exe
hxxp://cdn.filepost.dev/file/filepost/uploads/ad/adac14669df84170ae21e99e542ff7d3.exe
hxxp://solaraexecutor.online/solara.zip
hxxps://cdn.filepost.dev/file/filepost/uploads/ad/adac14669df84170ae21e99e542ff7d3.exe
hxxps://cdn.discordapp.com/attachments/1406651955421384817

/1455720862660563037/net-nuker.exe?ex=699af7f3&is=6999a673&hm=

6d372f7c5fc686135fedbc1943d7b1eff339fbfd91d26a62f3dddca1c1b7a884&

hxxps://cdn.discordapp.com/attachments/1460394029215781075

/1462929986381152378/netgen.exe?ex=696ffb38&is=696ea9b8&

hm=50afe3eaad628cce1300d9571049357f09ae70fae17a56231736c335eda276de&

hxxps://cdn.discordapp.com/attachments/1467511838848847997/

1475468285955932232/szatum.exe?ex=699ee9ec&is=699d986c&hm

=4d10ad22da0b18019744b491de4be40b31b336c4b42d4067e16e967bfc07e8f8&

hxxps://cdn.discordapp.com/attachments/684808088372510766/1458557911142895737/

Fortnite_tweaks.exe?ex=69601368&is=695ec1e8&hm=

4c997f6b315b450a4db6f7079966ff58203b7ef66023a36e97b4b1131d515ce7&

 

The post Malware for Hire: The Story of Marsalek, a Malware-as-a-Service Operation appeared first on McAfee Blog.

  •  

Revolve Data Breach Hits 1.5M: What to Do if You Got a Letter From Revolve

Revolve Group, the online fashion retailer, says hackers may have obtained names, contact information, payment card numbers, and expiration dates from customers who saved a card to their online shopping accounts, according to the company’s October 29, 2026, SEC filing. Revolve’s breach report to the Texas attorney general lists 1,515,073 people affected, though Revolve has not confirmed that total in a public statement.

If you saved a card with Revolve, your most urgent next step is to ask your card issuer for a new card number. Revolve is not offering free credit monitoring, so affected shoppers will need to be vigilant and closely monitor their own statements and credit reports for signs of misuse.

What Happened in the Revolve Data Breach

An unauthorized actor got into certain Revolve systems and used “automated means” to pull saved customer payment details, Revolve said in its 8-K. The company said it notified federal law enforcement, brought in outside cybersecurity experts, has remediated the activity, and is putting enhanced security measures in place. It reported no operational disruption and said it does not expect a material impact on its business.

The SEC filing gives no dates or victim count. Those came from state breach notices. Revolve’s Texas filing lists September 11, 2026, as the date of the breach and September 29, 2026, as the date Revolve discovered it. The Texas filing also listed 127,200 affected Texans and 1,515,073 total affected shoppers.

Revolve breach timeline

Date (2026) What happened
Sept. 11 Date of breach, per Texas AG records
Sept. 29 Revolve discovers the incident
Oct. 29 Revolve files an 8-K with the SEC; customer notices begin
Oct. 30 8-K posts publicly on EDGAR; Texas AG publishes Revolve’s breach report, listing 127,200 Texans and 1,515,073 people in total.

What Data Was Stolen in the Revolve Breach

The stolen data covers customers who had saved payment information to their Revolve shopping accounts. According to the 8-K, it includes:

  • Full name
  • Contact information, including address
  • Payment card number
  • Card expiration date

Neither the SEC filing nor the Massachusetts letter lists CVV security codes, Social Security numbers, or passwords. That limits some misuse, but a card number paired with a name, address, and expiration date still has value to criminals. McAfee Labs has tracked how this kind of data is sold. As our guide to how stolen data travels through the internet (April 2026) explains, a stolen credit card number might sell for just a few dollars, while a more complete identity profile can go for about $50.

Got a Revolve Data Breach Letter? What It Means and What to Do

A Revolve breach letter means a card you saved on Revolve was in the stolen data, and that card is the one to replace. Revolve’s notification letter filed with Massachusetts names the affected card by its last four digits and lists:

  • What was taken: your name, address, card number, and expiration date
  • Contact details for Equifax, Experian, TransUnion, and the FTC
  • A Revolve call center at 888-517-6458, Monday through Friday, 9 a.m. to 9 p.m. ET, excluding some major U.S. holidays

The letter does not offer credit monitoring, and it does not ask you to enter card details on a website. If a letter, email, or text about the Revolve hack asks for your card number, CVV, or a payment, treat it as a scam and contact Revolve through revolve.com or the number above.

How Do I Know If My Credit Card Has Been Compromised?

The clearest signs are charges you don’t recognize, a notice from your card issuer, or a breach letter from Revolve. Watch for these red flags over the coming months, not just this week:

Red Flag Why It Matters
Tiny charges of a few cents or dollars from unfamiliar merchants Criminals run small “card testing” charges to confirm a stolen card works before using it for bigger purchases
Purchases, subscriptions, or declined transactions you didn’t make A declined attempt can mean someone tried your number and failed
Emails or texts about the Revolve breach that link to a “verify your card” or refund page Scammers use breach news to collect the CVV and other details this breach didn’t expose
Calls claiming to be from Revolve or your bank asking for your full card number, CVV, or a one-time code Revolve and card issuers already have your card details and don’t need you to read them back
Messages that know your name and address and push you to act fast The stolen data makes phishing look more convincing

Saved a Card on Revolve? Replace It and Take These Steps

If you saved a card on revolve.com or in the Revolve app, treat that card number as exposed. These steps apply whether or not you’ve received a letter yet:

  1. Ask your card issuer for a new card number. Call the number on the back of your card and say the card was exposed in the Revolve breach. A new number makes the stolen one useless.
  2. Remove saved cards from your Revolve account. Delete stored payment methods, then add a new card only at checkout if you continue shopping there.
  3. Check your last three months of statements. Look for any charge you don’t recognize since the September 11, 2026, breach date, including small ones from merchants you don’t know.
  4. Turn on transaction alerts. Most card issuers can text or email you for every purchase, which flags a test charge the day it happens.
  5. Verify any breach letter before you act on it. Revolve’s notification letter filed with Massachusetts lists a call center at 888-517-6458. Call that number, or go to revolve.com directly, instead of using links or phone numbers in an email or text.

Revolve’s 8-K says the stolen payment data relates to certain customers who saved payment information to their accounts. If you shop at Revolve but never saved a card, your card number was likely not exposed. You likely don’t need a new card, but watch for phishing that uses the Revolve name, since the breach is now widely reported.

What to Do If You’ve Already Seen Fraudulent Charges

If you spot charges you didn’t make, report them to your card issuer right away and follow up in writing. When only your card number was stolen, you aren’t responsible for unauthorized credit card charges, according to the FTC.

  • Debit cards carry more risk. Fraud drains your bank account directly, and you’re protected only if you report the charges within 60 days after your statement is sent.
  • Dispute every unauthorized charge. Include small test charges, even if they look like rounding errors.
  • Stop contact with anyone who reached out about the breach. Don’t send money, codes, or card details to callers or texters, even if they know your name and address.
  • If you gave a scammer more information, such as your CVV, Social Security number, or bank login, change affected passwords, turn on multi-factor authentication, and consider a free credit freeze with Equifax, Experian, and TransUnion.
  • If someone used your details to open accounts, report it and get a recovery plan at IdentityTheft.gov.
  • Keep records. Save statements, dispute confirmations, Revolve’s letter, and any suspicious messages or phone numbers.

How to Report Revolve Breach Fraud and Scams

  • Your card issuer or bank: for unauthorized charges and replacement cards
  • FTC: report breach-themed phishing calls, emails, or texts at ReportFraud.ftc.gov
  • gov: if your information was used to open accounts or commit other identity theft
  • FBI Internet Crime Complaint Center: if you lost money to a scam that used the Revolve name, at ic3.gov
  • Revolve’s call center: 888-517-6458, for questions about your notice

The single most effective step for Revolve shoppers who saved a card is to replace that card number now. A new number cuts off the stolen data at the source, no matter how long it circulates.

Revolve Data Breach FAQ

Is Revolve offering free credit monitoring?

No. Revolve is not offering free identity theft or credit monitoring. You can check your credit reports for free at AnnualCreditReport.com.

Should I delete my Revolve account?

You don’t need to delete your account to cut off this breach. Removing saved cards and replacing the exposed card number does that. If you no longer shop at Revolve, you can request account deletion through Revolve’s privacy policy.

Is this the same as the Revolut or Evolve Bank breaches?

No. Revolve Group is a US online fashion retailer. Revolut is a financial app, and Evolve Bank & Trust is a bank, and both had separate incidents.

The post Revolve Data Breach Hits 1.5M: What to Do if You Got a Letter From Revolve appeared first on McAfee Blog.

  •  
❌