Lucene search

K
cve[email protected]CVE-2021-29550
HistoryMay 14, 2021 - 8:15 p.m.

CVE-2021-29550

2021-05-1420:15:12
CWE-369
web.nvd.nist.gov
56
5
tensorflow
cve
2021
29550
security
fix
cherrypick
nvd
denial of service
machine learning
open source

2.1 Low

CVSS2

Attack Vector

LOCAL

Attack Complexity

LOW

Authentication

NONE

Confidentiality Impact

NONE

Integrity Impact

NONE

Availability Impact

PARTIAL

AV:L/AC:L/Au:N/C:N/I:N/A:P

5.5 Medium

CVSS3

Attack Vector

LOCAL

Attack Complexity

LOW

Privileges Required

LOW

User Interaction

NONE

Scope

UNCHANGED

Confidentiality Impact

NONE

Integrity Impact

NONE

Availability Impact

HIGH

CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

5.4 Medium

AI Score

Confidence

High

0.0004 Low

EPSS

Percentile

13.0%

TensorFlow is an end-to-end open source platform for machine learning. An attacker can cause a runtime division by zero error and denial of service in tf.raw_ops.FractionalAvgPool. This is because the implementation(https://github.com/tensorflow/tensorflow/blob/acc8ee69f5f46f92a3f1f11230f49c6ac266f10c/tensorflow/core/kernels/fractional_avg_pool_op.cc#L85-L89) computes a divisor quantity by dividing two user controlled values. The user controls the values of input_size[i] and pooling_ratio_[i] (via the value.shape() and pooling_ratio arguments). If the value in input_size[i] is smaller than the pooling_ratio_[i], then the floor operation results in output_size[i] being 0. The DCHECK_GT line is a no-op outside of debug mode, so in released versions of TF this does not trigger. Later, these computed values are used as arguments(https://github.com/tensorflow/tensorflow/blob/acc8ee69f5f46f92a3f1f11230f49c6ac266f10c/tensorflow/core/kernels/fractional_avg_pool_op.cc#L96-L99) to GeneratePoolingSequence(https://github.com/tensorflow/tensorflow/blob/acc8ee69f5f46f92a3f1f11230f49c6ac266f10c/tensorflow/core/kernels/fractional_pool_common.cc#L100-L108). There, the first computation is a division in a modulo operation. Since output_length can be 0, this results in runtime crashing. 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.

Affected configurations

Vulners
NVD
Node
tensorflowtensorflowRange<2.1.4
OR
tensorflowtensorflowRange2.2.02.2.3
OR
tensorflowtensorflowRange2.3.02.3.3
OR
tensorflowtensorflowRange2.4.02.4.2

CNA Affected

[
  {
    "product": "tensorflow",
    "vendor": "tensorflow",
    "versions": [
      {
        "status": "affected",
        "version": "< 2.1.4"
      },
      {
        "status": "affected",
        "version": ">= 2.2.0, < 2.2.3"
      },
      {
        "status": "affected",
        "version": ">= 2.3.0, < 2.3.3"
      },
      {
        "status": "affected",
        "version": ">= 2.4.0, < 2.4.2"
      }
    ]
  }
]

Social References

More

2.1 Low

CVSS2

Attack Vector

LOCAL

Attack Complexity

LOW

Authentication

NONE

Confidentiality Impact

NONE

Integrity Impact

NONE

Availability Impact

PARTIAL

AV:L/AC:L/Au:N/C:N/I:N/A:P

5.5 Medium

CVSS3

Attack Vector

LOCAL

Attack Complexity

LOW

Privileges Required

LOW

User Interaction

NONE

Scope

UNCHANGED

Confidentiality Impact

NONE

Integrity Impact

NONE

Availability Impact

HIGH

CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

5.4 Medium

AI Score

Confidence

High

0.0004 Low

EPSS

Percentile

13.0%

Related for CVE-2021-29550