CVE-2022-41887: Overflow in `tf.keras.losses.poisson` in Tensorflow
TensorFlow is an open source platform for machine learning. tf.keras.losses.poisson receives a ypred and ytrue 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.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
TensorFlowto a version that resolves this vulnerability.Fixed in 2.11Patch c5b30379ba87cbe774b08ac50c1f6d36df4ebb7c - Upgrade
Upgrade
TensorFlowto a version that resolves this vulnerability.Fixed in 2.10.1Patch c5b30379ba87cbe774b08ac50c1f6d36df4ebb7c - Upgrade
Upgrade
TensorFlowto a version that resolves this vulnerability.Fixed in 2.9.3Patch c5b30379ba87cbe774b08ac50c1f6d36df4ebb7c
Event History
Frequently Asked Questions
What is CVE-2022-41887?
CVE-2022-41887 is a vulnerability in TensorFlow that can cause a crash due to a size mismatch during broadcast assignment.
What is the severity of CVE-2022-41887?
The severity of CVE-2022-41887 is high with a CVSS score of 7.5.
What software versions are affected by CVE-2022-41887?
Google TensorFlow versions between 2.9.0 and 2.9.3, as well as version 2.10.0, are affected by CVE-2022-41887.
How can CVE-2022-41887 be exploited?
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.
Are there any references for CVE-2022-41887?
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)