CVE-2026-71263 in FreeModbus
Zusammenfassung
von VulDB • 06.08.2026
Der LINUXTCP-Port von FreeModbus enthält einen Off-by-One-Fehler bei der Bereichsprüfung in xMBPortTCPPool() (demo/LINUXTCP/port/porttcp.c). Die Prüfung `if (usTCPFrameBytesLeft > MB_TCP_BUF_SIZE)` verwendet einen strikten Größer-Vergleich anstelle eines Größer-Gleich-Vergleichs gegenüber dem 263-Byte-Limit von MB_TCP_BUF_SIZE. Ein MBAP-Rahmen mit einem Length-Feld von 264 führt dazu, dass usTCPFrameBytesLeft gleich 263 ist; dies bestanden die fehlerhafte Prüfung, und der nachfolgende recv()-Aufruf schreibt bis zu 263 Bytes beginnend ab dem Pufferoffset 7 in den 263-Byte großen statischen Puffer aucTCPBuf, wodurch dieser um 7 Bytes überschritten wird. Dabei werden Daten in die benachbarte statische Variable usTCPBufPos geschrieben. Ein einzelner speziell angefertigter, nicht authentifizierter Modbus-TCP-Paket löst diesen Heap-Based Buffer Overflow aus, da Modbus über keine integrierte Authentifizierung verfügt.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.