{
    "dataType": "CVE_RECORD",
    "dataVersion": "5.2",
    "cveMetadata": {
        "cveId": "CVE-2024-56681",
        "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "state": "PUBLISHED",
        "assignerShortName": "Linux",
        "dateReserved": "2024-12-27T15:00:39.846Z",
        "datePublished": "2024-12-28T09:46:09.675Z",
        "dateUpdated": "2026-08-05T11:46:02.716Z"
    },
    "containers": {
        "cna": {
            "providerMetadata": {
                "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
                "shortName": "Linux",
                "dateUpdated": "2026-08-05T11:46:02.716Z"
            },
            "descriptions": [
                {
                    "lang": "en",
                    "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ncrypto: bcm - add error check in the ahash_hmac_init function\n\nThe ahash_init functions may return fails. The ahash_hmac_init should\nnot return ok when ahash_init returns error. For an example, ahash_init\nwill return -ENOMEM when allocation memory is error."
                }
            ],
            "metrics": [
                {
                    "cvssV3_1": {
                        "version": "3.1",
                        "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
                        "baseScore": 7.8,
                        "baseSeverity": "HIGH"
                    },
                    "scenarios": [
                        {
                            "lang": "en",
                            "value": "AV:L - The reliable trigger is a local unprivileged process driving the driver's ahash through AF_ALG (algif_hash) socket syscalls; in-kernel remote consumers of crypto_ahash_init() on hmac algorithms (tcp_ao, gss_krb5) would additionally require an allocation failure the remote peer cannot control.\nAC:L - The attacker sets a zero-length HMAC key via ALG_SET_KEY, which makes ahash_init() skip setkey and hit the deterministic -ENOKEY error path that frees ctx->shash without clearing it — no race, no memory pressure, and the freed object can be groomed between syscalls before the update() use.\nPR:L - Any unprivileged local user can open an AF_ALG hash socket and bind to the driver's algorithm/driver name (hmac-sha1-iproc); no capability check exists on this path.\nUI:N - The attacker performs the entire socket/setkey/sendmsg sequence itself; no victim action is involved.\nS:U - The corruption is confined to kernel heap memory within the same security authority; no VM, IOMMU, or sandbox boundary is crossed.\nC:H - The stale ctx->shash is dereferenced as a shash_desc, so an attacker who reclaims the freed slab object controls the tfm pointer and the resulting digest data returned to userspace, giving a use-after-free read primitive over kernel memory.\nI:H - crypto_shash_update()/final() perform an indirect call through a function-pointer table reached from the freed object, and ahash_final() then does crypto_free_shash(ctx->shash->tfm) plus kfree(ctx->shash) — a double free and a free of an attacker-supplied pointer, which is a control-flow-hijack/arbitrary-write primitive.\nA:H - In the -ENOMEM case ctx->shash is NULL and the subsequent crypto_shash_update()/final() dereference NULL, and in the -ENOKEY case the use-after-free and double free reliably oops or panic the kernel."
                        }
                    ]
                }
            ],
            "affected": [
                {
                    "product": "Linux",
                    "vendor": "Linux",
                    "defaultStatus": "unaffected",
                    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                    "programFiles": [
                        "drivers/crypto/bcm/cipher.c"
                    ],
                    "versions": [
                        {
                            "version": "9d12ba86f818aa9cfe9f01b750336aa441f2ffa2",
                            "lessThan": "8f1a9a960b1107bd0e0ec3736055f5ed0e717edf",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "9d12ba86f818aa9cfe9f01b750336aa441f2ffa2",
                            "lessThan": "75e1e38e5d80d6d9011b7322698ffba3dd3db30a",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "9d12ba86f818aa9cfe9f01b750336aa441f2ffa2",
                            "lessThan": "28f8ffa945f7d7150463e15097ea73b19529d6f5",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "9d12ba86f818aa9cfe9f01b750336aa441f2ffa2",
                            "lessThan": "4ea3e3b761e371102bb1486778e2f8dbc9e37413",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "9d12ba86f818aa9cfe9f01b750336aa441f2ffa2",
                            "lessThan": "05f0a3f5477ecaa1cf46448504afe9e7c2e96fcc",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "9d12ba86f818aa9cfe9f01b750336aa441f2ffa2",
                            "lessThan": "ae5253313e0ea5f00c06176074592b7f493c8546",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "9d12ba86f818aa9cfe9f01b750336aa441f2ffa2",
                            "lessThan": "ee36db8e8203420e6d5c42eb9428920c2fc36532",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "9d12ba86f818aa9cfe9f01b750336aa441f2ffa2",
                            "lessThan": "bba9e38c5ad41d0a88b22a59e5b6dd3e31825118",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "9d12ba86f818aa9cfe9f01b750336aa441f2ffa2",
                            "lessThan": "19630cf57233e845b6ac57c9c969a4888925467b",
                            "status": "affected",
                            "versionType": "git"
                        }
                    ]
                },
                {
                    "product": "Linux",
                    "vendor": "Linux",
                    "defaultStatus": "affected",
                    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                    "programFiles": [
                        "drivers/crypto/bcm/cipher.c"
                    ],
                    "versions": [
                        {
                            "version": "4.11",
                            "status": "affected"
                        },
                        {
                            "version": "0",
                            "lessThan": "4.11",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "4.19.325",
                            "lessThanOrEqual": "4.19.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "5.4.287",
                            "lessThanOrEqual": "5.4.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "5.10.231",
                            "lessThanOrEqual": "5.10.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "5.15.174",
                            "lessThanOrEqual": "5.15.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "6.1.120",
                            "lessThanOrEqual": "6.1.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "6.6.64",
                            "lessThanOrEqual": "6.6.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "6.11.11",
                            "lessThanOrEqual": "6.11.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "6.12.2",
                            "lessThanOrEqual": "6.12.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "6.13",
                            "lessThanOrEqual": "*",
                            "status": "unaffected",
                            "versionType": "original_commit_for_fix"
                        }
                    ]
                }
            ],
            "cpeApplicability": [
                {
                    "nodes": [
                        {
                            "operator": "OR",
                            "negate": false,
                            "cpeMatch": [
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "4.11",
                                    "versionEndExcluding": "4.19.325"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "4.11",
                                    "versionEndExcluding": "5.4.287"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "4.11",
                                    "versionEndExcluding": "5.10.231"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "4.11",
                                    "versionEndExcluding": "5.15.174"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "4.11",
                                    "versionEndExcluding": "6.1.120"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "4.11",
                                    "versionEndExcluding": "6.6.64"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "4.11",
                                    "versionEndExcluding": "6.11.11"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "4.11",
                                    "versionEndExcluding": "6.12.2"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "4.11",
                                    "versionEndExcluding": "6.13"
                                }
                            ]
                        }
                    ]
                }
            ],
            "references": [
                {
                    "url": "https://git.kernel.org/stable/c/8f1a9a960b1107bd0e0ec3736055f5ed0e717edf"
                },
                {
                    "url": "https://git.kernel.org/stable/c/75e1e38e5d80d6d9011b7322698ffba3dd3db30a"
                },
                {
                    "url": "https://git.kernel.org/stable/c/28f8ffa945f7d7150463e15097ea73b19529d6f5"
                },
                {
                    "url": "https://git.kernel.org/stable/c/4ea3e3b761e371102bb1486778e2f8dbc9e37413"
                },
                {
                    "url": "https://git.kernel.org/stable/c/05f0a3f5477ecaa1cf46448504afe9e7c2e96fcc"
                },
                {
                    "url": "https://git.kernel.org/stable/c/ae5253313e0ea5f00c06176074592b7f493c8546"
                },
                {
                    "url": "https://git.kernel.org/stable/c/ee36db8e8203420e6d5c42eb9428920c2fc36532"
                },
                {
                    "url": "https://git.kernel.org/stable/c/bba9e38c5ad41d0a88b22a59e5b6dd3e31825118"
                },
                {
                    "url": "https://git.kernel.org/stable/c/19630cf57233e845b6ac57c9c969a4888925467b"
                }
            ],
            "title": "crypto: bcm - add error check in the ahash_hmac_init function",
            "x_generator": {
                "engine": "bippy-1.2.0"
            }
        },
        "adp": [
            {
                "title": "CVE Program Container",
                "references": [
                    {
                        "url": "https://lists.debian.org/debian-lts-announce/2025/03/msg00001.html"
                    },
                    {
                        "url": "https://lists.debian.org/debian-lts-announce/2025/03/msg00002.html"
                    }
                ],
                "providerMetadata": {
                    "orgId": "af854a3a-2127-422b-91ae-364da2661108",
                    "shortName": "CVE",
                    "dateUpdated": "2025-11-03T20:52:28.536Z"
                }
            }
        ]
    }
}