← Back to Feed CACHED · 2026-05-17 09:42:19 · cache_key CVE-2025-29912
CVE-2025-14772 · CWE-639 · Disclosed 2026-06-03

Authorization bypass through User-Controlled key vulnerability in ABB T-MAC Plus

ASSESSED — NOISGATE V0.5
Vendor
Reassessed
Verdict:
01 · The Real Story

This is a master-key mix-up inside the guard booth, not a crowbar through the front gate

CVE-2025-14772 is a broken access control flaw in the ABB T-MAC Plus web application where a low-privilege authenticated user can perform administrative operations. ABB’s advisory says T-MAC Plus 4.0-24 is affected and 4.0-25 fixes it; the vulnerable surface is the web application in a terminal management system used for oil, gas, and chemical operations, with supporting field-device integrations such as card readers and access-control workflows.

ABB’s 8.8/HIGH score is technically defensible in a lab because the flaw can lead to high C/I/A impact inside the application. In real enterprise deployments, though, the exploit chain starts with two heavy friction points: the attacker must already have network reachability to the T-MAC Plus system and must already possess a valid low-privilege account. For a niche OT product that should live on segmented operations networks, that makes this more of a *post-initial-access privilege escalation inside a terminal* than a broad remote compromise event.

"Serious once an attacker is inside, but this is an authenticated OT web-app privilege flaw, not an internet-breaker."
02 · The Attack Path

4 steps from start to impact.

STEP 01

Reach the T-MAC Plus web tier

The attacker first needs IP connectivity to the T-MAC Plus web application, which ABB describes as part of the terminal management environment and backed by IIS. This is not a spray-the-internet bug unless the site is badly exposed; in most sane deployments, reachability means the attacker is already on the OT network, on a jump host, or connected through approved remote access.
Conditions required:
  • Network path to the T-MAC Plus web application
  • Routing/firewall access into the terminal operations segment
Where this breaks in practice:
  • T-MAC Plus is a specialized OT application, not a mass-deployed internet SaaS target
  • ABB explicitly recommends minimizing network exposure and isolating these systems
  • Many environments place terminal systems behind VPNs, jump hosts, or plant firewalls
Detection/coverage: External scanners may find the web service, but they will not prove this authz flaw without valid credentials and workflow-aware testing.
STEP 02

Log in as a low-privilege user

The flaw is not unauthenticated. The attacker must authenticate as a user in a lower-privilege class such as a customer or operator-equivalent role, then abuse authorization weaknesses to invoke admin-level actions.
Conditions required:
  • A valid T-MAC Plus account with low privileges
  • Ability to authenticate to the application
Where this breaks in practice:
  • Requires stolen credentials, weak account governance, or insider access
  • MFA, PAM-backed jump workflows, and account review reduce reachable population
  • In many terminals, customer/driver-facing flows may be narrower than full operator access
Detection/coverage: IAM logs, IIS logs, and application audit logs should show successful logons; generic vuln scanners usually miss role-abuse issues unless authenticated plugins exist.
STEP 03

Abuse the user-controlled key / IDOR-style authorization gap

After login, the attacker manipulates requests so the application trusts a user-controlled identifier or object reference and executes administrative functions without proper server-side privilege checks. This is classic CWE-639 territory: the app confuses 'knows the right key or object' with 'is allowed to perform the action.'
Conditions required:
  • Knowledge of reachable admin functions or object identifiers
  • Ability to replay/modify authenticated HTTP requests with tooling such as Burp Suite or browser dev tools
Where this breaks in practice:
  • The attacker still needs to understand app workflows and which endpoints map to privileged functions
  • Well-instrumented apps may generate mismatched role/action events
  • This is business-logic abuse, so commodity worming is less likely than targeted operator misuse
Detection/coverage: DAST with authenticated role-differentiated testing can catch this. Most signature scanners and perimeter controls will not reliably detect it because the requests look like normal authenticated app traffic.
STEP 04

Execute administrative operations with operational impact

Once admin actions are accepted, the attacker can change privileged settings or manipulate terminal management data and workflows. In a terminal environment, that can mean disruption to access-control processes, product movement workflows, or operator visibility, which is why the technical impact is still meaningful even though the initial path is constrained.
Conditions required:
  • Successful privilege bypass
  • Admin functions exposed through the web application
Where this breaks in practice:
  • Blast radius is bounded to the T-MAC Plus tenant/site and surrounding workflows, not arbitrary domain-wide takeover
  • Process impact depends on how tightly the plant relies on this app for access control and dispatch operations
Detection/coverage: Look for role anomalies: low-privilege accounts invoking admin URLs, unusual POSTs to privileged endpoints, and configuration changes from non-admin identities.
03 · Intelligence Metadata

The supporting signals.

In-the-wild statusNo public exploitation evidence located in ABB’s advisory, and ABB states it had no information indicating exploitation when the advisory was issued on 2026-06-03.
KEV statusNot listed in CISA KEV at time of review.
PoC availabilityNo public PoC located during this review. That lowers opportunistic pressure, though any tester with valid credentials and a proxy like Burp Suite can likely reproduce it once they understand the workflow.
EPSS0.00039 (user-supplied intel). That is extremely low and consistent with a niche, authenticated OT application flaw rather than a broadly weaponized internet bug.
CVSS vectorCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H — translation: *easy to execute once you already have access and credentials*, but PR:L is the key down-pressure term here.
Affected versionsABB lists T-MAC Plus 4.0-24 as known affected for this CVE.
Fixed versionABB lists T-MAC Plus 4.0-25 as the vendor fix.
Disclosure timelinePublic ABB advisory published 2026-06-03. Note the CVE year is 2025, but the vendor disclosure date is June 3, 2026.
ReporterABB credits Angelo Catalani of the Italian National Cybersecurity Agency (ACN) for responsible disclosure input on the advisory.
Exposure / scanning telemetryNo product-specific GreyNoise, Shodan, or Censys telemetry was located during this review for T-MAC Plus. That does *not* mean zero exposure; it means there is no public evidence this niche product is being broadly fingerprinted or mass-scanned.
04 · The Call

noisgate verdict.

Final Verdict
DOWNGRADED to MEDIUM (6.1/10)

The decisive factor is authenticated, post-reachability exploitation on a niche OT web application. This is dangerous *after* an attacker is in the terminal network with a valid account, but it is not the kind of bug that usually drives broad internet-scale compromise by itself.

HIGH Affected/fixed version mapping from ABB CSAF
HIGH No KEV listing at time of review
MEDIUM Real-world exposure assumptions for typical segmented OT deployments
MEDIUM Absence of public PoC / public exploitation evidence

Why this verdict

  • Downgrade for attacker position: the vendor starts at 8.8, but exploitation requires network access to the T-MAC Plus environment, which usually implies OT foothold, jump-host access, or a misexposed plant app.
  • Downgrade for authentication: PR:L matters in the real world. Requiring a valid low-privilege account compounds the friction because the attacker needs credential theft, insider access, or prior compromise.
  • Downgrade for exposure population: T-MAC Plus is a specialized terminal management platform, not a commodity edge appliance. The exposed population is materially smaller than the average product implied by a raw CVSS network score.
  • Keep it above LOW for impact: once the chain lands, the attacker can perform administrative actions in a system tied to terminal access control and operations, so this is not mere nuisance-level misuse.
  • No exploit pressure amplifier: no KEV, no public exploitation evidence from ABB, and a very low EPSS all argue against retaining HIGH absent local exposure evidence in your estate.

Why not higher?

This is not unauthenticated remote compromise, and it is not a broad pre-auth edge flaw. The attacker must already be able to reach the application and already possess a valid account, which makes it a classic *inside-the-fence* escalation problem.

Why not lower?

The vulnerability still enables administrative operations from a low-privilege starting point inside an OT application that can affect terminal workflows. If you run T-MAC Plus in production, the operational consequences are substantial enough that this should not be treated as backlog trivia.

05 · Compensating Control

What to do — in priority order.

  1. Restrict app reachability — Constrain T-MAC Plus web access to dedicated operator/admin source networks, jump hosts, and approved remote-access paths only. For a MEDIUM verdict there is no mitigation SLA; do this in the next normal network change window while you drive remediation inside the 365-day window.
  2. Cull low-privilege accounts — Review customer, contractor, and dormant low-privilege accounts because this flaw depends on a valid authenticated identity. Remove unused accounts and tighten role assignment during the next IAM review cycle; for MEDIUM, there is no mitigation SLA, but this sharply reduces reachable exploit population.
  3. Alert on role/action mismatches — Create detections for low-privilege users invoking admin endpoints or performing configuration-changing actions. This is the best interim tripwire for an authz bug that looks like legitimate application traffic; deploy in the next logging/content update cycle.
  4. Front the app with strong access control — If remote access is necessary, force access through MFA-protected VPN or brokered admin access rather than direct flat-network reachability. That does not fix the flaw, but it raises the cost of obtaining the prerequisite authenticated foothold.
What doesn't work
  • Password rotation alone doesn't fix broken server-side authorization; a legitimate low-privilege account can still exploit it.
  • Perimeter WAF signatures alone are weak here because the exploit can look like normal authenticated business traffic with altered object references.
  • Unauthenticated vulnerability scans will often miss this class entirely because the bug only manifests after login with role-aware workflow testing.
06 · Verification

Crowdsourced verification payload.

Run this on the Windows host that runs T-MAC Plus / IIS, or via your endpoint management tool in remote PowerShell. Example: powershell -ExecutionPolicy Bypass -File .\check-tmacplus-cve-2025-14772.ps1 from an elevated shell; local admin helps for full registry/file coverage, but standard user often works.

noisgate-verify.ps1
POWERSHELLREAD-ONLYSAFE
# check-tmacplus-cve-2025-14772.ps1

# Detects ABB T-MAC Plus version and assesses exposure to CVE-2025-14772.

# Output: VULNERABLE / PATCHED / UNKNOWN

# Exit codes: 1=VULNERABLE, 0=PATCHED, 2=UNKNOWN


$ErrorActionPreference = 'SilentlyContinue'

function Get-UninstallEntries {
    $paths = @(
        'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*',
        'HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*',
        'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*'
    )
    foreach ($p in $paths) {
        Get-ItemProperty $p | Where-Object { $_.DisplayName }
    }
}

function Parse-TmacVersion([string]$v) {
    if ([string]::IsNullOrWhiteSpace($v)) { return $null }
    if ($v -match '^(\d+)\.(\d+)-(\d+)$') {
        return [pscustomobject]@{ Major=[int]$matches[1]; Minor=[int]$matches[2]; Build=[int]$matches[3]; Raw=$v }
    }
    if ($v -match '^(\d+)\.(\d+)\.(\d+)$') {
        return [pscustomobject]@{ Major=[int]$matches[1]; Minor=[int]$matches[2]; Build=[int]$matches[3]; Raw=$v }
    }
    return $null
}

function Compare-TmacVersion($a, $b) {
    foreach ($k in @('Major','Minor','Build')) {
        if ($a.$k -lt $b.$k) { return -1 }
        if ($a.$k -gt $b.$k) { return 1 }
    }
    return 0
}

$targetFixed = Parse-TmacVersion '4.0-25'
$found = @()

# Registry-based detection

$entries = Get-UninstallEntries | Where-Object {
    $_.DisplayName -match 'T-?MAC\s*Plus' -or $_.Publisher -match '^ABB'
}
foreach ($e in $entries) {
    $ver = Parse-TmacVersion $e.DisplayVersion
    $found += [pscustomobject]@{
        Source = 'Registry'
        Name   = $e.DisplayName
        Version= $e.DisplayVersion
        Parsed = $ver
        Path   = $e.InstallLocation
    }
}

# Fallback file search in common locations

$searchRoots = @(
    $env:ProgramFiles,
    ${env:ProgramFiles(x86)},
    'C:\inetpub\wwwroot',
    'C:\inetpub'
) | Where-Object { $_ -and (Test-Path $_) }

foreach ($root in $searchRoots) {
    Get-ChildItem -Path $root -Recurse -File -Include '*.exe','*.dll','web.config' -ErrorAction SilentlyContinue |
        Where-Object { $_.FullName -match 'T-?MAC|TMAC' } |
        Select-Object -First 20 |
        ForEach-Object {
            $fv = $_.VersionInfo.ProductVersion
            $ver = Parse-TmacVersion $fv
            $found += [pscustomobject]@{
                Source = 'File'
                Name   = $_.Name
                Version= $fv
                Parsed = $ver
                Path   = $_.FullName
            }
        }
}

# Deduplicate noisy results

$found = $found | Sort-Object Source,Name,Version,Path -Unique

if (-not $found -or $found.Count -eq 0) {
    Write-Output 'UNKNOWN: ABB T-MAC Plus not confidently detected on this host.'
    Write-Output 'UNKNOWN'
    exit 2
}

# Prefer explicit registry product version if present

$best = $found | Where-Object { $_.Parsed -ne $null } | Select-Object -First 1
if (-not $best) {
    Write-Output 'UNKNOWN: T-MAC Plus artifacts found, but version could not be parsed.'
    $found | ForEach-Object { Write-Output ("HINT: {0} | {1} | {2}" -f $_.Source,$_.Name,$_.Path) }
    Write-Output 'UNKNOWN'
    exit 2
}

$cmp = Compare-TmacVersion $best.Parsed $targetFixed
Write-Output ("Detected: {0} version {1} via {2}" -f $best.Name,$best.Parsed.Raw,$best.Source)

if ($cmp -lt 0) {
    Write-Output 'Assessment: Version is older than 4.0-25 and should be treated as affected by CVE-2025-14772.'
    Write-Output 'VULNERABLE'
    exit 1
}
elseif ($cmp -ge 0) {
    Write-Output 'Assessment: Version is 4.0-25 or newer.'
    Write-Output 'PATCHED'
    exit 0
}
else {
    Write-Output 'UNKNOWN'
    exit 2
}
07 · Bottom Line

If you remember one thing.

TL;DR
Monday morning, find every T-MAC Plus 4.0-24 instance, verify who can reach the web tier, and review whether any low-privilege customer/operator accounts still exist that do not need access. Because this is MEDIUM and there is no mitigation SLA — go straight to the 365-day remediation window, use the noisgate mitigation SLA language only to document that none applies here, then complete upgrade planning and move affected nodes to 4.0-25 within the noisgate remediation SLA of 365 days; if you discover any internet exposure or shared credentials, accelerate well ahead of that window.

Sources

  1. ABB Cyber security alerts and notifications
  2. ABB CSAF advisory 9AKK108472A7840
  3. ABB T-MAC Plus Access Control leaflet
  4. CISA Known Exploited Vulnerabilities Catalog
  5. FIRST EPSS overview
  6. FIRST EPSS data and statistics
Peer Review

What defenders are saying.

Submit a review attribution: handle + country only
0 flags selected · stored anonymously
Validation Results

Crowdsourced verification outputs.

Results submitted by users who ran the verification payload against their environment.