Memory leak in Tensorflow
Medium4.3CVE-2022-23578 · Published Feb 10, 2022 · updated Jul 13, 2026
### Impact If a graph node is invalid, TensorFlow can leak memory in the [implementation of `ImmutableExecutorState::Initialize`](https://github.com/tensorflow/tensorflow/blob/a1320ec1eac186da1d03f033109191f715b2b130/tensorflow/core/common_runtime/immutable_executor_state.cc#L84-L262): ```cc Status s = params_.create_kernel(n->properties(), &item->kernel); if (!s.ok()) { item->kernel = nullptr; s = AttachDef(s, *n); return s; } ``` Here, we set `item->kernel` to `nullptr` but it is a simple `OpKernel*` pointer so the memory that was previously allocated to it would leak. ### Patches We have patched the issue in GitHub commit [c79ccba517dbb1a0ccb9b01ee3bd2a63748b60dd](https://github.com/tensorflow/tensorflow/commit/c79ccba517dbb1a0ccb9b01ee3bd2a63748b60dd). 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. ### For more information Please consult [our security guide](https://github.com/tensorflow/tensorflow/blob/master/SECURITY.md) for more information regarding the security model and how to contact us with issues and question...
Affected versions
| Package | Affected | Fixed in |
|---|---|---|
| tensorflow PyPI | < 2.5.3 | 2.5.3 |
| >= 2.6.0, < 2.6.3 | 2.6.3 | |
| >= 2.7.0, < 2.7.1 | 2.7.1 |
Details and references
### Impact If a graph node is invalid, TensorFlow can leak memory in the [implementation of `ImmutableExecutorState::Initialize`](https://github.com/tensorflow/tensorflow/blob/a1320ec1eac186da1d03f033109191f715b2b130/tensorflow/core/common_runtime/immutable_executor_state.cc#L84-L262): ```cc Status s = params_.create_kernel(n->properties(), &item->kernel); if (!s.ok()) { item->kernel = nullptr; s = AttachDef(s, *n); return s; } ``` Here, we set `item->kernel` to `nullptr` but it is a simple `OpKernel*` pointer so the memory that was previously allocated to it would leak. ### Patches We have patched the issue in GitHub commit [c79ccba517dbb1a0ccb9b01ee3bd2a63748b60dd](https://github.com/tensorflow/tensorflow/commit/c79ccba517dbb1a0ccb9b01ee3bd2a63748b60dd). 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. ### For more information Please consult [our security guide](https://github.com/tensorflow/tensorflow/blob/master/SECURITY.md) for more information regarding the security model and how to contact us with issues and questions.
- CVSS 3.1
- CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L
- Severity from
- GitHub (reviewed advisory)
- Weakness
- CWE-401
- Also known as
- BIT-tensorflow-2022-23578, CVE-2022-23578, PYSEC-2022-142, PYSEC-2022-87, PYSEC-2026-3138
- github.com/tensorflow/tensorflow/security/advisories/GHSA-8r7c-3cm2-3h8f
- nvd.nist.gov/vuln/detail/CVE-2022-23578
- github.com/tensorflow/tensorflow/commit/c79ccba517dbb1a0ccb9b01ee3bd2a63748b60dd
- github.com/pypa/advisory-database/tree/main/vulns/tensorflow-cpu/PYSEC-2022-87.yaml
- github.com/pypa/advisory-database/tree/main/vulns/tensorflow-gpu/PYSEC-2022-142.yaml
- github.com/tensorflow/tensorflow
- github.com/tensorflow/tensorflow/blob/a1320ec1eac186da1d03f033109191f715b2b130/tensorflow/core/common_runtime/immutable_executor_state.cc#L84-L262
More TensorFlow advisories
All TensorFlow| Date | Advisory | Severity | Fixed in |
|---|---|---|---|
| Feb 102022 | `CHECK`-failures in binary ops in Tensorflow | Medium6.5 | 2.5.3+2 more |
| Feb 102022 | `CHECK`-failures in `TensorByteSize` in Tensorflow | Medium6.5 | 2.5.3+2 more |
| Feb 102022 | `CHECK`-failures during Grappler's `SafeToRemoveIdentity` in Tensorflow | Medium6.5 | 2.5.3+2 more |
| Feb 102022 | Integer overflow in Tensorflow | High6.5 | 2.5.3+2 more |
| Feb 102022 | Integer overflow in Tensorflow | High6.5 | 2.5.3+2 more |
| Feb 102022 | Null-dereference in Tensorflow | High6.5 | 2.5.3+2 more |