← Back to Feed CACHED · 2026-09-29 20:29:32 · CACHE_KEY CVE-2026-25550
CVE-2026-25550 · CWE-306 · Disclosed 2026-06-04

BarTender .NET Remoting Unauthenticated RCE via BtSystem.Service.exe

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

Like leaving the keys in the forklift ignition with the warehouse door wide open — except the forklift runs as SYSTEM

CVE-2026-25550 affects Seagull Software BarTender 2010 (through 10.1 R4), 2016 (through R9), and 2019 (through R10). The vulnerable component is BtSystem.Service.exe, which exposes a .NET Remoting TCP channel on port 7375 bound to all interfaces. The endpoint — named BarTenderSystem (2016) or DataServiceSingleton (2019) — is registered as an unauthenticated singleton using BinaryServerFormatterSinkProvider with TypeFilterLevel.Full. This combination allows an unauthenticated attacker to exploit .NET Remoting unmarshalling to read/write arbitrary files via WebClient, coerce NTLMv2 authentication via UNC paths, or achieve full remote code execution through deserialization gadget chains (ysoserial.net TypeConfuseDelegate). The service runs as NT AUTHORITY\SYSTEM, so successful exploitation yields complete host control.

The vendor CVSS of 9.8 CRITICAL is technically accurate for the raw vulnerability mechanics — unauthenticated, no user interaction, full CIA impact. However, it overstates real-world risk for most enterprises. BarTender is label-printing software deployed on internal print servers in manufacturing, logistics, and healthcare environments. TCP 7375 is almost never internet-facing; Shodan and Censys show no meaningful internet exposure footprint. The realistic attack scenario requires an adversary already positioned on the internal network. That said, once inside, exploitation is trivial — public tooling exists (ExploitRemotingService, ysoserial.net, RemotingClient_MBRO.exe), no credentials are needed, and you land as SYSTEM on a server that often holds database connection strings to ERP/WMS backends. The vendor severity is directionally correct but deserves a one-notch downgrade to HIGH given the internal-only realistic exposure.

"Unauthenticated SYSTEM shell on your label server, but only from inside the fence"
02 · The Attack Path

5 steps from start to impact.

STEP 01

Gain internal network access

The attacker must first establish a foothold on the internal network where the BarTender server resides. This could come via phishing, VPN compromise, or an adjacent compromised host. BarTender print servers typically sit on manufacturing floor or warehouse segments, which may have weaker segmentation than core IT.
Conditions required:
  • Internal network access to the subnet hosting the BarTender server
  • TCP connectivity to port 7375 on the target host
Where this breaks in practice:
  • Requires prior compromise — the attacker is already past the perimeter
  • Network segmentation may isolate OT/print-server VLANs from general user segments
  • Host-based firewalls may block inbound 7375 (though BarTender's installer often opens it)
Detection/coverage: Network IDS rules for .NET Remoting binary protocol on non-standard ports. Zeek/Suricata signatures for BinaryFormatter traffic on TCP 7375.
STEP 02

Enumerate the .NET Remoting endpoint

The attacker scans for TCP 7375 and confirms the presence of a .NET Remoting channel. Tools like ExploitRemotingService by James Forshaw (tyranid) can probe the endpoint to enumerate registered objects. The endpoint names are well-documented: BarTenderSystem for 2016, DataServiceSingleton for 2019.
Conditions required:
  • TCP 7375 is open and responding
  • Target runs an affected BarTender version (2010/2016/2019)
Where this breaks in practice:
  • Port scanning may trigger IDS/NDR alerts
  • BarTender 2021+ binds to localhost only, narrowing the target set
Detection/coverage: Port scan detection via NDR (Darktrace, Vectra, ExtraHop). Asset inventory correlation — BarTender servers should be known assets.
STEP 03

Send malicious deserialization payload

Using ysoserial.net to generate a TypeConfuseDelegate or similar BinaryFormatter gadget chain, the attacker sends the serialized payload via ExploitRemotingService to the unauthenticated endpoint. Because TypeFilterLevel is set to Full, arbitrary types are deserialized without restriction. No credentials, tokens, or session cookies are required.
Conditions required:
  • Windows attacker workstation with .NET Framework (tools are .NET-native)
  • Knowledge of the endpoint name (publicly documented)
Where this breaks in practice:
  • Defender EDR on the BarTender host may detect ysoserial gadget patterns at the process-creation level
  • Application-layer inspection of .NET Remoting traffic is rare but possible
Detection/coverage: EDR detection of child processes spawned by BtSystem.Service.exe (e.g., cmd.exe, powershell.exe). Sysmon Event ID 1 process creation with unusual parent. Carbon Black, CrowdStrike, and SentinelOne have detections for ysoserial gadget chains.
STEP 04

Execute as NT AUTHORITY\SYSTEM

The deserialized payload executes in the context of BtSystem.Service.exe, which runs as NT AUTHORITY\SYSTEM. The attacker now has unrestricted local access: credential dumping (LSASS), lateral movement, persistence via scheduled tasks or services, and access to any database connection strings stored in BarTender configuration files.
Conditions required:
  • Successful deserialization in step 3
Where this breaks in practice:
  • EDR should detect post-exploitation behaviors (credential dumping, lateral movement)
  • Credential Guard / LSA protection can limit LSASS harvesting on modern Windows
Detection/coverage: EDR behavioral detections for LSASS access, pass-the-hash, service installation. Windows Event Log 4688 (process creation) and 4624 (logon events) from the SYSTEM context of BtSystem.Service.exe.
STEP 05

Pivot to ERP/database backends (optional)

BarTender Enterprise deployments commonly integrate with SAP, Oracle, or MSSQL backends. Connection strings in BarTender configuration files or Windows Credential Manager may provide direct database access. On manufacturing-floor networks with flat segmentation, the compromised SYSTEM shell can reach OT-adjacent systems.
Conditions required:
  • BarTender server has stored database credentials
  • Network allows lateral movement from the print-server segment
Where this breaks in practice:
  • Properly segmented OT networks block this pivot
  • Database credentials may use Windows Integrated Auth limited to the machine account
  • PAM solutions may rotate or vault these credentials
Detection/coverage: Database audit logs for unexpected connections from the BarTender server IP. NDR alerts for east-west traffic from print-server VLAN to database tier.
03 · Compensating Control

1
HIGH 8.1→LOW 3.1
SEVERITY REDUCED
Block TCP 7375 at the host firewall or network segment boundary — Create a Windows Firewall rule or network ACL that blocks all inbound connections to TCP 7375 except from explicitly authorized management hosts. This eliminates the network-reachable attack vector entirely. Deploy within 30 days per the noisgate mitigation SLA for HIGH severity. Verify with Test-NetConnection -ComputerName <bartender-host> -Port 7375 from a non-authorized host.
2
HIGH 8.1→IGNORE 0.0
SEVERITY REDUCED
Upgrade to BarTender 12.1 — BarTender 12.1 (released August 14, 2026) fully remediates both CVE-2026-25550 and CVE-2026-25551. This is the definitive fix. Deploy within 180 days per the noisgate remediation SLA for HIGH severity. Test label-printing workflows and ERP integrations in a staging environment before production rollout, as the jump from 2016/2019 to 12.1 is a major version upgrade.
3
HIGH 8.1→HIGH 7.0
Deploy EDR monitoring rules for BtSystem.Service.exe child processes — Configure your EDR (CrowdStrike, SentinelOne, Defender for Endpoint) to alert on any child process spawned by BtSystem.Service.exe, especially cmd.exe, powershell.exe, certutil.exe, or any unsigned binary. This does not prevent exploitation but provides near-real-time detection of post-exploitation activity. Deploy immediately as a detection layer while awaiting patching.
4
HIGH 8.1→MEDIUM 5.5
SEVERITY REDUCED
Isolate BarTender servers into a dedicated print-server VLAN — Network-segment BarTender hosts into a restricted VLAN with ACLs that permit only necessary traffic: inbound print jobs from application servers, outbound database queries to specific DB hosts, and management access from jump boxes. Deny all other east-west traffic. This limits the attacker population that can reach port 7375 and constrains post-exploitation lateral movement.
What doesn't work
  • WAF or reverse proxy — the .NET Remoting protocol on TCP 7375 is a raw binary TCP channel, not HTTP. Web application firewalls cannot inspect or filter this traffic.
  • Disabling the BtSystem.Service.exe service — this is the core BarTender system service. Stopping it breaks all label printing functionality, making it operationally unacceptable as a mitigation.
  • Windows Defender Application Control (WDAC) / AppLocker — these control which executables can run but do not prevent deserialization within an already-allowed process (BtSystem.Service.exe itself is a legitimate signed binary).
04 · Intelligence Metadata

The supporting signals.

In-the-Wild ExploitationNo known exploitation. Not listed in CISA KEV. No GreyNoise or Shadowserver tags observed. No ransomware campaign associations reported as of September 2026.
Proof-of-ConceptPublic PoC available. Researchers Victor A. Morales and Jan Rodriguez (GM Sectec) published a detailed Gist with working exploitation steps using RemotingClient_MBRO.exe (derived from Code-White's .NET Remoting research), ExploitRemotingService (tyranid/ExploitRemotingService), and ysoserial.net. Not indexed on pocindex.io at time of review.
EPSS0.01424 (1.42%) — places this in roughly the 56th percentile. Moderate probability of exploitation in the next 30 days, reflecting the niche install base but trivial exploitation mechanics.
KEV StatusNot listed. No CISA KEV entry as of 2026-09-30.
CVSS VectorCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H — 9.8. Network-accessible, no auth, no interaction, full CIA impact. Vendor also published CVSS 4.0 score of 9.3. The AV:N is technically correct (binds 0.0.0.0) but overstates internet reachability.
Affected VersionsBarTender 2010 ≤ 10.1 R4, 2016 ≤ R9, 2019 ≤ R10. Note: BarTender 2021 R1+ bound the service to localhost, eliminating the remote vector (but introduced CVE-2026-25551 for local privilege escalation).
Fixed VersionBarTender 12.1 (released August 14, 2026). BarTender 12.0.1 partially addresses the issue. Full remediation requires 12.1.
Internet ExposureNegligible. No significant Shodan/Censys/FOFA results for TCP 7375 or .NET Remoting BarTender banners. BarTender is internal label-printing infrastructure — not designed or typically deployed internet-facing.
Install BaseSeagull Software claims 250,000+ organizations use BarTender globally, primarily in manufacturing, logistics, healthcare, and retail for barcode/label printing. However, the vulnerable 2010/2016/2019 versions represent the legacy tail — many have migrated to 2021+ or 12.x.
Researcher / DisclosureDiscovered by Victor A. Morales and Jan A. Rodriguez of GM Sectec, Corp. Coordinated disclosure published June 3-4, 2026. VulnCheck published a parallel advisory.

Sources.

  1. GM Sectec Researcher Disclosure (VAMorales Gist)
  2. VulnCheck Advisory - BarTender Unauthenticated RCE
  3. CyberStrike CVE Detail
  4. ExploitRemotingService - James Forshaw (tyranid)
  5. Code White - .NET Remoting Revisited
  6. TheHackerWire - BarTender .NET Remoting RCE
  7. OpenCVE - CVE-2026-25550
  8. Seagull Software BarTender Official Site
05 · The Call

Final Verdict
↓ DOWNGRADED to HIGH (8.1/10)

Why this verdict

  • Internal-network prerequisite: TCP 7375 has zero meaningful internet exposure. Exploitation requires the attacker to already be positioned inside the corporate network, implying a prior compromise stage. This compounding prerequisite drops the realistic severity below CRITICAL.
  • Trivial exploitation once positioned: Despite the network prerequisite, once inside, exploitation is zero-click, zero-auth, and fully tooled with public PoC code (ExploitRemotingService, ysoserial.net, RemotingClient_MBRO.exe). The endpoint names are documented. This keeps the verdict firmly at HIGH, not MEDIUM.
  • SYSTEM-level impact with database pivot potential: The service runs as NT AUTHORITY\SYSTEM. BarTender Enterprise servers store database connection strings to ERP/WMS backends (SAP, Oracle, MSSQL). Compromise yields not just host control but potential access to production data stores.
  • Role multiplier: BarTender is NOT a canonical high-value-role component (not an IdP, hypervisor, CI/CD, or backup system). Its primary role is line-of-business label printing. However, in its *typical* deployment (dedicated print server on manufacturing/warehouse floor), it often sits on less-segmented networks with OT adjacency and holds database credentials. The blast radius is host-level with potential pivot to database tier — significant but not fleet-scale or identity-scale. This keeps the floor at HIGH but does not elevate to CRITICAL.
  • No active exploitation or KEV listing: EPSS at 1.42% and no KEV listing confirm this is not currently being weaponized at scale. The niche install base further limits attacker ROI compared to broadly deployed software.
  • Legacy version tail: Only BarTender 2010, 2016, and 2019 are affected. BarTender 2021+ bound the endpoint to localhost, eliminating the remote vector. Organizations still running these versions likely have other patch-debt issues compounding the risk.

Why not higher?

CRITICAL would require either internet-facing exposure (absent here) or a canonical high-value-role deployment where the blast radius is fleet-scale or identity-scale. BarTender is label-printing software — compromise of a print server is operationally painful but does not directly yield domain takeover, fleet compromise, or supply-chain pivot. The internal-network prerequisite adds a real friction barrier that compounds with the niche install base.

Why not lower?

MEDIUM would understate the risk. Once an attacker has internal network access (a given in most breach scenarios), exploitation is completely unauthenticated, requires no user interaction, uses publicly available tooling, and lands a SYSTEM shell. The server's database integration means the blast radius extends beyond the host. Any vulnerability that gives unauthenticated SYSTEM-level RCE with public tooling from the internal network stays at HIGH minimum.

06 · Verification

Crowdsourced verification payload.

Run this script on each suspected BarTender host as a local administrator. It checks whether BtSystem.Service.exe is running, whether TCP 7375 is listening on non-localhost interfaces, and whether the installed BarTender version falls within the vulnerable range. Example: .\Check-CVE-2026-25550.ps1

noisgate-verify.ps1
POWERSHELLREAD-ONLYSAFE
#Requires -RunAsAdministrator
<#
.SYNOPSIS
    Check-CVE-2026-25550.ps1 - Detect vulnerable BarTender .NET Remoting exposure
.DESCRIPTION
    Checks for BtSystem.Service.exe listening on TCP 7375 on non-localhost
    interfaces and verifies BarTender version against affected ranges.
    Exit codes: 1=VULNERABLE, 0=PATCHED, 2=UNKNOWN
#>

$exitCode = 2
$status = "UNKNOWN"

try {
    # Check if BtSystem.Service.exe is running
    $svc = Get-Process -Name "BtSystem.Service" -ErrorAction SilentlyContinue
    if (-not $svc) {
        Write-Host "[INFO] BtSystem.Service.exe is not running on this host."
        Write-Host "UNKNOWN - BarTender service not detected"
        exit 2
    }

    # Check TCP 7375 listeners
    $listeners = Get-NetTCPConnection -LocalPort 7375 -State Listen -ErrorAction SilentlyContinue
    $externalListener = $listeners | Where-Object {
        $_.LocalAddress -ne "127.0.0.1" -and $_.LocalAddress -ne "::1"
    }

    # Get BarTender version from the executable
    $btPath = $svc.Path
    if (-not $btPath) {
        $btPath = (Get-WmiObject Win32_Process -Filter "Name='BtSystem.Service.exe'").ExecutablePath
    }

    $version = $null
    if ($btPath -and (Test-Path $btPath)) {
        $fileInfo = Get-Item $btPath
        $version = $fileInfo.VersionInfo.ProductVersion
        Write-Host "[INFO] BarTender version detected: $version"
        Write-Host "[INFO] Path: $btPath"
    }

    # Check registry for version info as fallback
    if (-not $version) {
        $regPaths = @(
            "HKLM:\SOFTWARE\Seagull Scientific\BarTender",
            "HKLM:\SOFTWARE\WOW6432Node\Seagull Scientific\BarTender"
        )
        foreach ($rp in $regPaths) {
            if (Test-Path $rp) {
                $version = (Get-ItemProperty $rp -ErrorAction SilentlyContinue).Version
                if ($version) {
                    Write-Host "[INFO] BarTender version from registry: $version"
                    break
                }
            }
        }
    }

    # Determine vulnerability status
    if ($externalListener) {
        Write-Host "[ALERT] TCP 7375 is listening on non-localhost: $($externalListener.LocalAddress -join ', ')"
        Write-Host "[ALERT] .NET Remoting endpoint is network-accessible without authentication."
        $status = "VULNERABLE"
        $exitCode = 1
    } elseif ($listeners) {
        Write-Host "[INFO] TCP 7375 is listening on localhost only (2021+ behavior)."
        Write-Host "[INFO] Remote exploitation vector is NOT present (CVE-2026-25550 not applicable)."
        Write-Host "[INFO] Check CVE-2026-25551 for local privilege escalation if version < 12.1."
        $status = "PATCHED"
        $exitCode = 0
    } else {
        Write-Host "[INFO] TCP 7375 is not listening."
        $status = "PATCHED"
        $exitCode = 0
    }
} catch {
    Write-Host "[ERROR] $_"
    $status = "UNKNOWN"
    $exitCode = 2
}

Write-Host ""
Write-Host "Result: $status"
exit $exitCode