CVE-2022-23593
Segfault in `simplifyBroadcast` in Tensorflow
Tensorflow is an Open Source Machine Learning Framework. The simplifyBroadcast function in the MLIR-TFRT infrastructure in TensorFlow is vulnerable to a segfault (hence, denial of service), if called with scalar shapes. If all shapes are scalar, then maxRank is 0, so we build an empty SmallVector. The fix will be included in TensorFlow 2.8.0. This is the only affected version.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- High
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- None
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
5.9
Segfault in `simplifyBroadcast` in Tensorflow
Tensorflow is an Open Source Machine Learning Framework. The simplifyBroadcast function in the MLIR-TFRT infrastructure in TensorFlow is vulnerable to a segfault (hence, denial of service), if called with scalar shapes. If all shapes are scalar, then maxRank is 0, so we build an empty SmallVector. The fix will be included in TensorFlow 2.8.0. This is the only affected version.
- Record
CVE-2022-23593- CVSS 3.1
- 5.9 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-754
- Updated
- 2026-11-02
EUVDEUVD-2022-0286
5.9
Tensorflow is an Open Source Machine Learning Framework. The simplifyBroadcast function in the MLIR-TFRT infrastructure in TensorFlow is vulnerable to a segfault (hence, denial of service), if called with scalar shapes. If all shapes are scalar, then maxRank is 0, so we build an empty SmallVector. The fix will be included in TensorFlow 2.8.0. This is the only affected version.
- Record
EUVD-2022-0286- CVSS 3.1
- 5.9 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-gwcx-jrx4-92w2
8.2
Segfault in `simplifyBroadcast` in Tensorflow
Impact
The simplifyBroadcast function in the MLIR-TFRT infrastructure in TensorFlow is vulnerable to a segfault (hence, denial of service), if called with scalar shapes.
size_t maxRank = 0;
for (auto shape : llvm::enumerate(shapes)) {
auto found_shape = analysis.dimensionsForShapeTensor(shape.value());
if (!found_shape) return {};
shapes_found.push_back(*found_shape);
maxRank = std::max(maxRank, found_shape->size());
}
SmallVector<const ShapeComponentAnalysis::SymbolicDimension*>
joined_dimensions(maxRank);
If all shapes are scalar, then maxRank is 0, so we build an empty SmallVector.
Patches
We have patched the issue in GitHub commit 35f0fabb4c178253a964d7aabdbb15c6a398b69a.
The fix will be included in TensorFlow 2.8.0. This is the only affected version.
For more information
Please consult our security guide for more information regarding the security model and how to contact us with issues and questions.
- Record
GHSA-gwcx-jrx4-92w2- CVSS 4.0
- 8.2 High
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N - CVSS 3.1
- 5.9 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-754
- Updated
- 2026-11-02
NVD
5.9
Tensorflow is an Open Source Machine Learning Framework. The simplifyBroadcast function in the MLIR-TFRT infrastructure in TensorFlow is vulnerable to a segfault (hence, denial of service), if called with scalar shapes. If all shapes are scalar, then maxRank is 0, so we build an empty SmallVector. The fix will be included in TensorFlow 2.8.0. This is the only affected version.
- Record
CVE-2022-23593- CVSS 3.1
- 5.9 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H - CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - CVSS 2.0
- 5.0 Medium
AV:N/AC:L/Au:N/C:N/I:N/A:P - Weakness
- CWE-754
- Updated
- 2026-11-02
OSV
5.9
Segfault in `simplifyBroadcast` in Tensorflow
Tensorflow is an Open Source Machine Learning Framework. The simplifyBroadcast function in the MLIR-TFRT infrastructure in TensorFlow is vulnerable to a segfault (hence, denial of service), if called with scalar shapes. If all shapes are scalar, then maxRank is 0, so we build an empty SmallVector. The fix will be included in TensorFlow 2.8.0. This is the only affected version.
- Record
CVE-2022-23593- CVSS 3.1
- 5.9 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-754
- Updated
- 2026-11-02
OSVGHSA-gwcx-jrx4-92w2
8.2
Segfault in `simplifyBroadcast` in Tensorflow
Impact
The simplifyBroadcast function in the MLIR-TFRT infrastructure in TensorFlow is vulnerable to a segfault (hence, denial of service), if called with scalar shapes.
size_t maxRank = 0;
for (auto shape : llvm::enumerate(shapes)) {
auto found_shape = analysis.dimensionsForShapeTensor(shape.value());
if (!found_shape) return {};
shapes_found.push_back(*found_shape);
maxRank = std::max(maxRank, found_shape->size());
}
SmallVector<const ShapeComponentAnalysis::SymbolicDimension*>
joined_dimensions(maxRank);
If all shapes are scalar, then maxRank is 0, so we build an empty SmallVector.
Patches
We have patched the issue in GitHub commit 35f0fabb4c178253a964d7aabdbb15c6a398b69a.
The fix will be included in TensorFlow 2.8.0. This is the only affected version.
For more information
Please consult our security guide for more information regarding the security model and how to contact us with issues and questions.
- Record
GHSA-gwcx-jrx4-92w2- CVSS 4.0
- 8.2 High
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N - CVSS 3.1
- 5.9 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-754
- Updated
- 2026-11-02
Show 4 moreShow less
OSVPYSEC-2026-3193
8.2
Segfault in `simplifyBroadcast` in Tensorflow
Impact
The simplifyBroadcast function in the MLIR-TFRT infrastructure in TensorFlow is vulnerable to a segfault (hence, denial of service), if called with scalar shapes.
size_t maxRank = 0;
for (auto shape : llvm::enumerate(shapes)) {
auto found_shape = analysis.dimensionsForShapeTensor(shape.value());
if (!found_shape) return {};
shapes_found.push_back(*found_shape);
maxRank = std::max(maxRank, found_shape->size());
}
SmallVector<const ShapeComponentAnalysis::SymbolicDimension*>
joined_dimensions(maxRank);
If all shapes are scalar, then maxRank is 0, so we build an empty SmallVector.
Patches
We have patched the issue in GitHub commit 35f0fabb4c178253a964d7aabdbb15c6a398b69a.
The fix will be included in TensorFlow 2.8.0. This is the only affected version.
For more information
Please consult our security guide for more information regarding the security model and how to contact us with issues and questions.
- Record
PYSEC-2026-3193- CVSS 4.0
- 8.2 High
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N - CVSS 3.1
- 5.9 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVBIT-tensorflow-2022-23593 No score
Segfault in `simplifyBroadcast` in Tensorflow
Tensorflow is an Open Source Machine Learning Framework. The simplifyBroadcast function in the MLIR-TFRT infrastructure in TensorFlow is vulnerable to a segfault (hence, denial of service), if called with scalar shapes. If all shapes are scalar, then maxRank is 0, so we build an empty SmallVector. The fix will be included in TensorFlow 2.8.0. This is the only affected version.
- Record
BIT-tensorflow-2022-23593- Updated
- 2026-11-02
OSVPYSEC-2022-102 No score
Tensorflow is an Open Source Machine Learning Framework. The simplifyBroadcast function in the MLIR-TFRT infrastructure in TensorFlow is vulnerable to a segfault (hence, denial of service), if called with scalar shapes. If all shapes are scalar, then maxRank is 0, so we build an empty SmallVector. The fix will be included in TensorFlow 2.8.0. This is the only affected version.
- Record
PYSEC-2022-102- Updated
- 2026-11-02
OSVPYSEC-2022-157 No score
Tensorflow is an Open Source Machine Learning Framework. The simplifyBroadcast function in the MLIR-TFRT infrastructure in TensorFlow is vulnerable to a segfault (hence, denial of service), if called with scalar shapes. If all shapes are scalar, then maxRank is 0, so we build an empty SmallVector. The fix will be included in TensorFlow 2.8.0. This is the only affected version.
- Record
PYSEC-2022-157- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
tensorflowPyPI |
2.8.0-rc0 to 2.8.0-rc0 | 2.8.0 |
tensorflow-cpuPyPI |
2.8.0-rc0 to 2.8.0-rc0 | 2.8.0 |
tensorflow-gpuPyPI |
2.8.0-rc0 to 2.8.0-rc0 | 2.8.0 |
tensorflowBitnami |
2.7.0 up to 2.8.0 | 2.8.0 |
tensorflowPyPI |
2.8.0-rc0 up to 2.8.0, plus listed versions 2.8.0rc02.8.0rc1 |
2.8.0 |
tensorflow-cpuPyPI |
2.8.0-rc0 up to 2.8.0 | 2.8.0 |
tensorflow-gpuPyPI |
2.8.0-rc0 up to 2.8.0, plus listed versions 2.8.0rc02.8.0rc1 |
2.8.0 |
tensorflow-cpuPyPI |
2.7.0 up to 2.8.0, plus listed versions 2.7.12.8.0rc02.8.0rc12.7.22.7.32.7.4 |
2.8.0 |
tensorflow-gpuPyPI |
2.7.0 up to 2.8.0, plus listed versions 2.7.12.8.0rc02.8.0rc12.7.22.7.32.7.4 |
2.8.0 |
History
| Recorded | Changed | Sources |
|---|---|---|
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2022-23593 is a medium vulnerability (CVSS 5.9) in Google Tensorflow, published February 4, 2022. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.87%, the 59th percentile. Fixed in tensorflow 2.8.0.
References
github.com/tensorflow/tensorflow/security/advisories/GHSA-gwcx-jrx4-92w2
github.com/tensorflow/tensorflow/commit/35f0fabb4c178253a964d7aabdbb15c6a398b69a
github.com/tensorflow/tensorflow/blob/274df9b02330b790aa8de1cee164b70f72b9b244/tensorflow/compiler/mlir/tfrt/jit/transforms/tf_cpurt_symbolic_shape_optimization.cc
nvd.nist.gov/vuln/detail/CVE-2022-23593
github.com/pypa/advisory-database/tree/main/vulns/tensorflow-cpu/PYSEC-2022-102.yaml
github.com/pypa/advisory-database/tree/main/vulns/tensorflow-gpu/PYSEC-2022-157.yaml