← Back to Feed CACHED · 2026-10-26 08:32:39 · CACHE_KEY CVE-2026-30612
CVE-2026-30612 · CWE-494 · Disclosed 2026-08-27

Time4Popcorn auto-updater unsigned HTTP code execution via lapsed domain hijack

ASSESSED — NOISGATE
Vendor
—
—
—
Reassessed
—
—
—
Verdict: —
Do you agree?
01 · The Real Story

Someone left the vault door open at a building nobody owns anymore, and the locksmith already welded most of them shut

CVE-2026-30612 is a supply-chain-class flaw in Time4Popcorn — an abandoned fork of the Popcorn Time BitTorrent streaming client. The updater component (Updater.exe on Windows, PT.updd on macOS) polls a set of hardcoded domains over plaintext HTTP, downloads whatever executable the server offers, and runs it with NT AUTHORITY\SYSTEM (Windows) or root (macOS) privileges — all without verifying code signatures or requiring any user interaction. The update protocol is a simple GET /?app_id=T4PSEC&hid=<hwid>&ver=<ver>&os=<os> request that returns a JSON blob pointing to an executable URL. Affected versions are Windows ≤ 6.2.1.18, macOS ≤ 6.2.1.17, and Android ≤ 3.5.0.173 (Android requires user-initiated APK install, so it's far less severe). At peak exposure Eye Security estimated ~3 million Windows and ~350,000 macOS hosts with this updater running as a persistent background service. CWE-494 (Download of Code Without Integrity Check) is the root cause.

The vendor CVSS of 9.8 CRITICAL (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H) was technically accurate at the moment of discovery: an attacker who registered a single lapsed domain would get zero-click SYSTEM/root on millions of machines. But that window has been substantially closed. Eye Security's Operation IXIM (November 2025 – March 2026) registered 15 of the ~20 update domains, pushed a benign service-disabling payload to ~2 million devices, achieving a 98% reduction in update callbacks. The domains were then transferred to The Shadowserver Foundation for long-term sinkholing. What remains is a tail risk: a handful of potentially unregistered domains, ~2% of the original population still running the vulnerable updater, and the fact that this is unauthorized consumer piracy software that should never appear on a managed enterprise endpoint. For a security team managing 10,000 hosts, this is an unauthorized-software detection problem first and a CVE second. The 9.8 label dramatically overstates the residual real-world risk.

"Abandoned piracy app updater gives SYSTEM/root to anyone who registers a lapsed domain, but 98% already neutered."
02 · The Attack Path

4 steps from start to impact.

STEP 01

Register a lapsed update domain

The attacker identifies one of the ~20 hardcoded update domains that is not yet sinkholed by Shadowserver. As of October 2026, 15 domains are confirmed sinkholed; the status of the remaining 5 is unclear. Domain registration is trivial and costs under $10. The attacker sets up a web server responding to the T4PSEC update protocol.
Conditions required:
  • At least one lapsed domain remains available for registration
  • Attacker can set up HTTP infrastructure on the domain
Where this breaks in practice:
  • 15 of ~20 domains are already sinkholed by Shadowserver Foundation
  • Remaining domains may already be registered by researchers or parked
  • Domain registrars may flag domains previously associated with malware infrastructure
Detection/coverage: DNS monitoring for the 20 known IoC domains; proxy logs for app_id=T4PSEC query parameter.
STEP 02

Vulnerable updater phones home

The Updater.exe (Windows) or PT.updd (macOS) service runs persistently in the background and periodically polls the hardcoded domains via HTTP GET with hardware ID, version, and OS type. No user interaction is required. However, 98% of previously active instances have been disabled by Operation IXIM's remediation payload.
Conditions required:
  • Target host still has Time4Popcorn installed with active updater service
  • Host has outbound HTTP access to the attacker-controlled domain
Where this breaks in practice:
  • 98% of active updaters were disabled by Operation IXIM between Nov 2025 – Mar 2026
  • Enterprise web proxies / DNS firewalls typically block outbound HTTP to unknown .xyz/.info domains
  • Software inventory or EDR policies may flag or block unauthorized applications
  • This is consumer piracy software — most enterprise hosts never had it installed
Detection/coverage: Windows: Get-Service 'Update service' or osquery WHERE path LIKE '%Popcorn Time%'. macOS: launchctl list | grep updd. Network: HTTP requests containing app_id=T4PSEC.
STEP 03

Attacker serves malicious update payload

The attacker's server responds with a JSON document pointing to a malicious executable hosted anywhere on the internet. The updater downloads it over HTTP without any signature verification, hash checking, or TLS certificate pinning. The download is silent and automatic.
Conditions required:
  • Updater successfully connects to attacker-controlled domain
  • Attacker hosts a valid executable accessible via HTTP
Where this breaks in practice:
  • Network-level controls (IDS/IPS, proxy inspection) may detect unsigned executable downloads over HTTP
  • Some endpoint protection may flag the download of unknown executables
Detection/coverage: NIDS signatures for PE/Mach-O headers in HTTP responses to known IoC domains; EDR telemetry on Updater.exe child processes.
STEP 04

Payload executes as SYSTEM/root

The downloaded executable is launched directly by the updater service, inheriting its privilege level: NT AUTHORITY\SYSTEM on Windows or root on macOS. No UAC prompt, no sandbox, no user interaction. The attacker now has full control of the endpoint with the highest local privilege level. From a workstation, this enables credential harvesting, lateral movement, and data exfiltration.
Conditions required:
  • Malicious executable downloaded successfully
  • Updater service is running with elevated privileges
Where this breaks in practice:
  • EDR/AV may detect and block the malicious payload at execution time
  • Application whitelisting (AppLocker, WDAC) would block unsigned executables spawned by the updater
  • On a properly managed enterprise workstation, SYSTEM-level execution of an unknown binary should trigger alerts
Detection/coverage: EDR process-tree analysis: Updater.exe spawning unexpected child processes. Sysmon Event ID 1 with ParentImage containing Popcorn Time. macOS: PT.updd spawning shell commands.
03 · Compensating Control

1
MEDIUM 5.5→IGNORE 0.0
SEVERITY REDUCED
Detect and remove Time4Popcorn from all managed endpoints — Use your software inventory / EDR / SCCM to find Updater.exe in C:\Program Files (x86)\Popcorn Time\, PT.updd in /Library/PrivilegedHelperTools/, and the Popcorn Time application directory. Remove the entire application — disabling the updater alone still leaves the vulnerable 2014 Chromium engine. This is the only real fix since no vendor patch exists. Per the noisgate remediation SLA for MEDIUM, deploy within 365 days — but given the zero-effort removal, target 30 days as a hygiene win.
2
MEDIUM 5.5→LOW 2.5
SEVERITY REDUCED
Block all 20 IoC domains at DNS and firewall — Add the 20 known update domains (besttime4popcorn[.]info, goldtime4popcorn[.]info, itspopcorntime[.]info, mypopcorntime[.]info, pct-upd[.]info, pctupd[.]info, popcornforever[.]info, popcorngoldtime[.]info, popcorntime-upd[.]xyz, popcorntime-update[.]xyz, popcorntimeupd[.]xyz, realpopcorntime[.]info, sunnypopcorn[.]info, t4p-upd[.]info, time2popcorn[.]info, time4popcorn[.]info, upd-pct[.]info, updatepopcorntime[.]xyz, updpct[.]info, updpopcorntime[.]xyz) to your DNS sinkhole and perimeter firewall blocklists. This breaks the updater's callback regardless of whether a domain is attacker-controlled. No mitigation SLA applies for MEDIUM — go straight to the 365-day remediation window, but this is a one-time firewall rule that takes minutes.
3
MEDIUM 5.5→LOW 3.0
SEVERITY REDUCED
Disable the updater service on discovered hosts — As an interim measure while planning removal: Windows — sc.exe stop "Update service" && sc.exe config "Update service" start= disabled. macOS — sudo launchctl unload -w /Library/LaunchDaemons/PT.updd.plist. This stops the background polling. Note: the application's embedded Chromium vulnerabilities remain, so this is NOT a substitute for full removal.
4
MEDIUM 5.5→MEDIUM 5.0
Monitor DNS and proxy logs for T4PSEC update protocol — Alert on any DNS queries to the 20 IoC domains and any HTTP requests containing app_id=T4PSEC in query parameters. This provides detection coverage for both the updater callback and any MITM attempts. Use this as a discovery mechanism to find hosts that still have the software installed.
What doesn't work
  • Patching / upgrading the application — no patch exists and the project is completely abandoned. There is no vendor, no support channel, and no fixed version. Removal is the only remediation path.
  • Antivirus signature-based detection alone — the updater (Updater.exe, PT.updd) is a legitimate application component, not malware. Most AV engines will not flag it. You need software inventory or custom EDR detection rules, not signature scans.
  • Application whitelisting without removal — while AppLocker/WDAC would block unsigned payloads spawned by the updater, the updater service itself would continue polling and consuming network resources. The 2014 Chromium engine remains a separate attack surface that whitelisting doesn't address.
04 · Intelligence Metadata

The supporting signals.

In-the-Wild ExploitationNo confirmed malicious exploitation. Eye Security discovered the vulnerability during a threat hunt at a client site in late 2025. No threat actor is known to have registered the domains before Eye Security did. The flaw was disclosed responsibly and remediated proactively via Operation IXIM.
KEV StatusNot listed in CISA KEV as of 2026-10-26.
EPSS0.00424 — very low exploitation probability, placing this well below the 95th percentile. Consistent with the consumer-software profile and lack of in-the-wild exploitation.
Proof of ConceptFunctional PoC exists. Eye Security researchers demonstrated arbitrary code execution (calc.exe) via the updater mechanism and separately via the app's 2014-era Chromium engine with disabled sandbox. The Operation IXIM remediation payload itself is effectively a weaponized PoC (benign). No public exploit code found on pocindex.io, ExploitDB, or GitHub as of 2026-10-26.
CVSS VectorCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H (9.8). The vector is technically accurate for the pre-sinkhole state: network-reachable, low complexity, no auth, no user interaction, full CIA impact. Post-sinkhole, effective AC is significantly higher and the reachable population is ~2% of original.
Affected VersionsWindows Updater.exe ≤ 6.2.1.18, macOS PT.updd ≤ 6.2.1.17, Android in-app checker ≤ 3.5.0.173. No patched version exists — the project is abandoned. Complete uninstallation is the only remedy.
Scanning & ExposureEye Security observed ~3M Windows and ~350K macOS unique hardware IDs phoning home. Connections originated from residential ISPs, corporate, government, and military networks. Post-Operation IXIM, 98% reduction in callbacks. No Shodan/Censys/GreyNoise data (this is a client-side outbound connection, not an exposed service).
Disclosure TimelineLate 2025: discovered by Niels Teusink (Eye Security) during threat hunt. Nov 2025 – Mar 2026: Operation IXIM remediation. Jun 2026: CVE-2026-30612 published. Aug 27, 2026: NVD advisory. Oct 22, 2026: public disclosure at hack.lu conference, Luxembourg.
ResearcherNiels Teusink, Eye Security (Eye Research). Performed reverse engineering of Windows and macOS updater binaries, discovered the update protocol, identified the MachineGuid hardware-ID bug, and executed the large-scale remediation operation.
Additional RiskThe Time4Popcorn application also embeds a 2014-era Chromium engine with the sandbox disabled and loads JavaScript over HTTP from abandoned domains. Disabling the updater alone does not eliminate all attack surface — complete removal is required.

Sources.

  1. Eye Security — Operation IXIM (primary research)
  2. Eye Security — CVE-2026-30612 Advisory
  3. BleepingComputer — Abandoned Popcorn Time RCE
  4. Safeguard.sh — Operation IXIM IoCs & Detection
  5. DEV Community — Supply Chain Risk Analysis
  6. CyberInsider — Popcorn Time Updater Flaw
  7. OpenCVE — CVE-2026-30612
05 · The Call

Final Verdict
↓ DOWNGRADED to MEDIUM (5.5/10)

Why this verdict

  • Sinkhole coverage eliminates primary attack vector: 15 of ~20 update domains are sinkholed by Shadowserver Foundation, and Operation IXIM disabled the updater on 98% of active instances. The attack surface has been reduced by roughly two orders of magnitude from the original 3.3M devices.
  • Consumer piracy software, not enterprise infrastructure: Time4Popcorn is an unauthorized BitTorrent streaming client. It is never intentionally deployed on enterprise infrastructure. Its presence on a managed endpoint is itself a policy violation. No enterprise procurement, no SOW, no vendor support.
  • Role multiplier: exclusively low-value workstation role. Time4Popcorn is a consumer desktop application installed by end users. It does not run on domain controllers, hypervisors, CI/CD systems, network edge appliances, backup infrastructure, or any canonical high-value role. The blast radius ceiling is a single workstation compromise (host-level). While SYSTEM/root on a workstation enables lateral movement in theory, this is identical to any other workstation-level compromise and does not trigger the high-value-role floor.
  • EPSS corroborates low real-world risk: At 0.00424, EPSS places this vulnerability in the low-exploitation-probability tier, consistent with the consumer software profile and absence of known malicious exploitation.
  • Remaining attack friction is non-trivial: An attacker must find and register one of the few remaining unsinkholed domains (status unclear), then hope the target host has an un-neutered updater (2% of original population), has outbound HTTP access to the domain (enterprise proxies often block unknown .xyz/.info), and is not running EDR that would catch an unsigned executable launched by a service.

Why not higher?

The vulnerability technically allows zero-click SYSTEM/root RCE via a trivial domain registration — the raw mechanism is genuinely critical. However, upgrading to HIGH or CRITICAL would ignore the massive real-world mitigation already in place: 98% of devices neutered, 75% of domains sinkholed, consumer piracy software that sits exclusively in a workstation role, zero confirmed malicious exploitation, and very low EPSS. The residual attack surface is a small fraction of an already-narrow population of unauthorized installations.

Why not lower?

Dropping to LOW would understate the residual risk. An unknown number of update domains may still be registrable, the remaining ~2% of un-neutered instances (~60K+ devices) would be trivially exploitable if a domain is obtained, and exploitation yields SYSTEM/root without user interaction. The additional risk from the 2014 Chromium engine with disabled sandbox adds further attack surface. The software has no patch path — it can only be removed. Any host still running it is a persistent liability.

06 · Verification

Crowdsourced verification payload.

Run on each target Windows host (or push via SCCM/Intune/EDR live response). Requires local admin. Example: powershell -ExecutionPolicy Bypass -File .\Check-CVE-2026-30612.ps1. For macOS, see the inline comments for equivalent bash checks.

noisgate-verify.ps1
POWERSHELLREAD-ONLYSAFE
#!/usr/bin/env pwsh
# Check-CVE-2026-30612.ps1
# Detects Time4Popcorn vulnerable updater (CVE-2026-30612)
# Output: VULNERABLE / PATCHED / UNKNOWN
# Exit codes: 1 = VULNERABLE, 0 = PATCHED, 2 = UNKNOWN

$ErrorActionPreference = 'SilentlyContinue'
$found = $false
$serviceActive = $false

# Check 1: Look for Updater.exe in known install paths
$paths = @(
    "$env:ProgramFiles\Popcorn Time\Updater.exe",
    "${env:ProgramFiles(x86)}\Popcorn Time\Updater.exe",
    "$env:LOCALAPPDATA\Popcorn Time\Updater.exe"
)

foreach ($p in $paths) {
    if (Test-Path $p) {
        $hash = (Get-FileHash $p -Algorithm SHA256).Hash
        Write-Host "[!] Found updater: $p"
        Write-Host "    SHA256: $hash"
        # Known vulnerable hash
        if ($hash -eq '6F895E70E5E560B4B8189A8F7EDDF59EA1D237C3D69AF7C9E55CFBD76F334827') {
            Write-Host '    Hash matches known vulnerable Updater.exe'
        }
        $found = $true
    }
}

# Check 2: Look for the Windows service
$svc = Get-CimInstance Win32_Service -Filter "Name='Update service'" 2>$null
if (-not $svc) {
    # Also check by path pattern
    $svc = Get-CimInstance Win32_Service | Where-Object { $_.PathName -like '*Popcorn Time*' }
}
if ($svc) {
    Write-Host "[!] Found service: $($svc.Name) — State: $($svc.State) — StartMode: $($svc.StartMode)"
    Write-Host "    Path: $($svc.PathName)"
    $found = $true
    if ($svc.State -eq 'Running' -or $svc.StartMode -ne 'Disabled') {
        $serviceActive = $true
    }
}

# Check 3: Look for running process
$proc = Get-Process -Name 'Updater' -ErrorAction SilentlyContinue |
    Where-Object { $_.Path -like '*Popcorn Time*' }
if ($proc) {
    Write-Host "[!] Updater process running: PID $($proc.Id)"
    $found = $true
    $serviceActive = $true
}

# Check 4: Check for Popcorn Time application directory
$appDirs = @(
    "$env:ProgramFiles\Popcorn Time",
    "${env:ProgramFiles(x86)}\Popcorn Time",
    "$env:LOCALAPPDATA\Popcorn Time"
)
foreach ($d in $appDirs) {
    if (Test-Path $d) {
        Write-Host "[!] Application directory exists: $d"
        $found = $true
    }
}

# Verdict
if ($found -and $serviceActive) {
    Write-Host "`nVULNERABLE — Time4Popcorn updater is present and active. CVE-2026-30612 exploitable."
    exit 1
} elseif ($found) {
    Write-Host "`nVULNERABLE — Time4Popcorn components found (updater may be disabled but app remains). Remove entirely."
    exit 1
} else {
    Write-Host "`nPATCHED — No Time4Popcorn components detected."
    exit 0
}
# macOS equivalent: test -f /Library/PrivilegedHelperTools/PT.updd && echo VULNERABLE || echo PATCHED