← back
CVE-2020-15206

Denial of Service in Tensorflow

CVSS 9 CRITICALEPSS 0.9%CWE-20
In short

A flaw in TensorFlow allows attackers to corrupt or crash the system when loading specially crafted model files, affecting services that rely on TensorFlow to run machine learning models. This can knock offline applications that depend on these services.

Technical detail

CWE-20 (Improper Input Validation) in TensorFlow's SavedModel protocol buffer deserialization: malformed model files with altered required key names trigger segmentation faults and memory corruption during model loading. Attack vector is local or remote file upload; pre-condition is the victim service processing untrusted model artifacts; impact includes denial of service and potential data corruption in inference pipelines.

Summary generated and translated by AI from the official description.
In Tensorflow before versions 1.15.4, 2.0.3, 2.1.2, 2.2.1 and 2.3.1, changing the TensorFlow's `SavedModel` protocol buffer and altering the name of required keys results in segfaults and data corruption while loading the model. This can cause a denial of service in products using `tensorflow-serving` or other inference-as-a-service installments. Fixed were added in commits f760f88b4267d981e13f4b302c437ae800445968 and fcfef195637c6e365577829c4d67681695956e7d (both going into TensorFlow 2.2.0 and 2.3.0 but not yet backported to earlier versions). However, this was not enough, as #41097 reports a different failure mode. The issue is patched in commit adf095206f25471e864a8e63a0f1caef53a0e3a6, and is released in TensorFlow versions 1.15.4, 2.0.3, 2.1.2, 2.2.1, or 2.3.1.
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H
Affected products
tensorflow · tensorflow

Want to know if your infrastructure is exposed to this?

Talk to TrueHacking →