7.8 High
CVSS3
Attack Vector
LOCAL
Attack Complexity
LOW
Privileges Required
LOW
User Interaction
NONE
Scope
UNCHANGED
Confidentiality Impact
HIGH
Integrity Impact
HIGH
Availability Impact
HIGH
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
4.6 Medium
CVSS2
Access Vector
LOCAL
Access Complexity
LOW
Authentication
NONE
Confidentiality Impact
PARTIAL
Integrity Impact
PARTIAL
Availability Impact
PARTIAL
AV:L/AC:L/Au:N/C:P/I:P/A:P
0.0004 Low
EPSS
Percentile
11.7%
The shape inference function for Transpose
is vulnerable to a heap buffer overflow:
import tensorflow as tf
@tf.function
def test():
y = tf.raw_ops.Transpose(x=[1,2,3,4],perm=[-10])
return y
test()
This occurs whenever perm
contains negative elements. The shape inference function does not validate that the indices in perm
are all valid:
for (int32_t i = 0; i < rank; ++i) {
int64_t in_idx = data[i];
if (in_idx >= rank) {
return errors::InvalidArgument("perm dim ", in_idx,
" is out of range of input rank ", rank);
}
dims[i] = c->Dim(input, in_idx);
}
where Dim(tensor, index)
accepts either a positive index less than the rank of the tensor or the special value -1
for unknown dimensions.
We have patched the issue in GitHub commit c79ba87153ee343401dbe9d1954d7f79e521eb14.
The fix will be included in TensorFlow 2.7.0. We will also cherrypick this commit on TensorFlow 2.6.1, TensorFlow 2.5.2, and TensorFlow 2.4.4, as these are also affected and still in supported range.
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 reported by members of the Aivul Team from Qihoo 360.
CPE | Name | Operator | Version |
---|---|---|---|
tensorflow-gpu | lt | 2.4.4 | |
tensorflow-gpu | lt | 2.5.2 | |
tensorflow-gpu | lt | 2.6.1 | |
tensorflow-cpu | lt | 2.4.4 | |
tensorflow-cpu | lt | 2.5.2 | |
tensorflow-cpu | lt | 2.6.1 | |
tensorflow | lt | 2.4.4 | |
tensorflow | lt | 2.5.2 | |
tensorflow | lt | 2.6.1 |
github.com/advisories/GHSA-3ff2-r28g-w7h9
github.com/tensorflow/tensorflow/blob/8d72537c6abf5a44103b57b9c2e22c14f5f49698/tensorflow/core/ops/array_ops.cc#L121-L185
github.com/tensorflow/tensorflow/commit/c79ba87153ee343401dbe9d1954d7f79e521eb14
github.com/tensorflow/tensorflow/security/advisories/GHSA-3ff2-r28g-w7h9
nvd.nist.gov/vuln/detail/CVE-2021-41216
7.8 High
CVSS3
Attack Vector
LOCAL
Attack Complexity
LOW
Privileges Required
LOW
User Interaction
NONE
Scope
UNCHANGED
Confidentiality Impact
HIGH
Integrity Impact
HIGH
Availability Impact
HIGH
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
4.6 Medium
CVSS2
Access Vector
LOCAL
Access Complexity
LOW
Authentication
NONE
Confidentiality Impact
PARTIAL
Integrity Impact
PARTIAL
Availability Impact
PARTIAL
AV:L/AC:L/Au:N/C:P/I:P/A:P
0.0004 Low
EPSS
Percentile
11.7%