QID 981523
QID 981523: Python (pip) Security Update for tensorflow-gpu (GHSA-2r8p-fg3c-wcj4)
Security update has been released for tensorflow-gpu,tensorflow,tensorflow-cpu to fix the vulnerability.
Note: The preceding description block is extracted directly from the security advisory. Using automation, we have attempted to clean and format it as much as possible without introducing additional issues.
An attacker can trigger a crash via a `CHECK`-fail in debug builds of TensorFlow using `tf.raw_ops.ResourceGather` or a read from outside the bounds of heap allocated data in the same API in a release build:
```python
import tensorflow as tf
tensor = tf.constant(value=[[1,2],[3,4],[5,6]],shape=(3,2),dtype=tf.uint32)
v = tf.Variable(tensor)
tf.raw_ops.ResourceGather(
resource=v.handle,
indices=[0],
dtype=tf.uint32,
batch_dims=10,
validate_indices=False)
```
The [implementation](https://github.com/tensorflow/tensorflow/blob/f24faa153ad31a4b51578f8181d3aaab77a1ddeb/tensorflow/core/kernels/resource_variable_ops.cc#L660-L668) does not check that the `batch_dims` value that the user supplies is less than the rank of the input tensor.
Since the implementation uses several for loops over the dimensions of `tensor`, this results in reading data from outside the bounds of heap allocated buffer backing the tensor:
```cc
// batch_dims_ = > params.dims() (10 > 2)
for (int i = 0; i < batch_dims_; ++i) {
result_shape.AddDim(params.dim_size(i));
}
for (int i = batch_dims_; i < indices.dims(); ++i) {
result_shape.AddDim(indices.dim_size(i));
}
for (int i = batch_dims_ + 1; i < params.dims(); ++i) {
result_shape.AddDim(params.dim_size(i));
}
```
In debug mode, `.dim_size(i)` validates that the argument is less than `.dims()` using a `DCHECK`. But the `DCHECK` is a no-op in release builds.
The fix will be included in TensorFlow 2.6.0. We will also cherrypick this commit on TensorFlow 2.5.1, TensorFlow 2.4.3, and TensorFlow 2.3.4, as these are also affected and still in supported range.
- GHSA-2r8p-fg3c-wcj4 -
github.com/advisories/GHSA-2r8p-fg3c-wcj4
CVEs related to QID 981523
| Advisory ID | Software | Component | Link |
|---|---|---|---|
| GHSA-2r8p-fg3c-wcj4 | tensorflow |
|
|
| GHSA-2r8p-fg3c-wcj4 | tensorflow-cpu |
|
|
| GHSA-2r8p-fg3c-wcj4 | tensorflow-gpu |
|