VYPR
Moderate severityNVD Advisory· Published Sep 25, 2020· Updated Aug 4, 2024

Segfault in Tensorflow

CVE-2020-15204

Description

In eager mode, TensorFlow before versions 1.15.4, 2.0.3, 2.1.2, 2.2.1 and 2.3.1 does not set the session state. Hence, calling tf.raw_ops.GetSessionHandle or tf.raw_ops.GetSessionHandleV2 results in a null pointer dereference In linked snippet, in eager mode, ctx->session_state() returns nullptr. Since code immediately dereferences this, we get a segmentation fault. The issue is patched in commit 9a133d73ae4b4664d22bd1aa6d654fec13c52ee1, and is released in TensorFlow versions 1.15.4, 2.0.3, 2.1.2, 2.2.1, or 2.3.1.

Affected packages

Versions sourced from the GitHub Security Advisory.

PackageAffected versionsPatched versions
tensorflowPyPI
< 1.15.41.15.4
tensorflowPyPI
>= 2.0.0, < 2.0.32.0.3
tensorflowPyPI
>= 2.1.0, < 2.1.22.1.2
tensorflowPyPI
>= 2.2.0, < 2.2.12.2.1
tensorflowPyPI
>= 2.3.0, < 2.3.12.3.1
tensorflow-cpuPyPI
< 1.15.41.15.4
tensorflow-cpuPyPI
>= 2.0.0, < 2.0.32.0.3
tensorflow-cpuPyPI
>= 2.1.0, < 2.1.22.1.2
tensorflow-cpuPyPI
>= 2.2.0, < 2.2.12.2.1
tensorflow-cpuPyPI
>= 2.3.0, < 2.3.12.3.1
tensorflow-gpuPyPI
< 1.15.41.15.4
tensorflow-gpuPyPI
>= 2.0.0, < 2.0.32.0.3
tensorflow-gpuPyPI
>= 2.1.0, < 2.1.22.1.2
tensorflow-gpuPyPI
>= 2.2.0, < 2.2.12.2.1
tensorflow-gpuPyPI
>= 2.3.0, < 2.3.12.3.1

Affected products

1

Patches

1
9a133d73ae4b

Prevent segfault in `GetSessionHandle{,V2}`.

https://github.com/tensorflow/tensorflowMihai MaruseacSep 18, 2020via ghsa
2 files changed · +15 1
  • tensorflow/core/kernels/session_ops.cc+7 1 modified
    @@ -16,6 +16,7 @@ limitations under the License.
     // See docs in ../ops/data_flow_ops.cc.
     
     #include <limits.h>
    +
     #include <vector>
     
     #include "tensorflow/core/common_runtime/device.h"
    @@ -27,6 +28,7 @@ limitations under the License.
     #include "tensorflow/core/framework/types.h"
     #include "tensorflow/core/lib/core/errors.h"
     #include "tensorflow/core/lib/gtl/map_util.h"
    +#include "tensorflow/core/platform/errors.h"
     #include "tensorflow/core/platform/logging.h"
     #include "tensorflow/core/platform/macros.h"
     #include "tensorflow/core/platform/mutex.h"
    @@ -42,7 +44,11 @@ class GetSessionHandleOp : public OpKernel {
     
       void Compute(OpKernelContext* ctx) override {
         const Tensor& val = ctx->input(0);
    -    int64 id = ctx->session_state()->GetNewId();
    +    auto session_state = ctx->session_state();
    +    OP_REQUIRES(ctx, session_state != nullptr,
    +                errors::FailedPrecondition(
    +                    "GetSessionHandle called on null session state"));
    +    int64 id = session_state->GetNewId();
         TensorStore::TensorAndKey tk{val, id, requested_device()};
         OP_REQUIRES_OK(ctx, ctx->tensor_store()->AddTensor(name(), tk));
     
    
  • tensorflow/python/ops/raw_ops_test.py+8 0 modified
    @@ -25,6 +25,7 @@
     from tensorflow.python.framework import errors
     from tensorflow.python.framework import ops
     from tensorflow.python.framework import test_util
    +from tensorflow.python.ops import gen_data_flow_ops
     from tensorflow.python.ops import gen_math_ops
     from tensorflow.python.ops import gen_string_ops
     from tensorflow.python.platform import test
    @@ -79,6 +80,13 @@ def testStringNGramsBadDataSplits(self, splits):
                   pad_width=0,
                   preserve_short_sequences=False))
     
    +  def testGetSessionHandle(self):
    +    if context.executing_eagerly():
    +      with self.assertRaisesRegex(
    +          errors.FailedPreconditionError,
    +          "GetSessionHandle called on null session state"):
    +        gen_data_flow_ops.GetSessionHandle(value=[1])
    +
     
     if __name__ == "__main__":
       ops.enable_eager_execution()
    

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.