TensorFlow Quantized Tensor Assignment Causes Uncaught nullptr (v2.11+)
CVE-2022-41889 Published on November 18, 2022
Segfault via invalid attributes in `pywrap_tfe_src.cc` in Tensorflow
TensorFlow is an open source platform for machine learning. If a list of quantized tensors is assigned to an attribute, the pywrap code fails to parse the tensor and returns a `nullptr`, which is not caught. An example can be seen in `tf.compat.v1.extract_volume_patches` by passing in quantized tensors as input `ksizes`. We have patched the issue in GitHub commit e9e95553e5411834d215e6770c81a83a3d0866ce. The fix will be included in TensorFlow 2.11. We will also cherrypick this commit on TensorFlow 2.10.1, 2.9.3, and TensorFlow 2.8.4, as these are also affected and still in supported range.
Vulnerability Analysis
CVE-2022-41889 can be exploited with local system access, and requires small amount of user privileges. This vulnerability is considered to have a low attack complexity. Public availability of a proof of concept (POC) exploit exists for CVE-2022-41889. 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
NULL Pointer Dereference
A NULL pointer dereference occurs when the application dereferences a pointer that it expects to be valid, but is NULL, typically causing a crash or exit. NULL pointer dereference issues can occur through a number of flaws, including race conditions, and simple programming omissions.
Products Associated with CVE-2022-41889
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-41889
| Package Manager | Vulnerable Package | Versions | Fixed In |
|---|---|---|---|
| pip | tensorflow | < 2.8.4 | 2.8.4 |
| 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-cpu | >= 2.9.0, < 2.9.3 | 2.9.3 |
| pip | tensorflow-gpu | >= 2.9.0, < 2.9.3 | 2.9.3 |
| pip | tensorflow-cpu | >= 2.10.0, < 2.10.1 | 2.10.1 |
| pip | tensorflow-gpu | >= 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.