Skip to content
CriticalVulnerability

CVE-2021-37678: TensorFlow arbitrary code execution when deserializing Keras model from YAML

Identifier
CVE-2021-37678
Published
Record updated
View JSON
Affected
  • tensorflow < 2.3.4, fixed in 2.3.4, released August 10, 2021, 3 days before disclosure
  • tensorflow >= 2.4.0, < 2.4.3, fixed in 2.4.3, released August 10, 2021, 3 days before disclosure
  • tensorflow = 2.5.0, fixed in 2.5.1, released August 10, 2021, 3 days before disclosure
  • and 6 more
Known exploitation
Not listed in the CISA Known Exploited Vulnerabilities catalog at the last check.
EPSS
0.4%

Summary

TensorFlow and Keras can be tricked into arbitrary code execution when deserializing a Keras model from YAML format. The implementation uses `yaml.unsafe_load`, which can execute arbitrary code on the input. The YAML format support has been removed for now.

Mitigation

Patched in GitHub commit 23d6383eb6c14084a8fc3bdf164043b974818012. The fix will be included in TensorFlow 2.6.0, and the commit will also be cherry-picked to TensorFlow 2.5.1, TensorFlow 2.4.3, and TensorFlow 2.3.4.