## Threat model

Before reporting an issue, please review the FreeRTOS kernel threat model. It
describes the security assumptions the kernel makes, which threats are in scope,
and the protections the kernel does and does not provide. Understanding these
boundaries helps determine whether an observed behavior is a security
vulnerability or expected, documented behavior.

- [FreeRTOS Kernel Threat Model](https://www.freertos.org/Security/02-Kernel-threat-model)

## Reporting a Vulnerability

If you discover a potential security issue in this project we ask that you notify AWS/Amazon Security 
via our [vulnerability reporting page](https://aws.amazon.com/security/vulnerability-reporting/) or directly via email to aws-security@amazon.com. 
Please do **not** create a public github issue.
