AD SPACE AVAILABLE · BRAND PARTNERS WELCOME

Detecting Malicious Lua Payloads and Mod Supply-Chain Attacks in Steam Workshop Items

365Finds Editorial
Indexed 11,430 Wiki articles

Put 365 Wiki to work with your AI

Copy the prompt below, paste it into the AI you already use, then ask your question.

Download full Skill

Try it with the prompt first. If you use 365 Wiki often, install the full 365Wiki Skill so you do not have to paste it again. No regular AI? Gemini or Microsoft Copilot on the web will work.

365Wiki Skill

Steam Workshop Mod Compromise Diagnostic Matrix

Steam Workshop hosts millions of community-created extensions for sandboxed games such as Garry's Mod, Teardown, Project Zomboid, and Tabletop Simulator. Attackers execute supply-chain hijacking by purchasing abandoned popular workshop items or compromising modder developer accounts, pushing malicious Lua or C++ updates that download infostealers, execute remote shells, or harvest browser cookies and Steam session tokens.

Attack VectorUnderlying MechanismTarget AssetsManifested Warning Signs
Obfuscated Lua ScriptBase64/XOR encoded string evaluation (compilestring)Discord tokens, browser credentialsAntivirus flags gamemodes or addons folder
HTTP Exfiltration Payloadhttp.Fetch or http.Post to unlisted C2 domainSteam cookies, system IP, hardware IDSuspicious outbound network traffic on port 80/443
Binary Dropper (.dll / .exe)Lua calling external dynamic librariesFull OS persistence, crypto minersWindows Defender alerts on gmod_extra.dll
Workshop Auto-UpdateSilent background update pushed by hijacked creatorUnattended zero-day deploymentSudden game crashes or rogue pop-ups on server join

Step 1: Auditing Downloaded Workshop Cache Files

Workshop items are downloaded into numerical directories under your Steam library root:

  1. Navigate to the physical workshop staging directory:
[SteamLibrary]\steamapps\workshop\content\[AppID]\

(For example, Garry's Mod AppID is 4000). 2. Search for obfuscated scripts containing suspicious execution wrappers using PowerShell:

Get-ChildItem -Path "[SteamLibrary]\steamapps\workshop\content\4000" -Recurse -Filter "*.lua" | Select-String -Pattern "compilestring", "RunString", "fromhex", "base64"
  1. Legitimate mods rarely pack multi-layered Base64 payloads inside raw gameplay logic. Any matches referencing remote domains or encoded alphanumeric strings warrant immediate inspection.

Step 2: Intercepting Malicious Outbound Network Calls

To verify whether a subscribed mod is covertly exfiltrating session tokens or communicating with a command-and-control (C2) server:

  1. Launch Sysinternals TCPView or Wireshark.
  2. Filter network traffic by the game's executable (e.g., hl2.exe or ProjectZomboid64.exe).
  3. Launch the game and load a single-player save.
  4. If the game process attempts outbound HTTP/HTTPS connections to unknown raw IP addresses, Discord webhook endpoints, or Pastebin URLs while in single-player offline play, an active exfiltration payload is executing.
  5. Terminate the process immediately.

Step 3: Emergency Incident Response and Account Sanitization

If an infected workshop mod has executed on your host machine:

  1. Unsubscribe from the compromised item on Steam Workshop and delete the corresponding numeric subfolder inside steamapps\workshop\content\[AppID].
  2. Revoke all active Steam browser sessions:
    • Steam > Settings > Security > Deauthorize all devices.
  3. Reset your Steam account password from a clean, separate device (e.g., your smartphone).
  4. Run a comprehensive malware scan with Windows Defender Offline Scan:
Start-MpWDOScan
  1. Check your Steam Web API Key settings (https://steamcommunity.com/dev/apikey) and immediately revoke any key registered without your knowledge.