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

CVE-2025-32881

CVE-2025-32881 Supply Chain Attack in Gotenna
📅 PUBLISHED: 2025-05-01 00:00 UTC 🔄 UPDATED: 2026-08-21 19:30 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.08%
👁️
0.08% probability
2.1× above the median CVE
Tier: LOW
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1083
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
VULNERABLE: UNKNOWN / CHECK VENDOR
CVSS VECTOR BREAKDOWN 4.3
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: L Confidentiality Low
I: N Integrity None
A: N Availability None
4.3
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-32881 exposes a critical privacy flaw in goTenna v1 devices running app version 5.5.3 and firmware 0.25.5. By default, the Group ID (GID) in messages is set to the user’s phone number unless the user explicitly opts out. Since the GID is transmitted unencrypted, an attacker within radio range can intercept messages and directly associate a phone number with a user, enabling deanonymization and potential social engineering attacks. The CVSS score of 4.3 reflects the low attack complexity and network adjacency requirement, but the impact on user privacy is significant. No public exploit code or patch is currently available.

⚡ 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 NPM, PyPI, Go, or Ruby packages. It is a hardware/firmware issue in the goTenna v1 device ecosystem.

CVSS Breakdown & Threat Level

  • Attack Vector (AV): Adjacent Network (AV:A) – attacker must be within radio range of the goTenna device.
  • Attack Complexity (AC): Low (AC:L) – no special conditions required.
  • Privileges Required (PR): None (PR:N) – no authentication needed.
  • User Interaction (UI): None (UI:N) – no user action required.
  • Scope (S): Unchanged (S:U) – the vulnerability does not affect other components.
  • Confidentiality (C): Low (C:L) – only the GID (phone number) is exposed.
  • Integrity (I): None (I:N) – no data modification.
  • Availability (A): None (A:N) – no denial of service.

Threat Level: Medium. While the CVSS score is 4.3, the exposure of personally identifiable information (PII) like phone numbers elevates the risk for targeted attacks and privacy violations.

Deep Dive & Mechanics

The goTenna v1 device uses a mesh networking protocol to send messages between users. Each message includes a Group ID (GID) field that identifies the sender’s group. The vulnerability arises because:

  1. Default Configuration: The GID is automatically set to the user’s phone number unless the user manually changes it in the app settings.
  2. Lack of Encryption: The GID is transmitted in plaintext within the message payload. The message content may be encrypted, but the GID is not.
  3. Radio Interception: An attacker with a compatible radio receiver (e.g., another goTenna device or a software-defined radio) can capture messages over the air and extract the GID.

Attack Scenario:

  • An attacker positions themselves within radio range (typically up to a few miles in open terrain).
  • Using a goTenna device or SDR, they capture unencrypted GID fields from messages.
  • The attacker maps phone numbers to users, enabling phishing, SIM swapping, or physical tracking.

Vulnerable vs. Patched Code

Vulnerable Code (goTenna app 5.5.3 / firmware 0.25.5):

# Pseudocode illustrating the default GID assignment
def send_message(content, group_id=None):
    if group_id is None:
        group_id = user.phone_number  # Default to phone number
    packet = build_packet(content, group_id)
    radio.transmit(packet)  # GID is not encrypted

Patched Code (Hypothetical):

def send_message(content, group_id=None):
    if group_id is None:
        group_id = generate_random_gid()  # Use random identifier
    encrypted_gid = encrypt(group_id, session_key)
    packet = build_packet(content, encrypted_gid)
    radio.transmit(packet)

No official patch is available. The vendor has not released a fix.

Exploitation & Lab Setup

Red Team (Offensive)

Prerequisites:

  • A goTenna v1 device with app 5.5.3 and firmware 0.25.5.
  • A second goTenna device or a software-defined radio (e.g., RTL-SDR) to capture messages.
  • A computer with Python and the goTenna library or custom SDR software.

Steps:

  1. Set up the SDR to capture the goTenna frequency (typically 902-928 MHz ISM band).
  2. Use a tool like gr-goTenna or a custom script to decode packets.
  3. Extract the GID field from each packet.
  4. Map GIDs to phone numbers (the GID is the phone number itself).

Example Python script (conceptual):

import radio_lib

def capture_gid():
    packet = radio_lib.receive_packet()
    gid = packet.get_field("GID")
    print(f"Captured GID: {gid}")  # This is the phone number

Blue Team (Defensive)

Detection:

  • Monitor for unusual radio activity on goTenna frequencies.
  • Use spectrum analyzers to detect unauthorized receivers.
  • Educate users to change their GID from the default phone number.

Mitigation:

  • In the goTenna app, navigate to Settings > Group ID and change it to a random string.
  • Enable any available encryption options (though GID encryption is not currently supported).
  • Use goTenna devices only in trusted environments.

Indicators of Compromise (IOCs)

  • Network: Unencrypted GID fields in goTenna messages containing phone numbers.
  • Device: goTenna v1 with app version 5.5.3 and firmware 0.25.5.
  • Behavior: Repeated capture of messages from a specific goTenna device.
  • File: Logs or captures containing phone numbers extracted from GID fields.

Detection Engineering

YARA Rule

rule goTenna_GID_Exposure {
    meta:
        description = "Detects goTenna messages with unencrypted GID (phone number)"
        author = "Valters IT"
        date = "2025-04-10"
        cve = "CVE-2025-32881"
    strings:
        $gid_pattern = /GID:\d{10,15}/  // Matches GID followed by 10-15 digits (phone number)
    condition:
        $gid_pattern
}

Sigma Rule

title: goTenna Unencrypted GID Detection
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects goTenna messages where the GID field contains a phone number (unencrypted)
author: Valters IT
date: 2025-04-10
logsource:
    category: network
    product: goTenna
detection:
    selection:
        - field: GID
          pattern: "^\d{10,15}$"
    condition: selection
falsepositives:
    - Users who intentionally set their GID to a phone number
level: medium

Suricata Rule

alert udp any any -> any any (msg:"goTenna Unencrypted GID Exposure"; content:"|47 49 44|"; offset:0; depth:3; content:"|0d 0a|"; within:20; pcre:"/GID:\d{10,15}/"; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Change Default GID: In the goTenna app, go to Settings > Group ID and set a random, non-identifying string.
  2. User Awareness: Inform all users that their phone number is exposed by default and instruct them to change it.
  3. Monitor for Updates: Check the goTenna website or app store for firmware/app updates that may address this issue.

Long-Term Fixes:

  • The vendor should encrypt the GID field in all messages.
  • Provide an option to disable the default phone number GID.
  • Implement a random GID generation feature.

Workarounds:

  • Use goTenna devices only in areas where radio interception is unlikely.
  • Combine with VPN or other encryption for message content (though GID remains exposed).

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.

goTenna
goTenna v1
goTenna app 5.5.3
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2025-32881/ · 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.