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

Null-dereference in Tensorflow

CVE-2022-23570

Description

Tensorflow is an Open Source Machine Learning Framework. When decoding a tensor from protobuf, TensorFlow might do a null-dereference if attributes of some mutable arguments to some operations are missing from the proto. This is guarded by a DCHECK. However, DCHECK is a no-op in production builds and an assertion failure in debug builds. In the first case execution proceeds to the dereferencing of the null pointer, whereas in the second case it results in a crash due to the assertion failure. The fix will be included in TensorFlow 2.8.0. We will also cherrypick this commit on TensorFlow 2.7.1, and TensorFlow 2.6.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

1
8a513cec4bec

Prevent null dereference read in `SpecializeType()`

https://github.com/tensorflow/tensorflowMihai MaruseacNov 8, 2021via ghsa
1 file changed · +6 1
  • tensorflow/core/framework/full_type_util.cc+6 1 modified
    @@ -22,6 +22,7 @@ limitations under the License.
     #include "tensorflow/core/framework/op_def.pb.h"
     #include "tensorflow/core/framework/types.h"
     #include "tensorflow/core/platform/statusor.h"
    +#include "tensorflow/core/protobuf/error_codes.pb.h"
     
     namespace tensorflow {
     
    @@ -102,7 +103,11 @@ StatusOr<FullTypeDef> SpecializeType(const AttrSlice& attrs,
           auto* arg = t->mutable_args(i);
           if (arg->type_id() == TFT_VAR) {
             const auto* attr = attrs.Find(arg->s());
    -        DCHECK(attr != nullptr);
    +        if (attr == nullptr) {
    +          return Status(
    +              error::INVALID_ARGUMENT,
    +              absl::StrCat("Could not find an attribute for key ", arg->s()));
    +        }
             if (attr->value_case() == AttrValue::kList) {
               const auto& attr_list = attr->list();
               arg->set_type_id(TFT_PRODUCT);
    

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

7

News mentions

0

No linked articles in our index yet.