GitHub Advisoryadvisory · PyPI
GHSA-24x4-6qmh-88qg Use after free in `DecodePng` kernel
HIGH
Official page ↗
- Aliases
- CVE-2022-23584
- Ecosystem
- PyPI
- Packages
- tensorflow, tensorflow-cpu, tensorflow-gpu
- Severity
- High
- CVSS vector
- CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:H
- Weaknesses
- CWE-416
- Reviewed
- 2022-02-04
Affected packages
• PyPI tensorflow: < 2.5.3 → fixed in 2.5.3
• PyPI tensorflow: >= 2.6.0, < 2.6.3 → fixed in 2.6.3
• PyPI tensorflow: >= 2.7.0, < 2.7.1 → fixed in 2.7.1
• PyPI tensorflow-cpu: < 2.5.3 → fixed in 2.5.3
• PyPI tensorflow-cpu: >= 2.6.0, < 2.6.3 → fixed in 2.6.3
• PyPI tensorflow-cpu: >= 2.7.0, < 2.7.1 → fixed in 2.7.1
• PyPI tensorflow-gpu: < 2.5.3 → fixed in 2.5.3
• PyPI tensorflow-gpu: >= 2.6.0, < 2.6.3 → fixed in 2.6.3
• PyPI tensorflow-gpu: >= 2.7.0, < 2.7.1 → fixed in 2.7.1
Description
Impact
A malicious user can cause a use after free behavior when decoding PNG images:
```cc
if (/* ... error conditions ... */) {
png::CommonFreeDecode(&decode);
OP_REQUIRES(context, false,
errors::InvalidArgument("PNG size too large for int: ",
decode.width, " by ", decode.height));
}
```
After `png::CommonFreeDecode(&decode)` gets called, the values of `decode.width` and `decode.height` are in an unspecified state.
Patches
We have patched the issue in GitHub commit e746adbfcfee15e9cfdb391ff746c765b99bdf9b.
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.
Related
Alias · CVE (1)
- CVE-2022-23584 Tensorflow is an Open Source Machine Learning Framework. vulnerability
Weakness · CWE (1)
- CWE-416 Use After Free weakness
References
- https://github.com/tensorflow/tensorflow/security/advisories/GHSA-24x4-6qmh-88qg web
- https://nvd.nist.gov/vuln/detail/CVE-2022-23584 advisory
- https://github.com/tensorflow/tensorflow/commit/e746adbfcfee15e9cfdb391ff746c765b99bdf9b web
- https://github.com/pypa/advisory-database/tree/main/vulns/tensorflow-cpu/PYSEC-2022-93.yaml web
- https://github.com/pypa/advisory-database/tree/main/vulns/tensorflow-gpu/PYSEC-2022-148.yaml web
- https://github.com/tensorflow/tensorflow web
- https://github.com/tensorflow/tensorflow/blob/a1320ec1eac186da1d03f033109191f715b2b130/tensorflow/core/kernels/image/decode_image_op.cc#L339-L346 web