Skip to main content

Boteraser | Website and Server Security Solutions

🛡️ CVE-2022-36012 — tensorflow

🟠 CVSS 8.0 — High ✅ No Known Exploit CWE-617 OSV
8.0
CVSS Score
0 Low4 Medium7 High9 Critical10

Description

TensorFlow vulnerable to assertion fail on MLIR empty edge names

Impact

When [mlir::tfg::ConvertGenericFunctionToFunctionDef](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/ir/importexport/functiondef_import.cc) is given empty function attributes, it crashes.

```cpp

// We pre-allocate the array of operands and populate it using the

// output_name_to_position and control_output_to_position populated

// previously.

SmallVector<Value> ret_vals(func.ret_size() + func.control_ret_size(),

Value());

for (const auto& ret_val : func.ret()) {

auto position = output_name_to_position.find(ret_val.first);

if (position == output_name_to_position.end())

return InvalidArgument(

"Can't import function, returned value references unknown output "

"argument ",

ret_val.first);

ret_vals[position->second] =

value_manager.GetValueOrCreatePlaceholder(ret_val.second);

}

for (const auto& ret_val : func.control_ret()) {

auto position = control_output_to_position.find(ret_val.first);

if (position == control_output_to_position.end())

return InvalidArgument(

"Can't import function, returned value references unknown output "

"argument ",

ret_val.first);

Value result = value_manager.GetValueOrCreatePlaceholder(

(Twine("^") + ret_val.second).str());

```

ret_val.second cannot be empty. Neither can input.

```cpp

// Process every node and create a matching MLIR operation

for (const NodeDef& node : nodes) {

if (node.op().empty()) return InvalidArgument("empty op type");

OperationState state(unknown_loc, absl::StrCat("tfg.", node.op()));

// Fetch the inputs, creating placeholder if an input hasn't been visited.

for (const std::string& input : node.input())

state.operands.push_back(

value_manager.GetValueOrCreatePlaceholder(input));

```

Patches

We have patched the issue in GitHub commit [ad069af92392efee1418c48ff561fd3070a03d7b](https://github.com/tensorflow/tensorflow/commit/ad069af92392efee1418c48ff561fd3070a03d7b).

The fix will be included in TensorFlow 2.10.0. We will also cherrypick this commit on TensorFlow 2.9.1, TensorFlow 2.8.1, and TensorFlow 2.7.2, as these are also affected and still in supported range.

For more information

Please consult [our security guide](https://github.com/tensorflow/tensorflow/blob/master/SECURITY.md) for more information regarding the security model and how to contact us with issues and questions.

How this vulnerability can be exploited

This issue can be reached over the network, attack complexity is high, an attacker needs no privileges on the target. No user interaction is required. The scope is unchanged, so the impact stays within the vulnerable component. Rated impact: confidentiality none, integrity none, availability high.

CVSS metrics in full

The score comes from this vector: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H

  • Attack vector: Network — reachable from anywhere that can route to the service.
  • Attack complexity: High — the attacker first has to win a race, learn a secret or otherwise prepare the target.
  • Privileges required: None — an unauthenticated stranger can try it.
  • User interaction: None — nobody has to be tricked into anything.
  • Scope: Unchanged — the damage stays inside the vulnerable component.
  • Confidentiality impact: None.
  • Integrity impact: None.
  • Availability impact: High — total loss, or loss the attacker controls.

Weakness class

CVE-2022-36012 is classified as CWE-617: Reachable Assertion. The product contains an assert() or similar statement that can be triggered by an attacker, which leads to an application exit or other behavior that is more severe than necessary.

Affected software

CVE-2022-36012 is recorded against 3 packages.

  • tensorflow
  • tensorflow-cpu (from 2.9.0 up to 2.9.1)
  • tensorflow-gpu (from 2.9.0 up to 2.9.1)

Timeline and source

Published on 6 March 2024 and last revised on 13 July 2026. No public exploit is currently recorded for this entry. A vendor advisory or fix has been published. Record sourced from OSV.

References

github.com (Web)
github.com (Web)
github.com (Web)
nvd.nist.gov (Web)

Other advisories for this package

tensorflow has other advisories on record. If you are patching this one, these are worth checking on the same host:

Same weakness in other software

These advisories are the same class of weakness (CWE-617: Reachable Assertion) in other software:

Details

Severity HIGH
CVSS Score 8.0
CVSS Vector CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
CWE CWE-617
Public Exploit ✅ No
Source OSV
Published 2024-03-06
Updated 2026-08-20
Modified 2026-07-13

Affected Packages

Software From version Fixed in
tensorflow
tensorflow-cpu 2.9.0 2.9.1
tensorflow-gpu 2.9.0 2.9.1

Similar Threats

Site Security Check

Is tensorflow part of your stack?

CVE-2022-36012 is rated CVSS 8.0 High. BotEraser scans your installation against known CVE records and tells you whether this vulnerability applies to the versions you actually run.

Scan My Site Free →

No credit card required  ·  Results in minutes

ⓘ Data Notice: The information presented above has been compiled from publicly available internet sources. Boteraser aggregates this data solely for informational purposes and does not independently classify, evaluate, or endorse any findings about the vulnerabilities listed. The accuracy and completeness of this information is the sole responsibility of the original publishers. Boteraser and its operators accept no liability for any decisions made based on this data.

Browse related advisories

All advisoriesCVECVE 2022