CVE-2026-71263 in FreeModbus
Tóm tắt
Bởi VulDB • 05/08/2026
Port LINUXTCP của FreeModbus chứa lỗi kiểm tra giới hạn sai lệch một đơn vị (off-by-one) trong hàm `xMBPortTCPPool()` (demo/LINUXTCP/port/porttcp.c). Kiểm tra `if (usTCPFrameBytesLeft > MB_TCP_BUF_SIZE)` sử dụng phép so sánh lớn hơn nghiêm ngặt thay vì lớn hơn hoặc bằng với giới hạn 263 byte của `MB_TCP_BUF_SIZE`. Một khung MBAP có trường Length là 264 khiến `usTCPFrameBytesLeft` bằng 263, vượt qua kiểm tra lỗi này; lệnh gọi hàm `recv()` tiếp theo ghi tối đa 263 byte bắt đầu từ offset bộ nhớ 7 vào vùng đệm tĩnh `aucTCPBuf` kích thước 263 byte, gây tràn bộ nhớ (buffer overflow) thêm 7 byte sang biến tĩnh liền kề là `usTCPBufPos`. Một gói tin Modbus TCP duy nhất được tạo ra đặc biệt và không xác thực sẽ kích hoạt lỗi tràn này, vì giao thức Modbus không có cơ chế xác thực tích hợp sẵn.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.