CVE-2020-15194
The SparseFillEmptyRowsGrad
implementation has incomplete validation of the
shapes of its
arguments:
OP_REQUIRES(
context, TensorShapeUtils::IsVector(reverse_index_map_t->shape()),
errors::InvalidArgument("reverse_index_map must be a vector, saw: ",
reverse_index_map_t->shape().DebugString()));
const auto reverse_index_map = reverse_index_map_t->vec<int64>();
const auto grad_values = grad_values_t->vec<T>();
Although reverse_index_map_t
and grad_values_t
are accessed in a similar
pattern, only reverse_index_map_t
is validated to be of proper shape. Hence,
malicious users can pass a bad grad_values_t
to trigger an assertion failure
in vec
, causing denial of service in serving installations.
TensorFlow 1.15.0, 1.15.1, 1.15.2, 1.15.3, 2.0.0, 2.0.1, 2.0.2, 2.1.0, 2.1.1, 2.2.0, 2.3.0.
We have patched the issue in 390611e0d45c5793c7066110af37c8514e6a6c54 and will release a patch release for all affected versions.
We recommend users to upgrade to TensorFlow 1.15.4, 2.0.3, 2.1.2, 2.2.1, or 2.3.1.
Please consult our security guide for more information regarding the security model and how to contact us with issues and questions.
This vulnerability has been discovered through a variant analysis of a vulnerability reported by members of the Aivul Team from Qihoo 360.