Memory leak in decoding PNG images
Moderate severity
GitHub Reviewed
Published
Feb 2, 2022
in
tensorflow/tensorflow
•
Updated Feb 3, 2023
Description
Reviewed
Feb 4, 2022
Published by the National Vulnerability Database
Feb 4, 2022
Published to the GitHub Advisory Database
Feb 9, 2022
Last updated
Feb 3, 2023
Impact
When decoding PNG images TensorFlow can produce a memory leak if the image is invalid.
After calling
png::CommonInitDecode(..., &decode)
, thedecode
value contains allocated buffers which can only be freed by callingpng::CommonFreeDecode(&decode)
. However, several error case in the function implementation invoke theOP_REQUIRES
macro which immediately terminates the execution of the function, without allowing for the memory free to occur.Patches
We have patched the issue in GitHub commit ab51e5b813573dc9f51efa335aebcf2994125ee9.
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.
References