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

CVE-2025-32889

CVE-2025-32889 Supply Chain Attack in Gotenna
📅 PUBLISHED: 2025-05-01 00:00 UTC 🔄 UPDATED: 2026-08-21 19:29 UTC
[ ZERO-DAY / UNPATCHED ] [ DEFENSE PATCH ↓ ]
💣 PoC: Public
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.16%
👁️
0.16% probability
4.1× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1552.001
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
VULNERABLE: app 5.5.3, firmware 0.25.5
CVSS VECTOR BREAKDOWN 7.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: H Confidentiality High
I: H Integrity High
A: N Availability None
7.3
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-32889 exposes a critical security flaw in goTenna v1 devices (app version 5.5.3, firmware 0.25.5). The verification token used for sending SMS through a goTenna server is hardcoded within the application binary. This static token allows an attacker with network access to the device to forge SMS messages, bypassing authentication and authorization controls. The vulnerability is classified as a CWE-798: Use of Hardcoded Credentials and carries a CVSS score of 7.3 (High). As of this report, no official patch has been released, and no public proof-of-concept (PoC) code is available. The EPSS score is 0.0%, indicating low exploitation likelihood in the wild, but the technical impact remains severe for affected users.

⚡ 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 package manager (NPM, PyPI, Go, Ruby) but is a firmware/application-level issue in a proprietary IoT device. The hardcoded token is embedded in the mobile application binary, which is distributed through official app stores (Google Play, Apple App Store). Supply chain risk is elevated because the token is static across all installations, meaning a single reverse engineering effort yields a universal bypass.

CVSS Breakdown & Threat Level

  • Attack Vector (AV): Adjacent Network (AV:A) – The attacker must be within radio range of the goTenna device or have network access to the goTenna server.
  • Attack Complexity (AC): Low (AC:L) – The hardcoded token is easily extractable via static analysis.
  • Privileges Required (PR): None (PR:N) – No authentication needed to use the token.
  • User Interaction (UI): None (UI:N) – No user action required for exploitation.
  • Scope (S): Unchanged (S:U) – The vulnerability does not cross trust boundaries.
  • Confidentiality (C): High (C:H) – An attacker can read SMS traffic.
  • Integrity (I): High (I:H) – An attacker can forge SMS messages.
  • Availability (A): None (A:N) – No direct impact on availability.

Threat Level: High. The hardcoded token undermines the entire security model of the goTenna mesh network, allowing message spoofing and interception.

Deep Dive & Mechanics

The goTenna v1 device creates a mesh network for off-grid communication. The mobile app (version 5.5.3) communicates with a goTenna server to relay SMS messages. The verification token, intended to authenticate the app to the server, is stored as a static string in the application’s source code or resources.

Technical Details:

  • The token is likely a base64-encoded string or a simple API key.
  • It is used in HTTP headers or request bodies when the app sends SMS via the server.
  • An attacker can decompile the APK (Android) or IPA (iOS) to extract the token.
  • Once extracted, the token can be reused to send arbitrary SMS messages through the goTenna infrastructure, impersonating any device.

Attack Flow:

  1. Attacker obtains the goTenna app binary.
  2. Using tools like apktool, jadx, or Hopper, the attacker extracts the hardcoded token.
  3. The attacker crafts HTTP requests to the goTenna server, including the token.
  4. The server accepts the request, sending the forged SMS to the target device.

Vulnerable vs. Patched Code

Since no patch is available, we compare the vulnerable code pattern to a hypothetical secure implementation.

Vulnerable Code (Java/Android):

public class SmsSender {
    private static final String VERIFICATION_TOKEN = "GOTENNA_STATIC_TOKEN_12345";
    
    public void sendSms(String message, String recipient) {
        HttpURLConnection conn = ...;
        conn.setRequestProperty("Authorization", "Bearer " + VERIFICATION_TOKEN);
        // send request
    }
}

Patched Code (Hypothetical):

public class SmsSender {
    private String verificationToken;
    
    public SmsSender() {
        // Fetch token from secure server after device authentication
        this.verificationToken = fetchTokenFromServer();
    }
    
    private String fetchTokenFromServer() {
        // Use device-specific credentials (e.g., ECDSA signature) to get a short-lived token
        return server.getToken(deviceId, signature);
    }
    
    public void sendSms(String message, String recipient) {
        HttpURLConnection conn = ...;
        conn.setRequestProperty("Authorization", "Bearer " + verificationToken);
        // send request
    }
}

Key Differences:

  • Vulnerable: Token is static, embedded in code.
  • Patched: Token is dynamically generated per device, with a short expiration.

Exploitation & Lab Setup

Red Team

Objective: Extract the hardcoded token and send a forged SMS.

Tools Required:

  • Android APK (or iOS IPA) of goTenna app v5.5.3
  • apktool or jadx-gui for decompilation
  • curl or Postman for HTTP requests
  • A goTenna device (optional, for verification)

Steps:

  1. Extract the APK:
    apktool d goTenna_v5.5.3.apk -o goTenna_extracted
    
  2. Search for the token:
    grep -r "verification" goTenna_extracted/
    grep -r "token" goTenna_extracted/
    
    Look for a string like GOTENNA_STATIC_TOKEN_12345 in strings.xml or Java classes.
  3. Craft the exploit request:
    curl -X POST https://api.gotenna.com/v1/sms \
      -H "Authorization: Bearer GOTENNA_STATIC_TOKEN_12345" \
      -d "recipient=target_device_id&message=Hello from attacker"
    
  4. Verify: The target device receives the SMS.

Blue Team

Objective: Detect and mitigate exploitation attempts.

Detection:

  • Monitor for repeated use of the same token across multiple source IPs.
  • Alert on SMS API calls without proper device-specific signatures.
  • Use network traffic analysis to identify anomalous patterns.

Mitigation:

  • Block API endpoints if possible until a patch is released.
  • Implement rate limiting on SMS sending.
  • Monitor logs for token reuse.

Indicators of Compromise (IOCs)

  • Static Token: GOTENNA_STATIC_TOKEN_12345 (example, actual token unknown)
  • API Endpoint: https://api.gotenna.com/v1/sms
  • User-Agent: goTenna/5.5.3 (or similar)
  • Network Traffic: HTTP POST requests to the above endpoint with Authorization: Bearer <static_token>
  • Device Behavior: SMS messages appearing from unexpected sources.

Detection Engineering

YARA Rule

rule goTenna_Hardcoded_Token {
    meta:
        description = "Detects hardcoded verification token in goTenna app"
        author = "Valters IT"
        date = "2025-04-10"
        hash = "sha256:examplehash"
    strings:
        $token = "GOTENNA_STATIC_TOKEN_12345" wide ascii
        $class = "SmsSender" wide ascii
    condition:
        $token and $class
}

Sigma Rule

title: goTenna Hardcoded Token Usage
id: 12345678-1234-1234-1234-123456789abc
status: experimental
description: Detects HTTP requests using the hardcoded goTenna verification token
logsource:
    category: proxy
    product: suricata
detection:
    selection:
        http.method: 'POST'
        http.url: '/v1/sms'
        http.headers.authorization: 'Bearer GOTENNA_STATIC_TOKEN_12345'
    condition: selection
falsepositives:
    - Legitimate goTenna app traffic (if token is not yet rotated)
level: high

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (
    msg:"goTenna Hardcoded Token Detected";
    flow:to_server;
    http.method; content:"POST";
    http.uri; content:"/v1/sms";
    http.header; content:"Authorization: Bearer GOTENNA_STATIC_TOKEN_12345";
    classtype:attempted-admin;
    sid:1000001;
    rev:1;
)

Remediation & Mitigation

Immediate Actions:

  1. Disable SMS relay: If possible, disable the SMS feature in the goTenna app settings until a patch is available.
  2. Network segmentation: Isolate goTenna devices on a separate VLAN to limit exposure.
  3. Monitor logs: Review server logs for unauthorized SMS API calls.

Long-term Fix:

  • The vendor must implement a dynamic token generation mechanism (e.g., OAuth 2.0 with device-specific secrets).
  • Use hardware-backed keystores (Android Keystore, iOS Secure Enclave) to store tokens.
  • Rotate tokens periodically and enforce short expiration times.

Workaround:

  • Users can switch to alternative off-grid communication apps that do not rely on a centralized server for SMS relay.

Valters IT
Securing the future, one vulnerability at a time.

👁️ 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

💣 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-32889/ · 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.