Lucene search

K
osvGoogleOSV:GHSA-98J8-C9Q4-R38G
HistoryFeb 10, 2022 - 12:20 a.m.

Memory exhaustion in Tensorflow

2022-02-1000:20:51
Google
osv.dev
13
tensorflow
stringngrams
integer overflow
denial of service
oom condition
validation
patch
github commit
tensorflow 2.8.0
security guide
qihoo 360 aivul team

EPSS

0.002

Percentile

51.9%

Impact

The implementation of StringNGrams can be used to trigger a denial of service attack by causing an OOM condition after an integer overflow:

import tensorflow as tf

tf.raw_ops.StringNGrams(
  data=['123456'],
  data_splits=[0,1],
  separator='a'*15,
  ngram_widths=[],
  left_pad='',
  right_pad='',
  pad_width=-5, 
  preserve_short_sequences=True)

We are missing a validation on pad_witdh and that result in computing a negative value for ngram_width which is later used to allocate parts of the output.

Patches

We have patched the issue in GitHub commit f68fdab93fb7f4ddb4eb438c8fe052753c9413e8.

The fix will be included in TensorFlow 2.8.0. We will also cherrypick this commit on TensorFlow 2.7.1, TensorFlow 2.6.3, and TensorFlow 2.5.3, as these are also affected and still in supported range.

For more information

Please consult our security guide for more information regarding the security model and how to contact us with issues and questions.

Attribution

This vulnerability has been reported by Yu Tian of Qihoo 360 AIVul Team.

EPSS

0.002

Percentile

51.9%

Related for OSV:GHSA-98J8-C9Q4-R38G