Vulnerability · Published Sep 25, 2020 · Assigned by GitHub_M
CVE-2020-15209Null pointer dereference in tensorflow-lite
Medium 5.9
In plain English
A medium-severity null pointer dereference in tensorflow from tensorflow. There are no confirmed reports of exploitation so far. The chance it is exploited in the next 30 days is estimated at 0.8% (higher than 57% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.
Official description
In tensorflow-lite before versions 1.15.4, 2.0.3, 2.1.2, 2.2.1 and 2.3.1, a crafted TFLite model can force a node to have as input a tensor backed by a `nullptr` buffer. This can be achieved by changing a buffer index in the flatbuffer serialization to convert a read-only tensor to a read-write one. The runtime assumes that these buffers are written to before a possible read, hence they are initialized with `nullptr`. However, by changing the buffer index for a tensor and implicitly converting that tensor to be a read-write one, as there is nothing in the model that writes to it, we get a null pointer dereference. The issue is patched in commit 0b5662bc, and is released in TensorFlow versions 1.15.4, 2.0.3, 2.1.2, 2.2.1, or 2.3.1.
Affected packages & fixed versions
| Ecosystem | Package | Fixed in | Advisory |
|---|---|---|---|
| PyPI | tensorflow | 2.1.2 | GHSA-qh32-6jjc-qprm |
| PyPI | tensorflow | 2.2.1 | GHSA-qh32-6jjc-qprm |
| PyPI | tensorflow | 2.3.1 | GHSA-qh32-6jjc-qprm |
| PyPI | tensorflow | 1.15.4 | GHSA-qh32-6jjc-qprm |
| PyPI | tensorflow | 1.15.4, 2.0.3, 2.1.2, 2.2.1, 2.3.1 | PYSEC-2020-132 |
| PyPI | tensorflow | 2.0.3 | GHSA-qh32-6jjc-qprm |
| PyPI | tensorflow-cpu | 2.3.1 | GHSA-qh32-6jjc-qprm |
| PyPI | tensorflow-cpu | 1.15.4 | GHSA-qh32-6jjc-qprm |
| PyPI | tensorflow-cpu | 2.0.3 | GHSA-qh32-6jjc-qprm |
| PyPI | tensorflow-cpu | 2.1.2 | GHSA-qh32-6jjc-qprm |
| PyPI | tensorflow-cpu | 2.2.1 | GHSA-qh32-6jjc-qprm |
| PyPI | tensorflow-cpu | 1.15.4, 2.0.3, 2.1.2, 2.2.1, 2.3.1 | PYSEC-2020-289 |
| PyPI | tensorflow-gpu | 2.1.2 | GHSA-qh32-6jjc-qprm |
| PyPI | tensorflow-gpu | 2.2.1 | GHSA-qh32-6jjc-qprm |
| PyPI | tensorflow-gpu | 2.3.1 | GHSA-qh32-6jjc-qprm |
| PyPI | tensorflow-gpu | 1.15.4 | GHSA-qh32-6jjc-qprm |
| PyPI | tensorflow-gpu | 1.15.4, 2.0.3, 2.1.2, 2.2.1, 2.3.1 | PYSEC-2020-324 |
| PyPI | tensorflow-gpu | 2.0.3 | GHSA-qh32-6jjc-qprm |
Affected products (as reported)
| Vendor | Product | Versions |
|---|---|---|
| tensorflow | tensorflow | < 1.15.4>= 2.0.0, < 2.0.3>= 2.1.0, < 2.1.2>= 2.2.0, < 2.2.1>= 2.3.0, < 2.3.1 |
Weakness: CWE-476 · Vector: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
References
- https://github.com/tensorflow/tensorflow/releases/tag/v2.3.1 x_refsource_MISC
- https://github.com/tensorflow/tensorflow/security/advisories/GHSA-qh32-6jjc-qprm x_refsource_CONFIRM
- https://github.com/tensorflow/tensorflow/commit/0b5662bc2be13a8c8f044d925d87fb6e56247cd8 x_refsource_MISC
- openSUSE-SU-2020:1766 vendor-advisory, x_refsource_SUSE