CVE-2021-37681

Source
https://cve.org/CVERecord?id=CVE-2021-37681
Import Source
https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2021-37681.json
JSON Data
https://api.test.osv.dev/v1/vulns/CVE-2021-37681
Aliases
Downstream
Related
Published
2021-08-12T22:15:08.867Z
Modified
2026-02-24T11:42:04.251528Z
Severity
  • 7.8 (High) CVSS_V3 - CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H CVSS Calculator
Summary
[none]
Details

TensorFlow is an end-to-end open source platform for machine learning. In affected versions the implementation of SVDF in TFLite is vulnerable to a null pointer error. The GetVariableInput function can return a null pointer but GetTensorData assumes that the argument is always a valid tensor. Furthermore, because GetVariableInput calls GetMutableInput which might return nullptr, the tensor->is_variable expression can also trigger a null pointer exception. We have patched the issue in GitHub commit 5b048e87e4e55990dae6b547add4dae59f4e1c76. The fix will be included in TensorFlow 2.6.0. We will also cherrypick this commit on TensorFlow 2.5.1, TensorFlow 2.4.3, and TensorFlow 2.3.4, as these are also affected and still in supported range.

References

Affected packages

Git / github.com/tensorflow/tensorflow

Affected ranges

Type
GIT
Repo
https://github.com/tensorflow/tensorflow
Events

Database specific

vanir_signatures
[
    {
        "source": "https://github.com/tensorflow/tensorflow/commit/5b048e87e4e55990dae6b547add4dae59f4e1c76",
        "signature_type": "Function",
        "target": {
            "file": "tensorflow/lite/kernels/svdf.cc",
            "function": "Eval"
        },
        "deprecated": false,
        "digest": {
            "function_hash": "277771564071844196417094966686928471885",
            "length": 3763.0
        },
        "id": "CVE-2021-37681-02a04b81",
        "signature_version": "v1"
    },
    {
        "source": "https://github.com/tensorflow/tensorflow/commit/5b048e87e4e55990dae6b547add4dae59f4e1c76",
        "signature_type": "Line",
        "target": {
            "file": "tensorflow/lite/kernels/svdf.cc"
        },
        "deprecated": false,
        "digest": {
            "line_hashes": [
                "171307121571642068695454032622458007569",
                "29941410466284478930787366860551228937",
                "221556527070209520502004048032332303571",
                "199258940345129842197877996600733491640"
            ],
            "threshold": 0.9
        },
        "id": "CVE-2021-37681-33364e90",
        "signature_version": "v1"
    },
    {
        "source": "https://github.com/tensorflow/tensorflow/commit/5b048e87e4e55990dae6b547add4dae59f4e1c76",
        "signature_type": "Function",
        "target": {
            "file": "tensorflow/lite/kernels/kernel_util.cc",
            "function": "GetVariableInput"
        },
        "deprecated": false,
        "digest": {
            "function_hash": "99754822290123940257327233292511093096",
            "length": 169.0
        },
        "id": "CVE-2021-37681-41806392",
        "signature_version": "v1"
    },
    {
        "source": "https://github.com/tensorflow/tensorflow/commit/5b048e87e4e55990dae6b547add4dae59f4e1c76",
        "signature_type": "Line",
        "target": {
            "file": "tensorflow/lite/kernels/kernel_util.cc"
        },
        "deprecated": false,
        "digest": {
            "line_hashes": [
                "187287587552228953845727315607235521446",
                "286719328079571892617242822217036577720",
                "326163651760032361359206415215756972294",
                "132640206525196469370031657143121165862"
            ],
            "threshold": 0.9
        },
        "id": "CVE-2021-37681-e23df497",
        "signature_version": "v1"
    }
]
source
"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2021-37681.json"