Executive brief
TensorFlow is an open-source machine learning library used to build and train neural networks. A denial-of-service vulnerability in the IRFFT (inverse real fast Fourier transform) operation allows an attacker to crash TensorFlow applications by providing specially crafted input parameters, causing the application to terminate abruptly.
Technical details
The vulnerability is a CHECK-fail assertion triggered in tf.raw_ops.IRFFT when an empty FFT length is specified alongside valid input data. The vulnerable code passes parameters to Eigen's FFT implementation without properly validating that the FFT length is non-zero, causing an assertion failure that terminates the process. An attacker can exploit this remotely if the vulnerable TensorFlow function is exposed via a web service or API without proper input validation. The fix validates FFT length parameters before passing them to Eigen code. Patches are available in TensorFlow 2.1.4, 2.2.3, 2.3.3, 2.4.2, and 2.5.0+.
Affected products
- Google TensorFlow all versions before 2.1.4; 2.2.0 before 2.2.3; 2.3.0 before 2.3.3; 2.4.0 before 2.4.2
- Google TensorFlow CPU all versions before 2.1.4; 2.2.0 before 2.2.3; 2.3.0 before 2.3.3; 2.4.0 before 2.4.2
- Google TensorFlow GPU all versions before 2.1.4; 2.2.0 before 2.2.3; 2.3.0 before 2.3.3; 2.4.0 before 2.4.2
Timeline
- 2021-05-21: disclosed: Vulnerability published via GHSA-36vm-xw34-x4pj
- 2021-05-21: patched: Patches released in TensorFlow 2.1.4, 2.2.3, 2.3.3, 2.4.2, and 2.5.0