How to Fix CVE-2025-0994: Insecure Deserialization in Trimble Cityworks
By Sai Kiran Pandrala
| Severity | CVSS 8.6 (High) |
|---|---|
| Actively exploited? | Yes, listed in CISA KEV (added 2025-02-07, federal due date 2025-02-28) |
| Affected | Cityworks: 0 < version 15.8.9; Cityworks (with office companion): 0 < version 23.10 |
| Fixed in | Cityworks: 15.8.9; Cityworks (with office companion): 23.10 |
| Type (CWE) | CWE-502 — Deserialization of Untrusted Data |
What is CVE-2025-0994?
Trimble Cityworks versions prior to 15.8.9 and Cityworks with office companion versions prior to 23.10 are vulnerable to a deserialization vulnerability. This could allow an authenticated user to perform a remote code execution attack against a customer’s Microsoft Internet Information Services (IIS) web server.
A successful exploit lets a remote attacker run arbitrary code on the target system. The fix is to install the patched build from Trimble listed in the table above and confirm the running version after the upgrade.
Am I affected?
Check your installed version of Trimble Cityworks against the Affected row above. If your build sits within any of those ranges, treat the system as vulnerable until patched.
If you do not have the version handy, pull it the same way you usually would for Cityworks: the management console's About page, the CLI's version command, or the package manager record for the installed binary. The vendor advisory linked in the references section is the authoritative source.
How to fix CVE-2025-0994
- Read the vendor advisory at https://learn.assetlifecycle.trimble.com/i/1532182-cityworks-customer-communication-2025-02-05-docx/0? for the build matrix that matches your installation.
- Identify the patched build for your major version: Cityworks: 15.8.9; Cityworks (with office companion): 23.10.
- Back up configuration before upgrading (export running config, snapshot the VM, or take a database dump as appropriate for your platform).
- Apply the patched build using the vendor's documented upgrade path (in-place upgrade, package update, or replacement image).
- Restart the service so the new code is loaded; verify the running version reports the patched build number.
Apply the Microsoft security update
# The exact KB number is listed in the Microsoft advisory: https://learn.assetlifecycle.trimble.com/i/1532182-cityworks-customer-communication-2025-02-05-docx/0?
# Confirm the patch is missing on this host
Get-Hotfix -Id <KB-from-advisory> -ErrorAction SilentlyContinue
# Install the rollup that ships the fix
Install-Module PSWindowsUpdate -Force -SkipPublisherCheck
Import-Module PSWindowsUpdate
Get-WindowsUpdate -KBArticleID <KB-from-advisory> -AcceptAll -Install -AutoReboot
# Verify the patch is now present
Get-Hotfix -Id <KB-from-advisory>
# Inventory missing patches across a Windows fleet via Ansible (winrm)
ansible windows -m win_updates -a "category_names=SecurityUpdates state=installed"
Verify the fix landed
# 1. Confirm the running version matches the fixed-in version from the advisory:
# https://learn.assetlifecycle.trimble.com/i/1532182-cityworks-customer-communication-2025-02-05-docx/0?
# Use the platform-specific version probe above.
# 2. Re-scan with your vulnerability scanner (Nessus, Qualys, Tenable, OpenVAS).
# The scanner should no longer flag CVE-2025-0994 on the patched target.
# 3. Inspect recent service / kernel logs for crash loops or rollback events.
journalctl -u <service> --since "10 minutes ago"
dmesg --since "10 minutes ago"
If you can't patch immediately
Check the vendor advisory's "Workarounds" section. If the advisory lists no official workaround, patching is the only remediation. Compensating controls that reduce attack surface in the meantime: restrict network access to the management interface to a small admin allowlist, disable the affected feature if it is not in use, and monitor the relevant logs for the exploitation patterns referenced in the advisory.
How to verify the fix worked
- Confirm the running version matches the patched build from the vendor advisory.
- Re-run your vulnerability scanner; the CVE should clear.
- Review logs from before the patch for the exploitation signatures described in the advisory, and treat any matches as a possible compromise (rotate credentials, isolate the host, full IR).
Frequently asked questions
Related fixes
Other vulnerabilities in the same area that are worth patching alongside this one:
- How to Fix CVE-2025-27920: Path Traversal: '../filedir' in Srimax Output Messenger — Path Traversal: '../filedir' in Srimax Output Messenger
- How to Fix CVE-2025-47812: Input Validation Flaw in Wing FTP Server , Input Validation Flaw in Wing FTP Server
- How to Fix CVE-2025-9242: Command Injection in Fireware OS , Command Injection in Fireware OS
- How to Fix CVE-2025-36157: CWE-863 Incorrect Authorization in Engineering Lifecycle Management , CWE-863 Incorrect Authorization in Engineering Lifecycle Management
- How to Fix CVE-2025-2000: CWE-502 Deserialization of Untrusted Data in Qiskit SDK , CWE-502 Deserialization of Untrusted Data in Qiskit SDK
Is CVE-2025-0994 being exploited right now?
Yes. It is listed in the CISA Known Exploited Vulnerabilities catalog (added 2025-02-07), which means CISA has evidence of active exploitation.
What is the CVSS score for CVE-2025-0994?
CVSS 8.6 (High). Use this with your own asset exposure to set patching priority (internet-exposed systems first).
Do I need to take the system offline to patch?
It depends on the platform. Many appliances support hitless upgrade in HA pairs (upgrade standby, fail over, upgrade primary). Servers and applications usually need a service restart. Plan a maintenance window if HA is not available.
What if my version is not listed as affected?
Cross-check against the vendor advisory linked below. The CVE record reflects the vendor's official affected-products list at publication time; later-discovered variants are added through the same advisory or a follow-up CVE.
References
- Official vendor advisory: https://learn.assetlifecycle.trimble.com/i/1532182-cityworks-customer-communication-2025-02-05-docx/0?
- NVD: https://nvd.nist.gov/vuln/detail/CVE-2025-0994
- CISA KEV catalog: https://www.cisa.gov/known-exploited-vulnerabilities-catalog
- https://www.cisa.gov/news-events/ics-advisories/icsa-25-037-04
*This guide was assembled from the official vendor advisory, NVD record, and CISA KEV listing on 2026-05-25. Always confirm against the vendor advisory before applying changes in production.*