SB2022020239 - Multiple vulnerabilities in TensorFlow



SB2022020239 - Multiple vulnerabilities in TensorFlow

Published: February 2, 2022 Updated: May 4, 2026

Security Bulletin ID SB2022020239
CSH Severity
High
Patch available
YES
Number of vulnerabilities 31
Exploitation vector Remote access
Highest impact Data manipulation

Breakdown by Severity

High 3% Medium 71% Low 26%
  • Low
  • Medium
  • High
  • Critical

Description

This security bulletin contains information about 31 vulnerabilities.


1) Input validation error (CVE-ID: CVE-2022-23594)

The vulnerability allows a local user to cause a denial of service or perform out-of-bounds memory access.

The vulnerability exists due to improper input validation in the TFG dialect GraphDef-to-MLIR conversion logic when converting a modified SavedModel GraphDef to MLIR-based IR. A local user can alter the SavedModel format on disk to cause a denial of service or perform out-of-bounds memory access.

Under certain scenarios, heap out-of-bounds read and write operations are possible.


2) Improper Check or Handling of Exceptional Conditions (CVE-ID: CVE-2022-23590)

The vulnerability allows a remote attacker to cause a denial of service.

The vulnerability exists due to improper error handling in GraphDef processing when loading a maliciously altered SavedModel. A remote attacker can supply a specially crafted GraphDef to cause a denial of service.


3) Uncontrolled Recursion (CVE-ID: CVE-2022-23591)

The vulnerability allows a remote attacker to cause a denial of service.

The vulnerability exists due to uncontrolled recursion in GraphDef when loading a SavedModel containing a self-recursive function. A remote attacker can supply a crafted SavedModel to cause a denial of service.

The issue is triggered during execution while resolving NodeDef entries for the recursive function.


4) NULL pointer dereference (CVE-ID: CVE-2022-23589)

The vulnerability allows a remote attacker to cause a denial of service.

The vulnerability exists due to a null pointer dereference in Grappler's IsConstant constant folding logic and IsIdentityConsumingSwitch when processing a maliciously altered SavedModel file. A remote attacker can supply a specially crafted SavedModel file to cause a denial of service.


5) Uncaught Exception (CVE-ID: CVE-2022-23582)

The vulnerability allows a remote user to cause a denial of service.

The vulnerability exists due to improper handling of partial or overflowing tensor shapes in TensorByteSize when processing an altered SavedModel. A remote user can supply a specially crafted SavedModel to cause a denial of service.


6) Input validation error (CVE-ID: CVE-2022-23579)

The vulnerability allows a remote attacker to cause a denial of service.

The vulnerability exists due to improper input validation in Grappler's SafeToRemoveIdentity when processing an altered SavedModel. A remote attacker can supply a specially crafted SavedModel to cause a denial of service.


7) Input validation error (CVE-ID: CVE-2022-23580)

The vulnerability allows a remote attacker to cause a denial of service.

The vulnerability exists due to improper input validation in shape inference when processing a user-controlled tensor value. A remote attacker can supply a crafted tensor with a large dimension value to cause a denial of service.


8) NULL pointer dereference (CVE-ID: CVE-2022-23577)

The vulnerability allows a local user to cause a denial of service.

The vulnerability exists due to a null pointer dereference in GetInitOp when loading a maliciously altered SavedModel from disk. A local user can modify the SavedModel protobuf on disk to cause a denial of service.


9) Integer overflow (CVE-ID: CVE-2022-23576)

The vulnerability allows a remote attacker to cause a denial of service.

The vulnerability exists due to integer overflow in OpLevelCostEstimator::CalculateOutputSize when processing an operation involving tensors with a large number of elements. A remote attacker can create an operation with sufficiently large tensor dimensions to cause a denial of service.


10) Integer overflow (CVE-ID: CVE-2022-23575)

The vulnerability allows a remote attacker to cause an integer overflow.

The vulnerability exists due to integer overflow in OpLevelCostEstimator::CalculateTensorSize when calculating the size of a tensor with a large enough number of elements. A remote attacker can create an operation involving a tensor with a sufficiently large element count to cause an integer overflow.


11) Input validation error (CVE-ID: CVE-2022-23564)

The vulnerability allows a remote attacker to cause a denial of service.

The vulnerability exists due to improper input validation in resource handle tensor decoding when parsing protobuf input. A remote attacker can supply user-controlled arguments to trigger a failed CHECK assertion to cause a denial of service.


12) Out-of-bounds write (CVE-ID: CVE-2022-23561)

The vulnerability allows a remote attacker to perform an arbitrary write.

The vulnerability exists due to out-of-bounds write in TFLite when parsing a crafted TFLite model. A remote attacker can supply a specially crafted model to perform an arbitrary write.

Under certain conditions, the issue can override the linked list used by the memory allocator.


13) Integer overflow (CVE-ID: CVE-2022-23558)

The vulnerability allows a remote attacker to cause a denial of service.

The vulnerability exists due to integer overflow in TfLiteIntArrayCreate when parsing a crafted TFLite model. A remote attacker can supply a specially crafted model to cause a denial of service.


14) Division by zero (CVE-ID: CVE-2022-21741)

The vulnerability allows a remote attacker to cause a denial of service.

The vulnerability exists due to division by zero in the depthwise convolution implementation in TFLite when parsing a crafted TFLite model. A remote attacker can supply a specially crafted model to cause a denial of service.


15) Heap-based buffer overflow (CVE-ID: CVE-2022-21740)

The vulnerability allows a local user to cause a denial of service.

The vulnerability exists due to a heap-based buffer overflow in SparseCountSparseOutput when parsing user-supplied input to the operation. A local user can supply crafted indices and length values to cause a denial of service.


16) NULL pointer dereference (CVE-ID: CVE-2022-21739)

The vulnerability allows a remote attacker to cause a denial of service.

The vulnerability exists due to a reference binding to null pointer in the QuantizedMaxPool operation when processing user-supplied input tensors. A remote attacker can supply crafted arguments to trigger a crash and cause a denial of service.


17) Input validation error (CVE-ID: CVE-2022-21736)

The vulnerability allows a local user to cause a denial of service.

The vulnerability exists due to improper input validation in SparseTensorSliceDataset when processing user-supplied sparse tensor arguments. A local user can provide crafted indices, values, and dense_shape inputs to cause a denial of service.

The issue can result in dereferencing a nullptr value under certain conditions.


18) Input validation error (CVE-ID: CVE-2022-23569)

The vulnerability allows a remote attacker to cause a denial of service.

The vulnerability exists due to improper input validation in tensor shape handling when building invalid or overflowing tensor shapes. A remote attacker can provide crafted shape values to trigger assertion failures and cause a denial of service.


19) Division by zero (CVE-ID: CVE-2022-21735)

The vulnerability allows a remote attacker to cause a denial of service.

The vulnerability exists due to division by zero in the FractionalMaxPool operation when parsing input. A remote attacker can supply crafted input to trigger a crash and cause a denial of service.


20) Input validation error (CVE-ID: CVE-2022-21734)

The vulnerability allows a remote attacker to cause a denial of service.

The vulnerability exists due to improper input validation in MapStage when processing a non-scalar key tensor. A remote attacker can supply a crafted key tensor to cause a denial of service.


21) Integer overflow (CVE-ID: CVE-2022-23568)

The vulnerability allows a remote attacker to cause a denial of service.

The vulnerability exists due to integer overflow in AddManySparseToTensorsMap when processing user-supplied sparse tensor shapes. A remote attacker can supply crafted input dimensions to trigger an assertion failure and cause a denial of service.


22) Integer overflow (CVE-ID: CVE-2022-23567)

The vulnerability allows a remote attacker to cause a denial of service.

The vulnerability exists due to integer overflow in Sparse*Cwise* ops when processing user-supplied sparse tensor shapes. A remote attacker can supply crafted input dimensions to cause a denial of service.

The issue can trigger excessive memory allocation or assertion failures when constructing new TensorShape objects.


23) Integer overflow (CVE-ID: CVE-2022-21733)

The vulnerability allows a local user to cause a denial of service.

The vulnerability exists due to integer overflow in the StringNGrams operation when processing crafted StringNGrams inputs. A local user can supply a negative pad_width value to trigger an out-of-memory condition to cause a denial of service.


24) Input validation error (CVE-ID: CVE-2022-21732)

The vulnerability allows a local user to cause a denial of service.

The vulnerability exists due to improper input validation in ThreadPoolHandle when processing the num_threads argument. A local user can supply an excessively large num_threads value to cause a denial of service.


25) Type Confusion (CVE-ID: CVE-2022-21731)

The vulnerability allows a remote attacker to cause a denial of service.

The vulnerability exists due to type confusion in ConcatV2 shape inference when processing a crafted axis argument. A remote attacker can supply a specially crafted input to trigger a segmentation fault and cause a denial of service.


26) Integer overflow (CVE-ID: CVE-2022-21729)

The vulnerability allows a local user to cause a denial of service.

The vulnerability exists due to integer overflow leading to division by zero in UnravelIndex when processing crafted indices and dims values. A local user can supply crafted input to trigger a crash to cause a denial of service.


27) Out-of-bounds read (CVE-ID: CVE-2022-21730)

The vulnerability allows a remote attacker to disclose sensitive information.

The vulnerability exists due to an out-of-bounds read in the FractionalAvgPoolGrad operation when parsing invalid input tensors. A remote attacker can supply crafted tensor values to disclose sensitive information.


28) Integer overflow (CVE-ID: CVE-2022-21727)

The vulnerability allows a remote attacker to cause a denial of service.

The vulnerability exists due to integer overflow in shape inference for Dequantize when processing a crafted axis attribute. A remote attacker can supply a specially crafted axis value to cause a denial of service.


29) Out-of-bounds read (CVE-ID: CVE-2022-21726)

The vulnerability allows a remote attacker to cause a denial of service.

The vulnerability exists due to out-of-bounds read in the Dequantize operation when parsing a crafted axis value. A remote attacker can supply a specially crafted input to trigger heap out-of-bounds access and cause a denial of service.


30) Out-of-bounds read (CVE-ID: CVE-2022-21728)

The vulnerability allows a remote attacker to disclose sensitive information.

The vulnerability exists due to an out-of-bounds read in the shape inference for ReverseSequence when processing a ReverseSequence operation with a negative batch_dim value. A remote attacker can supply a specially crafted ReverseSequence operation to disclose sensitive information.

The issue occurs because negative batch_dim values are not fully validated, and excessively negative values can cause access before the start of the dimensions array.


31) Input validation error (CVE-ID: CVE-2022-21725)

The vulnerability allows a remote attacker to cause a denial of service.

The vulnerability exists due to improper input validation in the convolution cost estimator when processing convolution operators with a zero stride value. A remote attacker can supply crafted input that sets the stride to zero to cause a denial of service.


Remediation

Install update from vendor's website.

References