Executive brief
TensorFlow is a machine learning library used to build and deploy AI models. The SparseBincount operation can crash (segfault) when given malformed input data, causing the application to crash and denying service to users and processes relying on that TensorFlow instance.
Technical details
The vulnerability is a segmentation fault (CWE-20: Improper Input Validation) in TensorFlow's SparseBincount operation. When SparseBincount receives indices, values, and dense_shape parameters that do not form a valid sparse tensor, it fails to validate the input properly and attempts to dereference invalid memory, resulting in a process crash. The attack vector is local/network depending on deployment (requires ability to call SparseBincount with crafted inputs); no authentication is required. An attacker can achieve denial of service by crashing the TensorFlow process. The vulnerability has been patched in TensorFlow 2.7.2, 2.8.1, 2.9.1, and 2.10.0.
Affected products
- Google TensorFlow 0.x through 2.7.1; 2.8.0; 2.9.0
- Google TensorFlow CPU 1.15.0 through 2.7.1; 2.8.0; 2.9.0
- Google TensorFlow GPU 0.x through 2.7.1; 2.8.0; 2.9.0
Timeline
- 2022-09-16: disclosed
- 2022-09-16: patched: Patched in TensorFlow 2.7.2, 2.8.1, 2.9.1, and 2.10.0