In Tensorflow version 2.3.0, the SparseCountSparseOutput
and RaggedCountSparseOutput
implementations don't validate that the weights
tensor has the same shape as the data. The check exists for DenseCountSparseOutput
, where both tensors are fully specified. In the sparse and ragged count weights are still accessed in parallel with the data. But, since there is no validation, a user passing fewer weights than the values for the tensors can generate a read from outside the bounds of the heap buffer allocated for the weights. The issue is patched in commit 3cbb917b4714766030b28eba9fb41bb97ce9ee02 and is released in TensorFlow version 2.3.1.
[ { "source": "https://github.com/tensorflow/tensorflow/commit/3cbb917b4714766030b28eba9fb41bb97ce9ee02", "deprecated": false, "signature_version": "v1", "signature_type": "Line", "target": { "file": "tensorflow/core/kernels/count_ops.cc" }, "digest": { "threshold": 0.9, "line_hashes": [ "194455449804247006546970132492779615094", "178731129031260204571627040095543599818", "22442231680206585208932878058814312758", "146741406298267783987235037807096346951", "270064729730618086481934325402793011741", "329344782668638107157103525047366598930", "285728407237300076804994927600394619637", "310080866930792095910778699557952768464", "273815884519049275176915647183401088747", "281569265756867032329963835068941296722", "59438575670218216172183450249341417337", "59397343641890017345404701263589996852", "43962453346651511293497165677412754359", "137531346914510616513168760830676577742" ] }, "id": "CVE-2020-15196-9a90de26" } ]