下载 FreeRTOS
 

出色的 RTOS & 嵌入式软件

安全性
最新资讯
简化任何设备的身份验证云连接。
利用 CoAP 设计节能型云连接 IoT 解决方案。
11.0.0 版 FreeRTOS 内核简介:
FreeRTOS 路线图和代码贡献流程。
使用 FreeRTOS 实现 OPC-UA over TSN。

安全实践

此页面列出了应用于代码库的安全相关更新。有关 RTOS 内核使用的编码、测试、内存安全证明和安全审查标准的描述,请参阅“编码标准、测试和样式指南”页面。 长期支持 (LTS) 页面底部的“代码质量检查表”具有与较新的 FreeRTOS Core 和适用于 AWSIoT 库的 FreeRTOS 相同的信息,包括 Coverity 扫描。

FreeRTOS 获得了 SESIP 2 级PSA 2 级认证。

应用安全 (APSEC) 和渗透测试 (pentest) 服务由 AWS 提供。

安全相关博客


安全更新

FreeRTOS 内核

2022 年 9 月 16 日 - FreeRTOS 内核 MPU 移植所有版本高达 10.4.6(含)

FreeRTOS V10.5.0 和更高版本包含额外的代码,用于检查和防止下面列出的问题。这些更改还包含在从 V10.4.3-LTS-Patch-3 开始的长期支持 (LTS) 发行版中。
  • ARMv7-M 和 ARMv8-M MPU 移植:已经独立获得执行注入代码功能的第三方可以通过使用手工制作的堆栈框架直接在 FreeRTOS MPU API 包装函数内部进行分支,从而实现进一步权限升级。

    影响 FreeRTOS 内核 MPU 移植,版本 6.0.0 至 10.4.6(含)。

感谢 Certibit Consulting, LLC、华中科技大学 IoTSP 实验室和东北大学 SecLab 团队报告此问题。
  • ARMv7-M 和 ARMv8-M MPU 移植:对于已经独立获得执行注入代码能力的第三方,可以通过将负参数作为 xIndex 参数分别传递给 pvTaskGetThreadLocalStoragePointer() 或 vTaskSetThreadLocalStoragePointer 来读取或写入任意地址。

    影响 FreeRTOS 内核,版本 8.2.1 至 10.4.6(含)。

感谢 Certibit Consulting, LLC 报告此问题。
  • ARMv7-M MPU 移植:可以配置重叠内存保护单元 (MPU) 区域,以便非特权任务访问特权数据。

    影响 FreeRTOS 内核 MPU 移植,版本 6.0.0 至 10.4.6(含)。

感谢东北大学 SecLab 团队报告此问题。
  • ARMv7-M 和 ARMv8-M MPU 移植:非特权任务可以通过将任何特权函数作为参数传递给 MPU_xTaskCreate、MPU_xTaskCreateStatic、MPU_xTimerCreate、MPU_xTimerCreateStatic 或 MPU_xTimerPendFunctionCall 来调用它。

    影响 FreeRTOS 内核 MPU 移植,版本 6.0.0 至 10.4.6(含)。

感谢华中科技大学 IoTSP 实验室报告此问题。


2021 年 11 月 12 日 - FreeRTOS 内核版本 10.2.0 至 10.4.5(含)

  • ARMv7-M 和 ARMv8-M MPU 移植:非特权任务可以 通过调用内部函数 xPortRaisePrivilege 提升其特权。

公共 CVE 记录参见 MITRE: CVE-2021-43997


2021 年 9 月 10 日 - FreeRTOS 内核版本 10.2.0 至 10.4.4(含)

  • ARMv8-M 安全端移植:在 ARM Cortex-M23 或 Cortex-M33 处理器的非安全端以特权模式运行的非法代码 在 ARM Cortex-M23 或 Cortex-M33 处理器的非安全侧以特权模式运行不需要的代码,可能导致出现安全侧栈帧对其可见的情况。 此外,如果非法代码能够在调用安全函数期间执行非安全函数,且该非安全函数 返回到安全状态,则非法代码有可能操纵任务调用任意安全端 函数。

    仅在非安全端使用 FreeRTOS 代码的应用程序,例如在安全端运行第三方代码, 不会受到影响。我们不知道有什么方法可以利用此问题将非法代码放置到设备上或把代码注入到 MCU 的安全端。

我们感谢 SI Labs 向 FreeRTOS 团队报告此行为。


2020 年 12 月 15 日 - FreeRTOS内核 V10.4.2 及更早版本

  • heap2.c 中,在计算要分配的内存块的大小时,可能存在未经检查的添加溢出,这可能会导致大小溢出,以及分配虽返回成功,却只分配了所请求内存的一小部分的情况。这只会影响被分配到 4GB 以内以 8 字节为单位的内存的代码。
  • queue.c 中,队列分配期间可能存在未经检查的添加溢出。这只会影响队列大小为 4GB 以内以 (queue_t) 字节为单位的代码。
  • stream_buffer.c 中,创建流缓冲区期间可能存在未经检查的添加溢出。这只会影响 流缓冲区大小为 4GB 以内以 sizeof(StreamBuffer_t) 字节为单位的代码。
FreeRTOS V10.4.3 及更新版本包含检查和防止这些可能溢出的附加代码。

关于此更新的公共 CVE 记录可参阅 MITRE: CVE-2021-31571CVE-2021-31572CVE-2021-32020

感谢 MSVR (Microsoft Security and Vulnerability Research) 团队报告这些问题。


FreeRTOS-Plus-TCP

2021 年 9 月 10 日 - FreeRTOS-Plus-TCP V2.3.3 及更早版本

  • BufferAllocation_2.c 中,在计算要分配给网络缓冲区的内存块大小时, 可能存在未经检查的添加溢出,这可能导致大小溢出, 以及分配虽返回成功,却只分配了所请求内存的一小部分的情况。在默认 设置下,仅当尝试分配 4 GB 以内以 12 字节为单位的内存时才会发生这种情况。
感谢 Bernard Lebel (RMDS Innovation) 报告这一潜在问题。


2018 年 8 月 21 日 - FreeRTOS-Plus-TCP V2.0.7

  • 在数据包解析例程、DNS 缓存以及 TCP 序列号和 ID 生成方面进行了多项安全改进和修复。
  • 默认情况下禁用 NBNS 和 LLMNR。
  • 默认情况下添加 TCP 挂起保护。
感谢 Zimperium zLabs 团队的 Ori Karliner 报告这些问题。





Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.