Skip to content
OpenAdvisories
Medium · 5.9 CVE-2020-15209 BIT-tensorflow-2020-15209EUVD-2020-0205GHSA-qh32-6jjc-qprmPYSEC-2020-132PYSEC-2020-289PYSEC-2020-324

Null pointer dereference in tensorflow-lite

Published Sep 25, 2020 · Updated Aug 4, 2024 · Assigned by GitHub_M

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 products

VendorProductAffectedFixed
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 —

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
openSUSE Leap 15.2 tensorflow2 +3 2.1.2-lp152.7.3.1 openSUSE-SU-2020:1766-1

Affected packages

EcosystemPackageAffectedFixedRecord
PyPI tensorflow < 1.15.4 1.15.4 GHSA-qh32-6jjc-qprm
PyPI tensorflow >= 2.0.0, < 2.0.3 2.0.3 GHSA-qh32-6jjc-qprm
PyPI tensorflow >= 2.1.0, < 2.1.2 2.1.2 GHSA-qh32-6jjc-qprm
PyPI tensorflow >= 2.2.0, < 2.2.1 2.2.1 GHSA-qh32-6jjc-qprm
PyPI tensorflow >= 2.3.0, < 2.3.1 2.3.1 GHSA-qh32-6jjc-qprm
PyPI 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 1.15.4, 2.0.3, 2.1.2, 2.2.1, 2.3.1 PYSEC-2020-132
PyPI tensorflow-cpu < 1.15.4 1.15.4 GHSA-qh32-6jjc-qprm
PyPI tensorflow-cpu >= 2.0.0, < 2.0.3 2.0.3 GHSA-qh32-6jjc-qprm
PyPI tensorflow-cpu >= 2.1.0, < 2.1.2 2.1.2 GHSA-qh32-6jjc-qprm
PyPI tensorflow-cpu >= 2.2.0, < 2.2.1 2.2.1 GHSA-qh32-6jjc-qprm
PyPI tensorflow-cpu >= 2.3.0, < 2.3.1 2.3.1 GHSA-qh32-6jjc-qprm
PyPI tensorflow-cpu < 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 1.15.4, 2.0.3, 2.1.2, 2.2.1, 2.3.1 PYSEC-2020-289
PyPI tensorflow-gpu < 1.15.4 1.15.4 GHSA-qh32-6jjc-qprm
PyPI tensorflow-gpu >= 2.0.0, < 2.0.3 2.0.3 GHSA-qh32-6jjc-qprm
PyPI tensorflow-gpu >= 2.1.0, < 2.1.2 2.1.2 GHSA-qh32-6jjc-qprm
PyPI tensorflow-gpu >= 2.2.0, < 2.2.1 2.2.1 GHSA-qh32-6jjc-qprm
PyPI tensorflow-gpu >= 2.3.0, < 2.3.1 2.3.1 GHSA-qh32-6jjc-qprm
PyPI tensorflow-gpu < 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 1.15.4, 2.0.3, 2.1.2, 2.2.1, 2.3.1 PYSEC-2020-324

Advisories 1

References