CVE-2020-15212
HIGH8.1EPSS 0.24%Out of bounds access in tensorflow-lite
描述
### Impact In TensorFlow Lite models using segment sum can trigger writes outside of bounds of heap allocated buffers by inserting negative elements in the segment ids tensor: https://github.com/tensorflow/tensorflow/blob/0e68f4d3295eb0281a517c3662f6698992b7b2cf/tensorflow/lite/kernels/internal/reference/reference_ops.h#L2625-L2631 Users having access to `segment_ids_data` can alter `output_index` and then write to outside of `output_data` buffer. This might result in a segmentation fault but it can also be used to further corrupt the memory and can be chained with other vulnerabilities to create more advanced exploits. ### Patches We have patched the issue in 204945b and will release patch releases for all affected versions. We recommend users to upgrade to TensorFlow 2.2.1, or 2.3.1. ### Workarounds A potential workaround would be to add a custom `Verifier` to the model loading code to ensure that the segment ids are all positive, although this only handles the case when the segment ids are stored statically in the model. A similar validation could be done if the segment ids are generated at runtime between inference steps. If the segment ids are generated as outputs of a tensor during inference steps, then there are no possible workaround and users are advised to upgrade to patched code. ### For more information Please consult [our security guide](https://github.com/tensorflow/tensorflow/blob/master/SECURITY.md) for more information regarding the security model and how to contact us with issues and questions. ### Attribution This vulnerability has been discovered from a variant analysis of [GHSA-p2cq-cprg-frvm](https://github.com/tensorflow/tensorflow/security/advisories/GHSA-p2cq-cprg-frvm).
受影響套件(7)
- Bitnami/tensorflow>= 2.2.0, < 2.2.1, >= 2.3.0, < 2.3.1
- PyPI/tensorflow>= 2.2.0, < 2.2.1
- PyPI/tensorflowfrom 0, < 204945b19e44b57906c9344c0d00120eeeae178a | >= 2.3.0, < 2.3.1, >= 2.2.0, < 2.2.1
- PyPI/tensorflow-cpufrom 0, < 204945b19e44b57906c9344c0d00120eeeae178a | >= 2.3.0, < 2.3.1, >= 2.2.0, < 2.2.1
- PyPI/tensorflow-cpu>= 2.2.0, < 2.2.1
- PyPI/tensorflow-gpufrom 0, < 204945b19e44b57906c9344c0d00120eeeae178a | >= 2.3.0, < 2.3.1, >= 2.2.0, < 2.2.1
- PyPI/tensorflow-gpu>= 2.2.0, < 2.2.1
CVSS 分數
| 來源 | 版本 | 嚴重程度 | 向量 |
|---|---|---|---|
| osv | CVSS 4.0 | — | CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:L/VA:H/SC:L/SI:L/SA:H |
| osv | CVSS 3.1 | HIGH8.1 | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:L/A:H |
參考連結(11)
- ADVISORYhttps://nvd.nist.gov/vuln/detail/CVE-2020-15212
- PATCHhttps://github.com/tensorflow/tensorflow
- WEBhttps://github.com/pypa/advisory-database/tree/main/vulns/tensorflow-cpu/PYSEC-2020-292.yaml
- WEBhttps://github.com/pypa/advisory-database/tree/main/vulns/tensorflow-gpu/PYSEC-2020-327.yaml
- WEBhttps://github.com/pypa/advisory-database/tree/main/vulns/tensorflow/PYSEC-2020-135.yaml
- WEBhttps://github.com/tensorflow/tensorflow/blob/0e68f4d3295eb0281a517c3662f6698992b7b2cf/tensorflow/lite/kernels/internal/reference/reference_ops.h#L2625-L2631
- WEBhttps://github.com/tensorflow/tensorflow/commit/00c7ed7ce81c2126ebc17dfe7073b5c0efd5ec0a
- WEBhttps://github.com/tensorflow/tensorflow/commit/204945b19e44b57906c9344c0d00120eeeae178a
- WEBhttps://github.com/tensorflow/tensorflow/commit/a4030d8ba3692c438997c27be2dd95f3d5f54827
- WEBhttps://github.com/tensorflow/tensorflow/releases/tag/v2.3.1
- WEBhttps://github.com/tensorflow/tensorflow/security/advisories/GHSA-hx2x-85gr-wrpq