In Tensorflow before versions 2.2.1 and 2.3.1, the implementation of `dlpack.to_dlpack` can be made to use uninitialized memory resulting in further memory corruption. This is because the pybind11 glue code assumes that the argument is a tensor. However, there is nothing stopping users from passing in a Python object instead of a tensor. The uninitialized memory address is due to a `reinterpret_cast` Since the `PyObject` is a Python object, not a TensorFlow Tensor, the cast to `EagerTensor` fails. The issue is patched in commit 22e07fb204386768e5bcbea563641ea11f96ceb8 and is released in TensorFlow versions 2.2.1, or 2.3.1.
2020-09-25T19:15:14.573
2024-11-21T05:05:03.037
Modified
CVSSv3.1: 7.1 (HIGH)
AV:N/AC:L/Au:S/C:N/I:P/A:P
8.0
4.9
Type | Vendor | Product | Version/Range | Vulnerable? |
---|---|---|---|---|
Application | tensorflow | 2.2.0 | Yes | |
Application | tensorflow | 2.3.0 | Yes | |
Operating System | opensuse | leap | 15.2 | Yes |