CVE-2021-29605

Source
https://cve.org/CVERecord?id=CVE-2021-29605
Import Source
https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2021-29605.json
JSON Data
https://api.test.osv.dev/v1/vulns/CVE-2021-29605
Aliases
Related
Published
2021-05-14T20:15:15.670Z
Modified
2026-02-24T11:39:29.127114Z
Severity
  • 5.5 (Medium) CVSS_V3 - CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H CVSS Calculator
Summary
[none]
Details

TensorFlow is an end-to-end open source platform for machine learning. The TFLite code for allocating TFLiteIntArrays is vulnerable to an integer overflow issue(https://github.com/tensorflow/tensorflow/blob/4ceffae632721e52bf3501b736e4fe9d1221cdfa/tensorflow/lite/c/common.c#L24-L27). An attacker can craft a model such that the size multiplier is so large that the return value overflows the int datatype and becomes negative. In turn, this results in invalid value being given to malloc(https://github.com/tensorflow/tensorflow/blob/4ceffae632721e52bf3501b736e4fe9d1221cdfa/tensorflow/lite/c/common.c#L47-L52). In this case, ret->size would dereference an invalid pointer. The fix will be included in TensorFlow 2.5.0. We will also cherrypick this commit on TensorFlow 2.4.2, TensorFlow 2.3.3, TensorFlow 2.2.3 and TensorFlow 2.1.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

source
"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2021-29605.json"
vanir_signatures
[
    {
        "id": "CVE-2021-29605-32ce330f",
        "source": "https://github.com/tensorflow/tensorflow/commit/7c8cc4ec69cd348e44ad6a2699057ca88faad3e5",
        "target": {
            "file": "tensorflow/lite/kernels/embedding_lookup_sparse.cc",
            "function": "Eval"
        },
        "digest": {
            "function_hash": "323441467550972796961876012191813987106",
            "length": 2617.0
        },
        "signature_version": "v1",
        "deprecated": false,
        "signature_type": "Function"
    },
    {
        "id": "CVE-2021-29605-4b4578f9",
        "source": "https://github.com/tensorflow/tensorflow/commit/7c8cc4ec69cd348e44ad6a2699057ca88faad3e5",
        "target": {
            "file": "tensorflow/lite/c/common.c"
        },
        "digest": {
            "threshold": 0.9,
            "line_hashes": [
                "221315807979975374059098528228640698222",
                "321677896654215633058918569989719790380",
                "245538412155565593286451389298289977004",
                "175002120260344073506153491455736600746",
                "111225680948945197111714019309371489331"
            ]
        },
        "signature_version": "v1",
        "deprecated": false,
        "signature_type": "Line"
    },
    {
        "id": "CVE-2021-29605-eebb9bcb",
        "source": "https://github.com/tensorflow/tensorflow/commit/7c8cc4ec69cd348e44ad6a2699057ca88faad3e5",
        "target": {
            "file": "tensorflow/lite/kernels/embedding_lookup_sparse.cc"
        },
        "digest": {
            "threshold": 0.9,
            "line_hashes": [
                "64002533412214694302935198588989152734",
                "125987202841411760004254314710669416726",
                "274855496943808702694051502420822628947",
                "277191444918604204656964828627199025460"
            ]
        },
        "signature_version": "v1",
        "deprecated": false,
        "signature_type": "Line"
    }
]