CVE-2026-102713: CWE-125 Out-of-bounds Read in Eclipse Foundation NetX Duo
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.
AI Analysis
Technical Summary
The NetX Duo TFTP server accepts DATA datagrams without enforcing an upper size limit, violating the protocol maximum of 4 + NX_TFTP_FILE_TRANSFER_MAX bytes. The dispatcher rejects datagrams shorter than four bytes but does not check for an upper bound. Consequently, the server passes nx_packet_length - 4 directly to the FileX file write function, where nx_packet_length represents the length of a packet chain rather than a contiguous buffer. This leads to FileX copying memory beyond the first packet's boundary, causing a heap-buffer-overflow read. The overflowed bytes are written into the file being uploaded and can be read back via a TFTP read request, resulting in memory disclosure. Additionally, oversized datagrams cause the server thread to suspend indefinitely due to nx_packet_copy waiting forever for packets that do not exist, effectively causing a denial of service. The recommended fix is to reject datagrams exceeding the maximum allowed size before processing and to avoid indefinite waits during packet copying.
Potential Impact
An attacker can exploit this vulnerability to read out-of-bounds memory from the server process, leading to memory disclosure. The disclosed memory contents are accessible through the TFTP read request mechanism, providing a convenient data exfiltration channel. Furthermore, sending oversized datagrams can cause the server thread to suspend indefinitely, resulting in a denial of service where no further clients can be served.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. Until an official fix is available, it is recommended to implement input validation to reject DATA datagrams larger than 4 + NX_TFTP_FILE_TRANSFER_MAX bytes before processing. Additionally, avoid using indefinite waits (NX_WAIT_FOREVER) during packet copying to prevent server thread suspension. Monitor vendor advisories for updates and apply official patches once released.
CVE-2026-102713: CWE-125 Out-of-bounds Read in Eclipse Foundation NetX Duo
Description
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.
CVSS v4.0
Score 8.8high
Affected software
Eclipse Foundation
NetX Duo
pkg:github/eclipse-threadx/netxduoRun on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The NetX Duo TFTP server accepts DATA datagrams without enforcing an upper size limit, violating the protocol maximum of 4 + NX_TFTP_FILE_TRANSFER_MAX bytes. The dispatcher rejects datagrams shorter than four bytes but does not check for an upper bound. Consequently, the server passes nx_packet_length - 4 directly to the FileX file write function, where nx_packet_length represents the length of a packet chain rather than a contiguous buffer. This leads to FileX copying memory beyond the first packet's boundary, causing a heap-buffer-overflow read. The overflowed bytes are written into the file being uploaded and can be read back via a TFTP read request, resulting in memory disclosure. Additionally, oversized datagrams cause the server thread to suspend indefinitely due to nx_packet_copy waiting forever for packets that do not exist, effectively causing a denial of service. The recommended fix is to reject datagrams exceeding the maximum allowed size before processing and to avoid indefinite waits during packet copying.
Potential Impact
An attacker can exploit this vulnerability to read out-of-bounds memory from the server process, leading to memory disclosure. The disclosed memory contents are accessible through the TFTP read request mechanism, providing a convenient data exfiltration channel. Furthermore, sending oversized datagrams can cause the server thread to suspend indefinitely, resulting in a denial of service where no further clients can be served.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. Until an official fix is available, it is recommended to implement input validation to reject DATA datagrams larger than 4 + NX_TFTP_FILE_TRANSFER_MAX bytes before processing. Additionally, avoid using indefinite waits (NX_WAIT_FOREVER) during packet copying to prevent server thread suspension. Monitor vendor advisories for updates and apply official patches once released.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- eclipse
- Date Reserved
- 2026-09-29T16:15:09.632Z
- Cvss Version
- 4.0
- State
- PUBLISHED
Threat ID: 6abbfcc9107c4a03cbb28019
Added to database: 09/29/2026, 18:00:41 UTC
Last enriched: 09/29/2026, 18:01:31 UTC
Last updated: 09/29/2026, 19:07:33 UTC
Views: 5
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
External Links
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.