NULL Pointer Dereference and Access of Uninitialized Pointer in TensorFlowGHSA-h6gw-r52c-724r
CRITICALGHSA-h6gw-r52c-724r is a critical-severity (CVSS 9.3) vulnerability in tensorflow. A fix is available for tensorflow — see the affected versions and patch details below.
Real-World Exposure
tensorflow🐍tensorflow🐍tensorflow🐍tensorflow-cpu🐍tensorflow-cpu🐍tensorflow-cpu🐍tensorflow-gpu🐍tensorflow-gpu+1 moreReal-time download stats are indexed for npm and PyPI packages. This vulnerability affects PyPI packages — download data is not available via public APIs for these ecosystems.
Description
Impact
The code for boosted trees in TensorFlow is still missing validation. This allows malicious users to read and write outside of bounds of heap allocated data as well as trigger denial of service (via dereferencing nullptrs or via CHECK-failures).
This follows after CVE-2021-41208 where these APIs were still vulnerable to multiple security issues.
Note: Given that the boosted trees implementation in TensorFlow is unmaintained, it is recommend to no longer use these APIs. Instead, please use the downstream TensorFlow Decision Forests project which is newer and supports more features.
These APIs are now deprecated in TensorFlow 2.8. We will remove TensorFlow's boosted trees APIs in subsequent releases.
Patches
We have patched the known issues in multiple GitHub commits.
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.
This should allow users to use existing boosted trees APIs for a while until they migrate to TensorFlow Decision Forests, while guaranteeing that known vulnerabilities are fixed.
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
These vulnerabilities have been reported by Yu Tian of Qihoo 360 AIVul Team and Faysal Hossain Shezan from University of Virginia. Some of the issues have been discovered internally after a careful audit of the APIs.
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| 🐍PyPI | tensorflow | all versions | 2.5.3pip install --upgrade 'tensorflow==2.5.3' |
| 🐍PyPI | tensorflow | ≥ 2.6.0&&< 2.6.3 | 2.6.3pip install --upgrade 'tensorflow==2.6.3' |
| 🐍PyPI | tensorflow | ≥ 2.7.0&&< 2.7.1 | 2.7.1pip install --upgrade 'tensorflow==2.7.1' |
| 🐍PyPI | tensorflow-cpu | all versions | 2.5.3pip install --upgrade 'tensorflow-cpu==2.5.3' |
| 🐍PyPI | tensorflow-cpu | ≥ 2.6.0&&< 2.6.3 | 2.6.3pip install --upgrade 'tensorflow-cpu==2.6.3' |
| 🐍PyPI | tensorflow-cpu | ≥ 2.7.0&&< 2.7.1 | 2.7.1pip install --upgrade 'tensorflow-cpu==2.7.1' |
Detection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for tensorflow, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.
Fix
Update tensorflow to 2.5.3 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms GHSA-h6gw-r52c-724r is resolved across your whole dependency graph.
Workarounds
Cap what an attacker can consume: apply request size, rate and timeout limits in front of the affected component, and run it with memory and CPU limits so exhaustion degrades one worker rather than the whole service.
Frequently Asked Questions
Is GHSA-h6gw-r52c-724r in your dependencies?
Find it across PyPI, including transitive dependencies.