Lucene search

K
githubGitHub Advisory DatabaseGHSA-4P4P-WWW8-8FV9
HistoryMay 21, 2021 - 2:25 p.m.

Reference binding to null in `ParameterizedTruncatedNormal`

2021-05-2114:25:19
CWE-476
CWE-824
GitHub Advisory Database
github.com
23
security vulnerability
tensorflow
null pointer
patch
github
tensorflow 2.5.0
tensorflow 2.4.2
tensorflow 2.3.3
tensorflow 2.2.3
tensorflow 2.1.4
baidu x-team

CVSS2

4.6

Attack Vector

LOCAL

Attack 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

CVSS3

7.8

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

EPSS

0.001

Percentile

20.9%

Impact

An attacker can trigger undefined behavior by binding to null pointer in tf.raw_ops.ParameterizedTruncatedNormal:

import tensorflow as tf
    
shape = tf.constant([], shape=[0], dtype=tf.int32)
means = tf.constant((1), dtype=tf.float32)
stdevs = tf.constant((1), dtype=tf.float32)
minvals = tf.constant((1), dtype=tf.float32)
maxvals = tf.constant((1), dtype=tf.float32)
  
tf.raw_ops.ParameterizedTruncatedNormal(
  shape=shape, means=means, stdevs=stdevs, minvals=minvals, maxvals=maxvals)

This is because the implementation does not validate input arguments before accessing the first element of shape:

int32 num_batches = shape_tensor.flat<int32>()(0);

If shape argument is empty, then shape_tensor.flat<T>() is an empty array.

Patches

We have patched the issue in GitHub commit 5e52ef5a461570cfb68f3bdbbebfe972cb4e0fd8.

The fix will be included in TensorFlow 2.5.0. We will also cherrypick this commit on TensorFlow 2.4.2, TensorFlow 2.3.3, TensorFlow 2.2.3 and TensorFlow 2.1.4, as these are also affected and still in supported range.

For more information

Please consult our security guide for more information regarding the security model and how to contact us with issues and questions.

Attribution

This vulnerability has been reported by Ying Wang and Yakun Zhang of Baidu X-Team.

Affected configurations

Vulners
Node
tensorflow-gpuRange2.4.02.4.2
OR
tensorflow-gpuRange2.3.02.3.3
OR
tensorflow-gpuRange2.2.02.2.3
OR
tensorflow-gpuRange<2.1.4
OR
tensorflow-cpuRange2.4.02.4.2
OR
tensorflow-cpuRange2.3.02.3.3
OR
tensorflow-cpuRange2.2.02.2.3
OR
tensorflow-cpuRange<2.1.4
OR
tensorflowtensorflowRange2.4.02.4.2
OR
tensorflowtensorflowRange2.3.02.3.3
OR
tensorflowtensorflowRange2.2.02.2.3
OR
tensorflowtensorflowRange<2.1.4
VendorProductVersionCPE
*tensorflow-gpu*cpe:2.3:a:*:tensorflow-gpu:*:*:*:*:*:*:*:*
*tensorflow-cpu*cpe:2.3:a:*:tensorflow-cpu:*:*:*:*:*:*:*:*
tensorflowtensorflow*cpe:2.3:a:tensorflow:tensorflow:*:*:*:*:*:*:*:*

CVSS2

4.6

Attack Vector

LOCAL

Attack 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

CVSS3

7.8

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

EPSS

0.001

Percentile

20.9%

Related for GHSA-4P4P-WWW8-8FV9