CVE-2026-102721CWE-125

CVE-2026-102721

published September 29, 2026

CVSS
6.9
EPSS
0%
Percentile
15.8
In the wild
Unconfirmed
What it is

A TFTP server that answers with a short ERROR packet makes the client read up to 64 bytes past the

received datagram.

Each receive path checks only that the datagram is at least four bytes long (nxd_tftp_client.c:1229,

1521, 1984). When the opcode is NX_TFTP_CODE_ERROR the message string is copied with a loop whose

only limits are the destination buffer and a NUL byte:

```c

/* addons/tftp/nxd_tftp_client.c:1769 */

for (i = 0; (i < (sizeof(tftp_client_ptr -> nx_tftp_client_error_string) - 1)) && (*buffer_ptr); i++)

```

Nothing compares `buffer_ptr` against `nx_packet_append_ptr`. An ERROR packet that carries no

terminating NUL, which a server controls completely, walks the loop off the end of the packet until

it happens to meet a zero byte or fills the 64 byte destination.

```

ERROR: AddressSanitizer: heap-buffer-overflow

READ of size 1 at 0x60d0000000c8 thread T4

#0 _nxd_tftp_client_file_read addons/tftp/nxd_tftp_client.c:1769

0x60d0000000c8 is 0 bytes to the right of 136-byte region

```

The open path has the same loop at :1327 and reports the same way. What is read lands in

`nx_tftp_client_error_string`, which the application is expected to display or log, so adjacent

packet pool memory ends up in whatever the device does with the error text.

Add `(buffer_ptr < packet_ptr -> nx_packet_append_ptr)` to the loop condition in all three paths.

The record
Technical detail
CVSS
6.9 · NONE
CVSS v4.0
6.9 · CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:L/SC:N/SI:N/SA:N
EPSS
0.00253 · 15.8th percentile
Weakness
CWE-125 · Out-of-bounds Read
Published
2026-09-29T22:17Z
References (1)
EPSS history
Timeline
  • 01 OCT 03:44Z
    EPSS moved — → 0%
    epss
  • 29 SEP 17:47Z
    A TFTP server that answers with a short ERROR packet makes the client read up to 64 bytes past the received datagram
    cvelistv5