CVE-2020-15209
Null pointer dereference in tensorflow-lite
Severity Score
Exploit Likelihood
Affected Versions
Public Exploits
1Exploited in Wild
-Decision
Descriptions
In tensorflow-lite before versions 1.15.4, 2.0.3, 2.1.2, 2.2.1 and 2.3.1, a crafted TFLite model can force a node to have as input a tensor backed by a `nullptr` buffer. This can be achieved by changing a buffer index in the flatbuffer serialization to convert a read-only tensor to a read-write one. The runtime assumes that these buffers are written to before a possible read, hence they are initialized with `nullptr`. However, by changing the buffer index for a tensor and implicitly converting that tensor to be a read-write one, as there is nothing in the model that writes to it, we get a null pointer dereference. The issue is patched in commit 0b5662bc, and is released in TensorFlow versions 1.15.4, 2.0.3, 2.1.2, 2.2.1, or 2.3.1.
En tensorflow-lite versiones anteriores a 1.15.4, 2.0.3, 2.1.2, 2.2.1 y 2.3.1, un modelo TFLite diseñado puede forzar a un nodo a tener como entrada un tensor respaldado por un búfer de "nullptr". Esto se puede lograr cambiando un índice de búfer en la serialización flatbuffer para convertir un tensor de solo lectura en uno de lectura y escritura. El tiempo de ejecución asume que estos búferes son escritos antes de una posible lectura, por lo que son inicializados con "nullptr". Sin embargo, al cambiar el índice del búfer por un tensor y convertir implícitamente ese tensor en uno de lectura y escritura, ya que no existe nada en el modelo que escriba en él, obtenemos una desreferencia del puntero null. El problema es parcheado en el commit 0b5662bc y es publicado en TensorFlow versiones 1.15.4, 2.0.3, 2.1.2, 2.2.1 o 2.3.1
CVSS Scores
SSVC
- Decision:-
Timeline
- 2020-06-25 CVE Reserved
- 2020-09-25 CVE Published
- 2023-05-02 EPSS Updated
- 2024-08-04 CVE Updated
- 2024-08-04 First Exploit
- ---------- Exploited in Wild
- ---------- KEV Due Date
CWE
- CWE-476: NULL Pointer Dereference
CAPEC
References (4)
URL | Tag | Source |
---|---|---|
https://github.com/tensorflow/tensorflow/releases/tag/v2.3.1 | Third Party Advisory |
URL | Date | SRC |
---|---|---|
https://github.com/tensorflow/tensorflow/security/advisories/GHSA-qh32-6jjc-qprm | 2024-08-04 |
URL | Date | SRC |
---|---|---|
https://github.com/tensorflow/tensorflow/commit/0b5662bc2be13a8c8f044d925d87fb6e56247cd8 | 2021-09-16 |
URL | Date | SRC |
---|---|---|
http://lists.opensuse.org/opensuse-security-announce/2020-10/msg00065.html | 2021-09-16 |
Affected Vendors, Products, and Versions
Vendor | Product | Version | Other | Status | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Vendor | Product | Version | Other | Status | <-- --> | Vendor | Product | Version | Other | Status |
Google Search vendor "Google" | Tensorflow Search vendor "Google" for product "Tensorflow" | < 1.15.4 Search vendor "Google" for product "Tensorflow" and version " < 1.15.4" | lite |
Affected
| ||||||
Google Search vendor "Google" | Tensorflow Search vendor "Google" for product "Tensorflow" | >= 2.0.0 < 2.0.3 Search vendor "Google" for product "Tensorflow" and version " >= 2.0.0 < 2.0.3" | lite |
Affected
| ||||||
Google Search vendor "Google" | Tensorflow Search vendor "Google" for product "Tensorflow" | >= 2.1.0 < 2.1.2 Search vendor "Google" for product "Tensorflow" and version " >= 2.1.0 < 2.1.2" | lite |
Affected
| ||||||
Google Search vendor "Google" | Tensorflow Search vendor "Google" for product "Tensorflow" | >= 2.2.0 < 2.2.1 Search vendor "Google" for product "Tensorflow" and version " >= 2.2.0 < 2.2.1" | lite |
Affected
| ||||||
Google Search vendor "Google" | Tensorflow Search vendor "Google" for product "Tensorflow" | >= 2.3.0 < 2.3.1 Search vendor "Google" for product "Tensorflow" and version " >= 2.3.0 < 2.3.1" | lite |
Affected
| ||||||
Opensuse Search vendor "Opensuse" | Leap Search vendor "Opensuse" for product "Leap" | 15.2 Search vendor "Opensuse" for product "Leap" and version "15.2" | - |
Affected
|