CVE-2021-37678: TensorFlow-GPU Arbitrary Code Execution

tensorflow-gpu Updated 02 Oct 2025

Summary

12/08/2021
Yes i
Unrated
Not published

CVE-2021-37678: TensorFlow is an end-to-end open source platform for machine learning. Affects tensorflow-gpu across 3 version ranges.

>= 2.3.0, < 2.3.4 >= 2.4.0, < 2.4.3 < 23d6383eb6c14084a8fc3bdf164043b974818012

Fixed in 2.3.4 or 2.4.3, depending on the release line you run. How to fix ↓

Also tracked for

The same CVE-2021-37678 is tracked separately for each ecosystem and vendor. Its fix information is the same; the package and affected versions differ.

Free scan

Check if this vulnerability affects your application

Upload a manifest or SBOM and we'll show whether you're affected, plus every other risky package in the same scan.

Check my app free

No signup required · Results in about 60 seconds

Sponsored Devnack Your last release was probably never penetration tested Manual testing by engineers who build software, not an auditor's checklist. Trusted by teams at Swift and Google Talk to Devnack

Background

TensorFlow is an end-to-end open source platform for machine learning. It provides a comprehensive ecosystem of tools, libraries, and resources for developing and deploying machine learning models. TensorFlow-GPU is a variant of TensorFlow that leverages GPU acceleration for faster computation. It is widely used in various industries and research domains for training and inference of deep learning models.

Vulnerability Detail

In affected versions of TensorFlow and Keras, there is a vulnerability that allows for arbitrary code execution when deserializing a Keras model from YAML format. The implementation uses yaml.unsafe_load, which can execute arbitrary code provided as input. This can lead to remote code execution and potential compromise of the system. The vulnerability has been assigned CVE-2021-37678 and has been patched in TensorFlow commit 23d6383eb6c14084a8fc3bdf164043b974818012. The fix will be included in TensorFlow 2.6.0, and it has also been backported to TensorFlow 2.5.1, TensorFlow 2.4.3, and TensorFlow 2.3.4.

How To Fix

Latest published version: 2.12.0 as of 22 Oct 2026

pip install --upgrade "tensorflow-gpu==2.12.0"

Upgrading to it may include breaking changes; the versions below are the minimum fixed release for this vulnerability.

If you can't move to the latest

The minimum fixed version depends on the release line you run.

  • >= 2.3.0, < 2.3.4 2.3.4
    pip install --upgrade "tensorflow-gpu==2.3.4"
  • >= 2.4.0, < 2.4.3 2.4.3
    pip install --upgrade "tensorflow-gpu==2.4.3"

Tip — Not sure which release line you're on? Vulert can find the fix for the version you are using. Scan free →

Workaround

As a temporary workaround, it is advised to avoid deserializing Keras models from YAML format. Instead, consider using other supported serialization formats like JSON or HDF5. If YAML deserialization is necessary, ensure that the input is trusted and comes from a trusted source.

Conclusion

The vulnerability in TensorFlow-GPU and Keras allows for arbitrary code execution when deserializing Keras models from YAML format. It is crucial to update to the latest patched version of TensorFlow-GPU or apply the respective patches for the affected versions. Avoiding deserialization from YAML format and ensuring trusted input sources can serve as temporary workarounds. For further assistance and support in vulnerability remediation, please contact DevNack.com.

See every vulnerability recorded for tensorflow-gpu →

Share this vulnerability

FAQ

TensorFlow-GPU is a variant of TensorFlow that utilizes GPU acceleration for faster computation of machine learning models.

Keras is a high-level neural networks API, written in Python and capable of running on top of TensorFlow. It provides an easy-to-use interface for building and training deep learning models.

YAML (YAML Ain't Markup Language) is a human-readable data serialization format. It is commonly used for configuration files and data exchange between languages.

Arbitrary code execution refers to the ability of an attacker to execute any code of their choice on a target system. This can lead to unauthorized access, data breaches, and system compromise.

You can check the version of TensorFlow-GPU installed by running the following command: pip show tensorflow-gpu

Related vulnerabilities

Recent vulnerabilities recorded for tensorflow-gpu.

How To Fix

Latest published version: 2.12.0 as of 22 Oct 2026

pip install --upgrade "tensorflow-gpu==2.12.0"

Upgrading to it may include breaking changes; the versions below are the minimum fixed release for this vulnerability.

If you can't move to the latest

The minimum fixed version depends on the release line you run.

  • >= 2.3.0, < 2.3.4 2.3.4
    pip install --upgrade "tensorflow-gpu==2.3.4"
  • >= 2.4.0, < 2.4.3 2.4.3
    pip install --upgrade "tensorflow-gpu==2.4.3"

Tip — Not sure which release line you're on? Vulert can find the fix for the version you are using. Scan free →

Subscribe to Vulert on Telegram
Daily digest of new CVEs, critical and high severity, affected packages and fixes — plus a weekly roundup.
Join the channel →
Help improve this record
Report an issue or send feedback