Skip to content
OpenAdvisories

Weakness (CWE)

CWE-617: Reachable Assertion

Base Draft

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.

How to prevent it (4 mitigations)
  1. Implementation

    If the assertion statement is required (e.g., for security or reliability), change the invoking code to avoid the conditions that trigger the assertion.

  2. Implementation

    Consider changing the assertion to some other less "fatal" error. This might not be easy to implement, since other code may be needed to handle the error.

  3. Implementation

    Make sensitive open/close operations non-reachable from directly user-controlled data (e.g. open/close resources)

  4. Implementation

    Perform input validation on user data.

Source: MITRE CWE-617

578 results · Feed

  • Medium 5.9

    `CHECK` fail in `SetSize` in TensorFlow

    TensorFlow is an open source platform for machine learning. When `SetSize` receives an input `set_shape` that is not a 1D tensor, it gives a `CHECK` fails that can be used to trigger a denial of service attack. We have patched the issue in GitHub commit cf70b…

  • Medium 5.9

    `CHECK` fail in `TensorListFromTensor` in TensorFlow

    TensorFlow is an open source platform for machine learning. When `TensorListFromTensor` receives an `element_shape` of a rank greater than one, it gives a `CHECK` fail that can trigger a denial of service attack. We have patched the issue in GitHub commit 3db…

  • Medium 5.9

    `CHECK` fail in `TensorListScatter` and `TensorListScatterV2` in TensorFlow

    TensorFlow is an open source platform for machine learning. When `TensorListScatter` and `TensorListScatterV2` receive an `element_shape` of a rank greater than one, they give a `CHECK` fail that can trigger a denial of service attack. We have patched the iss…

  • Medium 5.9

    `CHECK` fail in `Conv2DBackpropInput` in TensorFlow

    TensorFlow is an open source platform for machine learning. When `Conv2DBackpropInput` receives empty `out_backprop` inputs (e.g. `[3, 1, 0, 1]`), the current CPU/GPU kernels `CHECK` fail (one with dnnl, the other with cudnn). This can be used to trigger a de…

  • Medium 5.9

    `CHECK` fail in `EmptyTensorList` in TensorFlow

    TensorFlow is an open source platform for machine learning. If `EmptyTensorList` receives an input `element_shape` with more than one dimension, it gives a `CHECK` fail that can be used to trigger a denial of service attack. We have patched the issue in GitHu…

  • Medium 5.9

    `CHECK` fail in `tf.sparse.cross` in TensorFlow

    TensorFlow is an open source platform for machine learning. If `tf.sparse.cross` receives an input `separator` that is not a scalar, it gives a `CHECK` fail that can be used to trigger a denial of service attack. We have patched the issue in GitHub commit 83d…

  • Medium 5.9

    `CHECK` fail in `AudioSummaryV2` in TensorFlow

    TensorFlow is an open source platform for machine learning. When `AudioSummaryV2` receives an input `sample_rate` with more than one element, it gives a `CHECK` fails that can be used to trigger a denial of service attack. We have patched the issue in GitHub …

  • Medium 5.9

    `CHECK`-fail in `tensorflow::full_type::SubstituteFromAttrs` in TensorFlow

    TensorFlow is an open source platform for machine learning. When `tensorflow::full_type::SubstituteFromAttrs` receives a `FullTypeDef& t` that is not exactly three args, it triggers a `CHECK`-fail instead of returning a status. We have patched the issue in Gi…

  • Medium 5.9

    `CHECK` fail in `FakeQuantWithMinMaxVarsGradient` in TensorFlow

    TensorFlow is an open source platform for machine learning. When `tf.quantization.fake_quant_with_min_max_vars_gradient` receives input `min` or `max` that is nonscalar, it gives a `CHECK` fail that can trigger a denial of service attack. We have patched the …

  • Medium 5.9

    `CHECK` fail in `tf.random.gamma` in TensorFlow

    TensorFlow is an open source platform for machine learning. When `tf.random.gamma` receives large input shape and rates, it gives a `CHECK` fail that can trigger a denial of service attack. We have patched the issue in GitHub commit 552bfced6ce4809db5f3ca305f…

  • Medium 5.9

    `CHECK` fail in `RandomPoissonV2` in TensorFlow

    TensorFlow is an open source platform for machine learning. When `RandomPoissonV2` receives large input shape and rates, it gives a `CHECK` fail that can trigger a denial of service attack. We have patched the issue in GitHub commit 552bfced6ce4809db5f3ca305f…

  • Medium 5.9

    `CHECK` fail in `Unbatch` in TensorFlow

    TensorFlow is an open source platform for machine learning. When `Unbatch` receives a nonscalar input `id`, it gives a `CHECK` fail that can trigger a denial of service attack. We have patched the issue in GitHub commit 4419d10d576adefa36b0e0a9425d2569f7c0189…

  • Medium 5.9

    `CHECK` fail in `DrawBoundingBoxes` in TensorFlow

    TensorFlow is an open source platform for machine learning. When `DrawBoundingBoxes` receives an input `boxes` that is not of dtype `float`, it gives a `CHECK` fail that can trigger a denial of service attack. We have patched the issue in GitHub commit da0d65…

  • Medium 5.9

    `CHECK` fail in `QuantizeAndDequantizeV3` in TensorFlow

    TensorFlow is an open source platform for machine learning. If `QuantizeAndDequantizeV3` is given a nonscalar `num_bits` input tensor, it results in a `CHECK` fail that can be used to trigger a denial of service attack. We have patched the issue in GitHub com…

  • Medium 5.9

    `CHECK` fail in `RaggedTensorToVariant` in TensorFlow

    TensorFlow is an open source platform for machine learning. If `RaggedTensorToVariant` is given a `rt_nested_splits` list that contains tensors of ranks other than one, it results in a `CHECK` fail that can be used to trigger a denial of service attack. We ha…

  • Medium 5.9

    `CHECK` fail in `FakeQuantWithMinMaxVarsPerChannel` in TensorFlow

    TensorFlow is an open source platform for machine learning. If `FakeQuantWithMinMaxVarsPerChannel` is given `min` or `max` tensors of a rank other than one, it results in a `CHECK` fail that can be used to trigger a denial of service attack. We have patched t…

  • Medium 5.9

    `CHECK` fail in `FakeQuantWithMinMaxVarsPerChannelGradient` in TensorFlow

    TensorFlow is an open source platform for machine learning. When `tf.quantization.fake_quant_with_min_max_vars_per_channel_gradient` receives input `min` or `max` of rank other than 1, it gives a `CHECK` fail that can trigger a denial of service attack. We ha…

  • Medium 5.9

    `CHECK` fail in `DenseBincount` in TensorFlow

    TensorFlow is an open source platform for machine learning. `DenseBincount` assumes its input tensor `weights` to either have the same shape as its input tensor `input` or to be length-0. A different `weights` shape will trigger a `CHECK` fail that can be use…

  • Medium 5.9

    `CHECK` fail in `LRNGrad` in TensorFlow

    TensorFlow is an open source platform for machine learning. If `LRNGrad` is given an `output_image` input tensor that is not 4-D, it results in a `CHECK` fail that can be used to trigger a denial of service attack. We have patched the issue in GitHub commit b…

  • Medium 5.9

    `CHECK` fail in `ParameterizedTruncatedNormal` in TensorFlow

    TensorFlow is an open source platform for machine learning. `ParameterizedTruncatedNormal` assumes `shape` is of type `int32`. A valid `shape` of type `int64` results in a mismatched type `CHECK` fail that can be used to trigger a denial of service attack. We…

  • Medium 5.9

    `CHECK` fail in `Save` and `SaveSlices` in TensorFlow

    TensorFlow is an open source platform for machine learning. If `Save` or `SaveSlices` is run over tensors of an unsupported `dtype`, it results in a `CHECK` fail that can be used to trigger a denial of service attack. We have patched the issue in GitHub commi…

  • Medium 5.9

    `CHECK` fail in `MaxPool` in TensorFlow

    TensorFlow is an open source platform for machine learning. When `MaxPool` receives a window size input array `ksize` with dimensions greater than its input tensor `input`, the GPU kernel gives a `CHECK` fail that can be used to trigger a denial of service at…

  • Medium 5.9

    `CHECK` fail in `tf.linalg.matrix_rank` in TensorFlow

    TensorFlow is an open source platform for machine learning. When `tf.linalg.matrix_rank` receives an empty input `a`, the GPU kernel gives a `CHECK` fail that can be used to trigger a denial of service attack. We have patched the issue in GitHub commit c55b47…

  • Medium 5.9

    `CHECK` fail in `FractionalMaxPoolGrad` in TensorFlow

    TensorFlow is an open source platform for machine learning. `FractionalMaxPoolGrad` validates its inputs with `CHECK` failures instead of with returning errors. If it gets incorrectly sized inputs, the `CHECK` failure can be used to trigger a denial of servic…

  • Medium 5.9

    `CHECK` fail in `FakeQuantWithMinMaxVars` in TensorFlow

    TensorFlow is an open source platform for machine learning. If `FakeQuantWithMinMaxVars` is given `min` or `max` tensors of a nonzero rank, it results in a `CHECK` fail that can be used to trigger a denial of service attack. We have patched the issue in GitHu…

  • Medium 5.9

    `CHECK` fail in `Conv2DBackpropInput` in TensorFlow

    TensorFlow is an open source platform for machine learning. The implementation of `Conv2DBackpropInput` requires `input_sizes` to be 4-dimensional. Otherwise, it gives a `CHECK` failure which can be used to trigger a denial of service attack. We have patched …

  • Medium 5.9

    `CHECK` fail in `AvgPoolGrad` in TensorFlow

    TensorFlow is an open source platform for machine learning. The implementation of `AvgPoolGrad` does not fully validate the input `orig_input_shape`. This results in a `CHECK` failure which can be used to trigger a denial of service attack. We have patched th…

  • Medium 5.9

    `CHECK` failures in `FractionalAvgPoolGrad` in TensorFlow

    TensorFlow is an open source platform for machine learning. The implementation of `FractionalAvgPoolGrad` does not fully validate the input `orig_input_tensor_shape`. This results in an overflow that results in a `CHECK` failure which can be used to trigger a…

  • Medium 5.9

    `CHECK` failure in `TensorListReserve` in TensorFlow

    TensorFlow is an open source platform for machine learning. In `core/kernels/list_kernels.cc's TensorListReserve`, `num_elements` is assumed to be a tensor of size 1. When a `num_elements` of more than 1 element is provided, then `tf.raw_ops.TensorListReserve…

  • Medium 5.9

    `CHECK` failures in `AvgPool3DGrad` in TensorFlow

    TensorFlow is an open source platform for machine learning. The implementation of `AvgPool3DGradOp` does not fully validate the input `orig_input_shape`. This results in an overflow that results in a `CHECK` failure which can be used to trigger a denial of se…

  • Medium 5.9

    `CHECK` failures in `UnbatchGradOp` in TensorFlow

    TensorFlow is an open source platform for machine learning. The `UnbatchGradOp` function takes an argument `id` that is assumed to be a scalar. A nonscalar `id` can trigger a `CHECK` failure and crash the program. It also requires its argument `batch_index` t…

  • Medium 5.9

    `CHECK` failure in `AvgPoolOp` in Tensorflow

    TensorFlow is an open source platform for machine learning. The `AvgPoolOp` function takes an argument `ksize` that must be positive but is not checked. A negative `ksize` can trigger a `CHECK` failure and crash the program. We have patched the issue in GitHu…

  • Medium 5.9

    `CHECK` failure in `SobolSample` via missing validation in TensorFlow

    TensorFlow is an open source platform for machine learning. The implementation of SobolSampleOp is vulnerable to a denial of service via CHECK-failure (assertion failure) caused by assuming `input(0)`, `input(1)`, and `input(2)` to be scalar. This issue has b…

  • Medium 5.9

    `CHECK` failure in tf.reshape in Tensorflow

    TensorFlow is an open source platform for machine learning. The implementation of tf.reshape op in TensorFlow is vulnerable to a denial of service via CHECK-failure (assertion failure) caused by overflowing the number of elements in a tensor. This issue has b…

  • High 7.5

    Fatal error on incorrect base64 data in RRDP

    In NLnet Labs Routinator 0.9.0 up to and including 0.11.2, due to a mistake in error handling, data in RRDP snapshot and delta files that isn’t correctly base 64 encoded is treated as a fatal error and causes Routinator to exit. Worst case impact of this vuln…

  • Medium 5.5

    In ImageMagick, a crafted file could trigger an assertion failure when a call to WriteImages was made in MagickWand/ope…

  • Medium 4.3

    BT: Assertion failure on repeated LL_FEATURE_REQ

    Assertion reachable with repeated LL_FEATURE_REQ. Zephyr versions >= v2.5.0 contain Reachable Assertion (CWE-617). For more information, see https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-7548-5m6f-mqv9

  • Medium 6.5

    BT: Assertion failure on repeated LL_CONNECTION_PARAM_REQ

    Assertion reachable with repeated LL_CONNECTION_PARAM_REQ. Zephyr versions >= v1.14 contain Reachable Assertion (CWE-617). For more information, see https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-46h3-hjcq-2jjr

  • Medium 6.5

    Reachable Assertion in rulex

    rulex is a new, portable, regular expression language. When parsing untrusted rulex expressions, rulex may crash, possibly enabling a Denial of Service attack. This happens when the expression contains a multi-byte UTF-8 code point in a string literal or afte…

  • Medium 5.7

    DoS vulnerability: Invalid Accent Colors

    wire-ios is an iOS client for the Wire secure messaging application. Invalid accent colors of Wire communication partners may render the iOS Wire Client partially unusable by causing it to crash multiple times on launch. These invalid accent colors can be use…