Vulnerability Name:

CVE-2022-21733 (CCN-218756)

Assigned:2021-11-16
Published:2022-02-02
Updated:2022-02-09
Summary:Tensorflow is an Open Source Machine Learning Framework. The implementation of `StringNGrams` can be used to trigger a denial of service attack by causing an out of memory condition after an integer overflow. We are missing a validation on `pad_witdh` and that result in computing a negative value for `ngram_width` which is later used to allocate parts of the output. The fix will be included in TensorFlow 2.8.0. We will also cherrypick this commit on TensorFlow 2.7.1, TensorFlow 2.6.3, and TensorFlow 2.5.3, as these are also affected and still in supported range.
CVSS v3 Severity:6.5 Medium (CVSS v3.1 Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H)
5.9 Medium (Temporal CVSS v3.1 Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H/E:P/RL:O/RC:C)
Exploitability Metrics:Attack Vector (AV): Network
Attack Complexity (AC): Low
Privileges Required (PR): Low
User Interaction (UI): None
Scope:Scope (S): Unchanged
Impact Metrics:Confidentiality (C): None
Integrity (I): None
Availibility (A): High
4.3 Medium (CCN CVSS v3.1 Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L)
3.9 Low (CCN Temporal CVSS v3.1 Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L/E:P/RL:O/RC:C)
Exploitability Metrics:Attack Vector (AV): Network
Attack Complexity (AC): Low
Privileges Required (PR): Low
User Interaction (UI): None
Scope:Scope (S): Unchanged
Impact Metrics:Confidentiality (C): None
Integrity (I): None
Availibility (A): Low
CVSS v2 Severity:5.0 Medium (CVSS v2 Vector: AV:N/AC:L/Au:N/C:N/I:N/A:P)
Exploitability Metrics:Access Vector (AV): Network
Access Complexity (AC): Low
Authentication (Au): None
Impact Metrics:Confidentiality (C): None
Integrity (I): None
Availibility (A): Partial
4.0 Medium (CCN CVSS v2 Vector: AV:N/AC:L/Au:S/C:N/I:N/A:P)
Exploitability Metrics:Access Vector (AV): Network
Access Complexity (AC): Low
Athentication (Au): Single_Instance
Impact Metrics:Confidentiality (C): None
Integrity (I): None
Availibility (A): Partial
Vulnerability Type:CWE-190
Vulnerability Consequences:Denial of Service
References:Source: MITRE
Type: CNA
CVE-2022-21733

Source: XF
Type: UNKNOWN
tensorflow-cve202221733-dos(218756)

Source: MISC
Type: Exploit, Third Party Advisory
https://github.com/tensorflow/tensorflow/blob/5100e359aef5c8021f2e71c7b986420b85ce7b3d/tensorflow/core/kernels/string_ngrams_op.cc#L29-L161

Source: MISC
Type: Patch, Third Party Advisory
https://github.com/tensorflow/tensorflow/commit/f68fdab93fb7f4ddb4eb438c8fe052753c9413e8

Source: CCN
Type: TensorFlow GIT Repository
OOM due to integer overflow in StringNGrams

Source: CONFIRM
Type: Patch, Third Party Advisory
https://github.com/tensorflow/tensorflow/security/advisories/GHSA-98j8-c9q4-r38g

Source: CCN
Type: IBM Security Bulletin 6564605 (Watson Discovery)
IBM Watson Discovery for IBM Cloud Pak for Data affected by vulnerability in TensorFlow

Source: CCN
Type: TensorFlow Web site
TensorFlow

Vulnerable Configuration:Configuration 1:
  • cpe:/a:google:tensorflow:*:*:*:*:*:*:*:* (Version <= 2.5.2)
  • OR cpe:/a:google:tensorflow:*:*:*:*:*:*:*:* (Version >= 2.6.0 and <= 2.6.2)
  • OR cpe:/a:google:tensorflow:2.7.0:*:*:*:*:*:*:*

  • Configuration CCN 1:
  • cpe:/a:google:tensorflow:1.3.0:-:*:*:-:*:*:*
  • OR cpe:/a:google:tensorflow:1.3.1:*:*:*:-:*:*:*
  • OR cpe:/a:google:tensorflow:1.4.0:-:*:*:-:*:*:*
  • OR cpe:/a:google:tensorflow:1.4.1:*:*:*:-:*:*:*
  • OR cpe:/a:google:tensorflow:1.5.0:-:*:*:-:*:*:*
  • OR cpe:/a:google:tensorflow:1.5.1:*:*:*:-:*:*:*
  • OR cpe:/a:google:tensorflow:1.6.0:-:*:*:-:*:*:*
  • OR cpe:/a:google:tensorflow:1.1.0:-:*:*:-:*:*:*
  • OR cpe:/a:google:tensorflow:1.2.0:-:*:*:-:*:*:*
  • OR cpe:/a:google:tensorflow:1.2.1:*:*:*:-:*:*:*
  • OR cpe:/a:google:tensorflow:1.0.1:*:*:*:-:*:*:*
  • OR cpe:/a:google:tensorflow:1.0.0:-:*:*:-:*:*:*
  • OR cpe:/a:google:tensorflow:1.12.0:-:*:*:-:*:*:*
  • OR cpe:/a:google:tensorflow:2.0.0:-:*:*:-:*:*:*
  • OR cpe:/a:google:tensorflow:1.15.3:*:*:*:-:*:*:*
  • OR cpe:/a:google:tensorflow:2.0.2:*:*:*:-:*:*:*
  • OR cpe:/a:google:tensorflow:2.1.1:*:*:*:-:*:*:*
  • OR cpe:/a:tensorflow:tensorflow:2.2.0:*:*:*:-:*:*:*
  • OR cpe:/a:tensorflow:tensorflow:2.3.0:*:*:*:-:*:*:*
  • OR cpe:/a:google:tensorflow:2.1.0:-:*:*:-:*:*:*
  • OR cpe:/a:google:tensorflow:2.4.0:-:*:*:-:*:*:*
  • OR cpe:/a:google:tensorflow:2.1.4:*:*:*:*:*:*:*
  • OR cpe:/a:google:tensorflow:2.2.3:*:*:*:*:*:*:*
  • OR cpe:/a:google:tensorflow:2.3.3:*:*:*:*:*:*:*
  • OR cpe:/a:google:tensorflow:2.4.2:*:*:*:*:*:*:*
  • OR cpe:/a:google:tensorflow:2.5.0:-:*:*:*:*:*:*
  • OR cpe:/a:google:tensorflow:2.6.0:-:*:*:*:*:*:*
  • OR cpe:/a:google:tensorflow:2.5.2:*:*:*:*:*:*:*
  • OR cpe:/a:google:tensorflow:2.6.2:*:*:*:*:*:*:*
  • OR cpe:/a:google:tensorflow:2.7.0:*:*:*:*:*:*:*
  • AND
  • cpe:/a:ibm:watson_discovery:2.0.0:*:*:*:*:*:*:*
  • OR cpe:/a:ibm:watson_discovery:2.2.1:*:*:*:*:*:*:*

  • * Denotes that component is vulnerable
    BACK
    google tensorflow *
    google tensorflow *
    google tensorflow 2.7.0
    google tensorflow 1.3.0 -
    google tensorflow 1.3.1
    google tensorflow 1.4.0 -
    google tensorflow 1.4.1
    google tensorflow 1.5.0 -
    google tensorflow 1.5.1
    google tensorflow 1.6.0 -
    google tensorflow 1.1.0 -
    google tensorflow 1.2.0 -
    google tensorflow 1.2.1
    google tensorflow 1.0.1
    google tensorflow 1.0.0 -
    google tensorflow 1.12.0 -
    google tensorflow 2.0.0 -
    google tensorflow 1.15.3
    google tensorflow 2.0.2
    google tensorflow 2.1.1
    tensorflow tensorflow 2.2.0
    tensorflow tensorflow 2.3.0
    google tensorflow 2.1.0 -
    google tensorflow 2.4.0 -
    google tensorflow 2.1.4
    google tensorflow 2.2.3
    google tensorflow 2.3.3
    google tensorflow 2.4.2
    google tensorflow 2.5.0 -
    google tensorflow 2.6.0 -
    google tensorflow 2.5.2
    google tensorflow 2.6.2
    google tensorflow 2.7.0
    ibm watson discovery 2.0.0
    ibm watson discovery 2.2.1