First published: Fri Nov 18 2022(Updated: )
TensorFlow is an open source platform for machine learning. `tf.keras.losses.poisson` receives a `y_pred` and `y_true` that are passed through `functor::mul` in `BinaryOp`. If the resulting dimensions overflow an `int32`, TensorFlow will crash due to a size mismatch during broadcast assignment. We have patched the issue in GitHub commit c5b30379ba87cbe774b08ac50c1f6d36df4ebb7c. The fix will be included in TensorFlow 2.11. We will also cherrypick this commit on TensorFlow 2.10.1 and 2.9.3, as these are also affected and still in supported range. However, we will not cherrypick this commit into TensorFlow 2.8.x, as it depends on Eigen behavior that changed between 2.8 and 2.9.
Credit: security-advisories@github.com
Affected Software | Affected Version | How to fix |
---|---|---|
Google TensorFlow | >=2.9.0<2.9.3 | |
Google TensorFlow | =2.10.0 |
Sign up to SecAlerts for real-time vulnerability data matched to your software, aggregated from hundreds of sources.
CVE-2022-41887 is a vulnerability in TensorFlow that can cause a crash due to a size mismatch during broadcast assignment.
The severity of CVE-2022-41887 is high with a CVSS score of 7.5.
Google TensorFlow versions between 2.9.0 and 2.9.3, as well as version 2.10.0, are affected by CVE-2022-41887.
CVE-2022-41887 can be exploited by passing dimensions to `tf.keras.losses.poisson` that result in an overflow of an `int32` and cause a crash.
Yes, you can find references for CVE-2022-41887 at the following links: - [GitHub - cwise_ops_common.h](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/kernels/cwise_ops_common.h) - [GitHub - losses.py](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/keras/losses.py) - [GitHub - commit](https://github.com/tensorflow/tensorflow/commit/c5b30379ba87cbe774b08ac50c1f6d36df4ebb7c)