CVE-2026-102713 in NetX Duoinfo

Summary

by MITRE • 09/29/2026

The TFTP server accepts a DATA datagram of any size. The dispatcher rejects datagrams shorter than



four bytes (nxd_tftp_server.c:1037) and nothing anywhere checks an upper bound, in particular not



against the protocol maximum of 4 + NX_TFTP_FILE_TRANSFER_MAX. Two things follow from that one



missing check, both reachable before any authentication because TFTP has none.



The handler passes `nx_packet_length - 4` straight to FileX:



```c



/* addons/tftp/nxd_tftp_server.c:1863, 1889 */



status = nx_packet_copy(packet_ptr, &temp_ptr,

server_ptr -> nx_tftp_server_packet_pool_ptr, NX_WAIT_FOREVER);


...



fx_file_write(&(client_request_ptr -> nx_tftp_client_request_file),

packet_ptr -> nx_packet_prepend_ptr + 4, packet_ptr -> nx_packet_length - 4);


```



`nx_packet_length` is the length of a chain, not of one contiguous buffer, so FileX copies past the



end of the first packet:



```



ERROR: AddressSanitizer: heap-buffer-overflow



READ of size 1280 at 0x621000001108 thread T5

#0 __interceptor_memcpy #1 _fx_utility_memory_copy filex/common/src/fx_utility_memory_copy.c:78


0x621000001108 is 0 bytes to the right of 4104-byte region



```



Those bytes are written into the file the attacker is uploading, and a TFTP read request hands them



back, so this is a memory disclosure with a convenient retrieval channel.



The same datagram also wedges the server. `nx_packet_copy` at :1863 needs



ceil(nx_packet_length / pool_payload) packets and asks for them with NX_WAIT_FOREVER, so when the



attacker sizes the datagram beyond what the pool holds, the server thread suspends and never



returns. A liveness probe after one such datagram times out with the pool at 0 of 12 packets and



the server thread suspended, and no later client is served.



Reject `nx_packet_length > 4 + NX_TFTP_FILE_TRANSFER_MAX` in the DATA branch before either call,



and use a bounded wait rather than NX_WAIT_FOREVER for the copy.

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

Analysis

by VulDB Data Team • 09/29/2026

The Trivial File Transfer Protocol server implementation contains critical vulnerabilities stemming from insufficient input validation and improper handling of packet data structures. Specifically, the dispatcher fails to enforce an upper bound on the size of incoming DATA datagrams, accepting packets of arbitrary length without verifying them against the protocol-defined maximum or internal buffer constraints. This lack of boundary checking allows attackers to exploit two distinct failure modes: a heap-based buffer overflow leading to memory disclosure and a denial-of-service condition caused by resource exhaustion. These flaws are particularly severe because TFTP lacks authentication mechanisms, meaning any network-accessible client can trigger these conditions without prior credentials.

The technical root cause lies in how the server processes packet lengths for file operations. When handling a DATA request, the code calculates the data payload size as `nx_packet_length - 4` and passes this value directly to FileX's write function alongside a pointer derived from the packet buffer. However, `nx_packet_length` represents the total length of a potentially fragmented packet chain rather than the size of a single contiguous memory block. Consequently, when FileX attempts to copy data using standard memory operations like memcpy, it reads beyond the boundaries of the first allocated heap region. This results in a heap-buffer-overflow where the application accesses memory adjacent to the intended buffer. The overwritten or read bytes are subsequently written into the target file on disk and can be retrieved by an attacker via subsequent TFTP read requests, constituting a significant information disclosure vulnerability that may expose sensitive system data or internal structures.

In addition to the security breach involving memory exposure, the same malformed packet triggers a denial-of-service condition through resource exhaustion. The server utilizes `NX_WAIT_FOREVER` when attempting to copy packets from the network pool into temporary storage for processing. If an attacker submits a datagram with a length exceeding the total capacity of the available packet pools, the system request will block indefinitely as it waits for memory that is never freed or made available due to the circular dependency created by the large allocation attempt. This causes the server thread handling TFTP requests to suspend permanently. As evidenced by operational logs showing pool depletion and liveness probe timeouts, this single action can render the entire TFTP service unresponsive, preventing any legitimate clients from uploading or downloading files until the system is restarted or manually reset.

From a classification perspective, these issues align with CWE-120 Buffer Copy without Checking Size of Input which describes the buffer overflow vulnerability, and CWE-400 Uncontrolled Resource Consumption which covers the denial-of-service aspect via resource exhaustion. In terms of attack vectors, this falls under ATT&CK technique T1530 Data from Local System Extraction for the memory disclosure component and T1499 Endpoint Denial of Service for the service disruption caused by hanging threads. The absence of authentication exacerbates these risks as they are remotely exploitable without any prior access privileges.

To mitigate these vulnerabilities, immediate code changes are required to enforce strict size limits on incoming data packets. Developers must validate that `nx_packet_length` does not exceed four bytes plus the defined maximum file transfer limit before processing begins. Furthermore, the memory copy operation should utilize a bounded wait timeout rather than an infinite wait to prevent thread suspension in edge cases involving pool exhaustion. Implementing these checks ensures that oversized or malformed datagrams are rejected early in the request lifecycle, preserving both system stability and data integrity while maintaining service availability for authorized operations.

Responsible

Eclipse

Reservation

09/29/2026

Disclosure

09/29/2026

Moderation

accepted

EPSS

0.00308

KEV

no

Activities

very low

Sources

Do you need the next level of professionalism?

Upgrade your account now!