VYPR
Moderate severityNVD Advisory· Published Feb 4, 2022· Updated Apr 22, 2025

Null pointer dereference in Grappler's `IsConstant` in Tensorflow

CVE-2022-23589

Description

Tensorflow is an Open Source Machine Learning Framework. Under certain scenarios, Grappler component of TensorFlow can trigger a null pointer dereference. There are 2 places where this can occur, for the same malicious alteration of a SavedModel file (fixing the first one would trigger the same dereference in the second place). First, during constant folding, the GraphDef might not have the required nodes for the binary operation. If a node is missing, the correposning mul_*child would be null, and the dereference in the subsequent line would be incorrect. We have a similar issue during IsIdentityConsumingSwitch. 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.

Affected packages

Versions sourced from the GitHub Security Advisory.

PackageAffected versionsPatched versions
tensorflowPyPI
< 2.5.32.5.3
tensorflowPyPI
>= 2.6.0, < 2.6.32.6.3
tensorflowPyPI
>= 2.7.0, < 2.7.12.7.1
tensorflow-cpuPyPI
< 2.5.32.5.3
tensorflow-cpuPyPI
>= 2.6.0, < 2.6.32.6.3
tensorflow-cpuPyPI
>= 2.7.0, < 2.7.12.7.1
tensorflow-gpuPyPI
< 2.5.32.5.3
tensorflow-gpuPyPI
>= 2.6.0, < 2.6.32.6.3
tensorflow-gpuPyPI
>= 2.7.0, < 2.7.12.7.1

Affected products

1

Patches

2
045deec1cbde

Prevent null pointer dereference in `mutable_graph_view`

https://github.com/tensorflow/tensorflowMihai MaruseacNov 13, 2021via ghsa
1 file changed · +3 0
  • tensorflow/core/grappler/mutable_graph_view.cc+3 0 modified
    @@ -68,6 +68,9 @@ bool IsIdentityConsumingSwitch(const MutableGraphView& graph,
         }
     
         NodeDef* input_node = graph.GetNode(tensor_id.node());
    +    if (input_node == nullptr) {
    +      return false;
    +    }
         return IsSwitch(*input_node);
       }
       return false;
    
0a365c029e43

Prevent null pointer dereference in constant folding.

https://github.com/tensorflow/tensorflowMihai MaruseacNov 13, 2021via ghsa
1 file changed · +3 0
  • tensorflow/core/grappler/optimizers/constant_folding.cc+3 0 modified
    @@ -3505,6 +3505,9 @@ bool ConstantFolding::MulConvPushDown(GraphDef* optimized_graph, NodeDef* node,
     
       NodeDef* mul_left_child = node_map_->GetNode(node->input(0));
       NodeDef* mul_right_child = node_map_->GetNode(node->input(1));
    +  if (mul_left_child == nullptr || mul_right_child == nullptr) {
    +    return false;
    +  }
       // One child must be constant, and the second must be Conv op.
       const bool left_child_is_constant = IsReallyConstant(*mul_left_child);
       const bool right_child_is_constant = IsReallyConstant(*mul_right_child);
    

Vulnerability mechanics

Generated by null/stub on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.

References

9

News mentions

0

No linked articles in our index yet.