TensorFlow <=2.11.0 char->bool UB Crash on tensor printing
CVE-2022-41911 Published on November 18, 2022
Invalid char to bool conversion when printing a tensor in Tensorflow
TensorFlow is an open source platform for machine learning. When printing a tensor, we get it's data as a `const char*` array (since that's the underlying storage) and then we typecast it to the element type. However, conversions from `char` to `bool` are undefined if the `char` is not `0` or `1`, so sanitizers/fuzzers will crash. The issue has been patched in GitHub commit `1be74370327`. The fix will be included in TensorFlow 2.11.0. We will also cherrypick this commit on TensorFlow 2.10.1, TensorFlow 2.9.3, and TensorFlow 2.8.4, as these are also affected and still in supported range.
Vulnerability Analysis
CVE-2022-41911 can be exploited with network access, requires user interaction and a small amount of user privileges. This vulnerability is consided to have a high level of attack complexity. The potential impact of an exploit of this vulnerability is considered to have no impact on confidentiality and integrity, and a high impact on availability.
Weakness Type
Incorrect Type Conversion or Cast
The software does not correctly convert an object, resource, or structure from one type to a different type.
Products Associated with CVE-2022-41911
Want to know whenever a new CVE is published for Google Tensorflow? stack.watch will email you.
Affected Versions
tensorflow:- Version >= 2.10.0, < 2.10.1 is affected.
- Version >= 2.9.0, < 2.9.3 is affected.
- Version < 2.8.4 is affected.
Vulnerable Packages
The following package name and versions may be associated with CVE-2022-41911
| Package Manager | Vulnerable Package | Versions | Fixed In |
|---|---|---|---|
| pip | tensorflow | < 2.8.4 | 2.8.4 |
| pip | tensorflow-cpu | >= 2.9.0, < 2.9.3 | 2.9.3 |
| pip | tensorflow-gpu | >= 2.10.0, < 2.10.1 | 2.10.1 |
| pip | tensorflow | >= 2.9.0, < 2.9.3 | 2.9.3 |
| pip | tensorflow | >= 2.10.0, < 2.10.1 | 2.10.1 |
| pip | tensorflow-cpu | < 2.8.4 | 2.8.4 |
| pip | tensorflow-gpu | < 2.8.4 | 2.8.4 |
| pip | tensorflow-gpu | >= 2.9.0, < 2.9.3 | 2.9.3 |
| pip | tensorflow-cpu | >= 2.10.0, < 2.10.1 | 2.10.1 |
Exploit Probability
EPSS (Exploit Prediction Scoring System) scores estimate the probability that a vulnerability will be exploited in the wild within the next 30 days. The percentile shows you how this score compares to all other vulnerabilities.