Releases: FreeRTOS/FreeRTOS-Plus-TCP
V4.3.3
V4.2.4
Changes between FreeRTOS-plus-TCP V4.2.4 and V4.2.3 released June 10, 2025:
- Fixed maximum network buffer allocation size check when buffer
allocation scheme 1 is used, which caused allocation failure on
some network interfaces.
V4.2.3
Changes between FreeRTOS-Plus-TCP V4.2.3 and V4.2.2 released June 04, 2025:
- It was possible to cause an out-of-bounds write when processing LLMNR
or mDNS queries with very long DNS names. This issue only affects systems
using Buffer Allocation Scheme 1 with LLMNR or mDNS enabled.
This issue has been fixed by adding checks to prevent out of bounds write.
We would like to thank Paschal Amusuo (@AmPaschal),
James C Davis (@davisjam), Taylor Le Lievre (@tlelievre26), and
Aravind Kumar Machiry (@Machiry) of Purdue University for collaborating
on this issue through the coordinated vulnerability disclosure process. - Replace any missing functions by assert-false in all CBMC proofs to
improve tests. We would like to thank @tautschnig for their contribution. - Adjust CBMC proof tooling to support CBMC v6.
We would like to thank @tautschnig for their contribution.
V4.3.2
Changes between FreeRTOS-Plus-TCP V4.3.2 and V4.3.1 released June 03, 2025:
It was possible to cause an out-of-bounds write when processing LLMNR or mDNS queries with very long DNS names. This issue only affects systems using Buffer Allocation Scheme 1 with LLMNR or mDNS enabled. This issue has been fixed by adding checks to prevent out of bounds write.
We would like to thank Paschal Amusuo (@AmPaschal), James C Davis (@davisjam), Taylor Le Lievre (@tlelievre26), and Aravind Kumar Machiry (@Machiry) of Purdue University for collaborating on this issue through the coordinated vulnerability disclosure process.
V4.3.1
Changes between FreeRTOS-plus-TCP V4.3.1 and V4.3.0 released December 16, 2024:
- Update README.md with information related to migrating to V4.3.0 and above
for users utilising the STM32 network interface.
V4.3.0
Changes between FreeRTOS-plus-TCP V4.3.0 and V4.2.2 released December 10, 2024:
- Fix TCP RX sequence number when handling refusal of FIN packets.
- Fix unicast packets being sent over inactive endpoints. We thank
@AlfaSegato for their contribution. - Fix the initialization of the DNS callback list every time there is a
Network-UP event. We thank @evpopov for their contribution. - Full ARP/ND build level separation.
We thank @HTRamsey for their contribution. - Update the
eARPGetCacheEntry
to handle loopback addresses correctly
and assign the loopback endpoint's MAC address as the lookup MAC address.
We thank @htibosch for their contribution. - Replace the costly
vTaskSuspendAll
/xTaskResumeAll
locking
mechanism with the more efficienttaskENTER_CRITICAL
/taskEXIT_CRITICAL
pair in frequenly useduxStreamBufferAdd()
.
We thank @lzungri for their contribution. - Improve frame filtering by expanding the checks in
eConsiderFrameForProcessing to drop invalid frames earlier.
We thank @HTRamsey for their contribution. - Fix reception of multicast custom Ethernet frames, where custom multicast
frames were filtered out. We thank @evpopov for their contribution. - Update the Zynq Ultrascale port to support the V4.x.x version of
FreeRTOS+TCP. We thank @StefanBalt and @pete-pjb for their contribution. - New unified STM32 network interface for STM32 F4/F7/H5/H7.
We thank @HTRamsey for their contribution. - Fix ATSAME5x network interface related to incorrect detection of ICMP.
We thank @cruxic for their contribution. - Update Renesas portable layer for backward compatibility.
We thank @xuan97z1 for their contribution. - Replace any missing functions by assert-false in all CBMC proofs to
improve tests. We thank @tautschnig for their contribution. - Add ipconfigEMAC_TASK_HOOK macro to allow for a configurable
watchdog timer for STMH7xx MCUs. We thank @kzorer for their contribution. - Improve CMake to allow usage of
FetchContent
in external projects.
We thank @nicovanduijn for their contribution. - Add warning logs if the TCP stream buffer or window properties
are changed. We thank @evpopov for their contribution. - Remove unused
ipconfigHAS_ROUTING_STATISTICS
macro.
We thank @HTRamsey for their contribution. - Fix MISRA 2012 violations with the latest version of
MISRA evalution tools. - Adjust CBMC proof tooling to support CBMC v6.
We thank @tautschnig for their contribution.
V4.2.2
Changes between FreeRTOS-plus-TCP V4.2.2 and V4.2.1 released July 12, 2024:
- Update version information in public header file
V4.2.1
Changes between FreeRTOS-plus-TCP V4.2.1 and V4.2.0 released June 27, 2024:
- Update version information in source files.
V4.2.0
Changes between FreeRTOS-plus-TCP V4.2.0 and V4.1.0 released June 24, 2024:
- It was possible for a carefully crafted DNS response with domain name
length value greater than the actual domain name length, to cause a buffer
over-read within the DNS Response Parser. This issue affects applications
using DNS functionality of the FreeRTOS-Plus-TCP stack.
Applications that do not use DNS functionality are not affected,
even when the DNS functionality is enabled.
This issue has been fixed by modifying the code to ensure that the DNS
Response Parser never attempts to read beyond the DNS
response buffer boundary.
We would like to thank Paschal Amusuo, James C. Davis, and
Aravind Machiry of Purdue University, for reporting this issue. - Fixed possible freed memory being reused while creating TCP sockets.
We thank @htibosch for their contribution. - Fixed possible NULL pointer dereference in TCP transmission.
We thank @anordal for their contribution. - Added network interface port for ARM Corstone-315 (MPS4_CS315).
We thank @david-hazi-arm for their contribution. - Fixed MISRA C 2012 issues in the code
- Replaced the usage strcpy with strncpy
- Improved memory allocation failure handling in
vDNSSetCallBack
by
propagating error signal back. We thank @hlef for reporting this issue. - Improved memory allocation failure handling in
prvCreateSectors
by
propagating error signal back. We thank @hlef for reporting this issue. - Enabled build on CI with sanitizers, fixed all AddressSanitizer
and UB-Sanitizer errors. We thank @anordal for their contribution. - Fixed mDNS lookups while parsing the mDNS answers.
We thank @htibosch for their contribution. - Fixed DNS name resolution responses when the device IP address
is0.0.0.0
. We thank @evpopov for their contribution. - Avoided FreeRTOS-Plus-TCP forcing to use the compilation options
set in the library CMake project in user projects.
We thank @apcountryman for their contribution. - Enabled user control of compiler analysis for non ISO statements.
We thank @thirtytwobits for their contribution - Fixed use of removed macro in ATSAME5x network interface.
We thank @apcountryman for their contribution. - Fixed inconsistent use of
ipconfigCOMPATIBLE_WITH_SINGLE
&ipconfigIPv4_BACKWARD_COMPATIBLE
- Resolved Unit Test Build Warnings
- Added network interface functions for multicast MAC address filtering.
We thank @evpopov for their contribution. - Fixed missing
ipconfigUSE_DNS_CACHE
check in FreeRTOS_DNS.c. - Avoided compiler warnings about the printf formats in IPv6 modules.
We thank @htibosch for their contribution. - Removed deprecated macro
ipconfigMULTI_INTERFACE
.
We thank @HTRamsey for their contribution. - Removed unused function xProcessedTCPMessage.
We thank @HTRamsey for their contribution. - Removed deprecated macros
ipLOCAL_MAC_ADDRESS
and
ipLOCAL_IP_ADDRESS_POINTER
. We thank @HTRamsey for their contribution. - Fixed eARPGetCacheEntryGateWay to properly report when no valid gateway is found
for a packet that needs to be sent outside the local network.
We thank @evpopov for their contribution. - Combined duplicated IPv4/IPv6 TCP code.
We thank @HTRamsey for their contribution. - Improved validation of configuration macros in the default
IP config using static compile time checks.
We thank @HTRamsey for their contribution. - Repaired ARP unit tests which were accessing packet memory
outside of allocated bounds. - Moved CMake compile options to test builds to avoid build issues in
user projects that might be not be supporting compiler options used
in the original Cmake. We thank @apcountryman for their contribution. - Cleaned up CMake by adding: additional unit tests, incorporating missing
network interface support, removing unused "config files" that are no longer
required, and fixing file name issues in the unit testing framework.
We thank @HTRamsey for their contribution.
V4.1.1
Changes between FreeRTOS-plus-TCP V4.1.1 and V4.1.0 released June 13, 2024:
It was possible for a carefully crafted DNS response with domain name length value greater than the actual domain name length, to cause a buffer over-read within the DNS Response Parser. This issue affects applications using DNS functionality of the FreeRTOS-Plus-TCP stack. Applications that do not use DNS functionality are not affected, even when the DNS functionality is enabled.
This issue has been fixed by modifying the code to ensure that the DNS Response Parser never attempts to read beyond the DNS response buffer boundary.
We would like to thank Paschal Amusuo, James C. Davis, and Aravind Machiry of Purdue University, for reporting this issue.