{
    "dataType": "CVE_RECORD",
    "dataVersion": "5.2",
    "cveMetadata": {
        "cveId": "CVE-2024-39482",
        "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "state": "PUBLISHED",
        "assignerShortName": "Linux",
        "dateReserved": "2024-06-25T14:23:23.746Z",
        "datePublished": "2024-07-05T06:55:10.599Z",
        "dateUpdated": "2026-08-05T11:33:36.233Z"
    },
    "containers": {
        "cna": {
            "providerMetadata": {
                "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
                "shortName": "Linux",
                "dateUpdated": "2026-08-05T11:33:36.233Z"
            },
            "descriptions": [
                {
                    "lang": "en",
                    "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nbcache: fix variable length array abuse in btree_iter\n\nbtree_iter is used in two ways: either allocated on the stack with a\nfixed size MAX_BSETS, or from a mempool with a dynamic size based on the\nspecific cache set. Previously, the struct had a fixed-length array of\nsize MAX_BSETS which was indexed out-of-bounds for the dynamically-sized\niterators, which causes UBSAN to complain.\n\nThis patch uses the same approach as in bcachefs's sort_iter and splits\nthe iterator into a btree_iter with a flexible array member and a\nbtree_iter_stack which embeds a btree_iter as well as a fixed-length\ndata array."
                }
            ],
            "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 vulnerable code is the bcache btree-node read path, reached only through local block I/O to a bcache device (`cached_dev_submit_bio` → `cache_lookup` → `bch_btree_node_read_done`) or local registration of a cache device. There is no network-facing consumer of this code.\nAC:L - The out-of-bounds indexing is deterministic, not a race: `iter->size` is set to `bucket_size/block_size` (1024 with the default 512K/512B geometry) against a declared 4-element array, so every btree node carrying more than MAX_BSETS bsets walks past the array bound. An attacker who supplies the cache device additionally controls the bset count and the bucket/block geometry directly.\nPR:L - No capability check exists on the path — an unprivileged local user's ordinary file I/O on a bcache-backed filesystem causes btree cache misses that call `bch_btree_node_get()` → `bch_btree_node_read_done()` and run the oversized iterator. Root is only needed for the stronger variant where the attacker also supplies a crafted cache superblock.\nUI:N - No victim action is required; the out-of-bounds accesses occur during normal read servicing on an already-configured bcache device. Even the crafted-device variant is auto-triggered by bcache-tools' udev register rule rather than by any user step.\nS:U - The corruption is confined to kernel slab memory belonging to the bcache cache set, within the same security authority as the kernel itself. No VM, IOMMU, or sandbox boundary is crossed.\nC:H - `heap_add`/`heap_sift`/`heap_pop` read and write `btree_iter_set` entries (pairs of `struct bkey *`) far beyond the declared four-element array, and in `CONFIG_BCACHE_DEBUG` builds and with buckets exceeding the `meta_bucket_pages()` cap the mempool object is genuinely undersized, so adjacent slab contents are read back as bkey pointers and dereferenced by `btree_mergesort()`, giving an out-of-bounds read primitive usable for disclosure.\nI:H - This is an out-of-bounds write of attacker-influenced pointer values into adjacent slab objects whenever the allocation is short of `iter->size`, and the sift/swap operations shuffle those entries arbitrarily. Corrupting neighbouring heap objects with controlled pointers is a classic path to control-flow hijack.\nA:H - Slab corruption from the out-of-bounds heap operations causes oopses, `bch_btree_iter_push()` hits a `BUG_ON` when the heap fills, and on kernels built with UBSAN array-bounds trapping the out-of-range index is a hard trap producing an immediate panic — all reachable repeatedly through ordinary I/O."
                        }
                    ]
                }
            ],
            "affected": [
                {
                    "product": "Linux",
                    "vendor": "Linux",
                    "defaultStatus": "unaffected",
                    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                    "programFiles": [
                        "drivers/md/bcache/bset.c",
                        "drivers/md/bcache/bset.h",
                        "drivers/md/bcache/btree.c",
                        "drivers/md/bcache/super.c",
                        "drivers/md/bcache/sysfs.c",
                        "drivers/md/bcache/writeback.c"
                    ],
                    "versions": [
                        {
                            "version": "cafe563591446cf80bfbc2fe3bc72a2e36cf1060",
                            "lessThan": "2c3d7b03b658dc8bfa6112b194b67b92a87e081b",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "cafe563591446cf80bfbc2fe3bc72a2e36cf1060",
                            "lessThan": "5a1922adc5798b7ec894cd3f197afb6f9591b023",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "cafe563591446cf80bfbc2fe3bc72a2e36cf1060",
                            "lessThan": "934e1e4331859183a861f396d7dfaf33cb5afb02",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "cafe563591446cf80bfbc2fe3bc72a2e36cf1060",
                            "lessThan": "6479b9f41583b013041943c4602e1ad61cec8148",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "cafe563591446cf80bfbc2fe3bc72a2e36cf1060",
                            "lessThan": "0c31344e22dd8d6b1394c6e4c41d639015bdc671",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "cafe563591446cf80bfbc2fe3bc72a2e36cf1060",
                            "lessThan": "3a861560ccb35f2a4f0a4b8207fa7c2a35fc7f31",
                            "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/md/bcache/bset.c",
                        "drivers/md/bcache/bset.h",
                        "drivers/md/bcache/btree.c",
                        "drivers/md/bcache/super.c",
                        "drivers/md/bcache/sysfs.c",
                        "drivers/md/bcache/writeback.c"
                    ],
                    "versions": [
                        {
                            "version": "3.10",
                            "status": "affected"
                        },
                        {
                            "version": "0",
                            "lessThan": "3.10",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "5.10.221",
                            "lessThanOrEqual": "5.10.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "5.15.162",
                            "lessThanOrEqual": "5.15.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "6.1.94",
                            "lessThanOrEqual": "6.1.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "6.6.34",
                            "lessThanOrEqual": "6.6.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "6.9.5",
                            "lessThanOrEqual": "6.9.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "6.10",
                            "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": "3.10",
                                    "versionEndExcluding": "5.10.221"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "3.10",
                                    "versionEndExcluding": "5.15.162"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "3.10",
                                    "versionEndExcluding": "6.1.94"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "3.10",
                                    "versionEndExcluding": "6.6.34"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "3.10",
                                    "versionEndExcluding": "6.9.5"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "3.10",
                                    "versionEndExcluding": "6.10"
                                }
                            ]
                        }
                    ]
                }
            ],
            "references": [
                {
                    "url": "https://git.kernel.org/stable/c/2c3d7b03b658dc8bfa6112b194b67b92a87e081b"
                },
                {
                    "url": "https://git.kernel.org/stable/c/5a1922adc5798b7ec894cd3f197afb6f9591b023"
                },
                {
                    "url": "https://git.kernel.org/stable/c/934e1e4331859183a861f396d7dfaf33cb5afb02"
                },
                {
                    "url": "https://git.kernel.org/stable/c/6479b9f41583b013041943c4602e1ad61cec8148"
                },
                {
                    "url": "https://git.kernel.org/stable/c/0c31344e22dd8d6b1394c6e4c41d639015bdc671"
                },
                {
                    "url": "https://git.kernel.org/stable/c/3a861560ccb35f2a4f0a4b8207fa7c2a35fc7f31"
                }
            ],
            "title": "bcache: fix variable length array abuse in btree_iter",
            "x_generator": {
                "engine": "bippy-1.2.0"
            }
        },
        "adp": [
            {
                "metrics": [
                    {
                        "other": {
                            "type": "ssvc",
                            "content": {
                                "timestamp": "2024-07-08T17:54:07.988323Z",
                                "id": "CVE-2024-39482",
                                "options": [
                                    {
                                        "Exploitation": "none"
                                    },
                                    {
                                        "Automatable": "no"
                                    },
                                    {
                                        "Technical Impact": "partial"
                                    }
                                ],
                                "role": "CISA Coordinator",
                                "version": "2.0.3"
                            }
                        }
                    }
                ],
                "title": "CISA ADP Vulnrichment",
                "providerMetadata": {
                    "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
                    "shortName": "CISA-ADP",
                    "dateUpdated": "2024-07-08T17:54:15.435Z"
                }
            },
            {
                "providerMetadata": {
                    "orgId": "af854a3a-2127-422b-91ae-364da2661108",
                    "shortName": "CVE",
                    "dateUpdated": "2024-08-02T04:26:15.917Z"
                },
                "title": "CVE Program Container",
                "references": [
                    {
                        "url": "https://git.kernel.org/stable/c/2c3d7b03b658dc8bfa6112b194b67b92a87e081b",
                        "tags": [
                            "x_transferred"
                        ]
                    },
                    {
                        "url": "https://git.kernel.org/stable/c/5a1922adc5798b7ec894cd3f197afb6f9591b023",
                        "tags": [
                            "x_transferred"
                        ]
                    },
                    {
                        "url": "https://git.kernel.org/stable/c/934e1e4331859183a861f396d7dfaf33cb5afb02",
                        "tags": [
                            "x_transferred"
                        ]
                    },
                    {
                        "url": "https://git.kernel.org/stable/c/6479b9f41583b013041943c4602e1ad61cec8148",
                        "tags": [
                            "x_transferred"
                        ]
                    },
                    {
                        "url": "https://git.kernel.org/stable/c/0c31344e22dd8d6b1394c6e4c41d639015bdc671",
                        "tags": [
                            "x_transferred"
                        ]
                    },
                    {
                        "url": "https://git.kernel.org/stable/c/3a861560ccb35f2a4f0a4b8207fa7c2a35fc7f31",
                        "tags": [
                            "x_transferred"
                        ]
                    }
                ]
            },
            {
                "x_adpType": "supplier",
                "providerMetadata": {
                    "orgId": "0b142b55-0307-4c5a-b3c9-f314f3fb7c5e",
                    "shortName": "siemens-SADP",
                    "dateUpdated": "2026-05-12T11:55:25.412Z"
                },
                "affected": [
                    {
                        "vendor": "Siemens",
                        "product": "RUGGEDCOM RST2428P",
                        "versions": [
                            {
                                "status": "affected",
                                "version": "0",
                                "lessThan": "V3.1",
                                "versionType": "custom"
                            }
                        ],
                        "defaultStatus": "unknown"
                    },
                    {
                        "vendor": "Siemens",
                        "product": "RUGGEDCOM RST2428P",
                        "versions": [
                            {
                                "status": "unaffected",
                                "version": "0",
                                "lessThan": "*",
                                "versionType": "custom"
                            }
                        ],
                        "defaultStatus": "unknown"
                    },
                    {
                        "vendor": "Siemens",
                        "product": "SCALANCE XC-300/XR-300/XC-400/XR-500WG/XR-500 family",
                        "versions": [
                            {
                                "status": "unaffected",
                                "version": "0",
                                "lessThan": "*",
                                "versionType": "custom"
                            }
                        ],
                        "defaultStatus": "unknown"
                    },
                    {
                        "vendor": "Siemens",
                        "product": "SCALANCE XC-300/XR-300/XC-400/XR-500WG/XR-500 family",
                        "versions": [
                            {
                                "status": "unaffected",
                                "version": "0",
                                "lessThan": "*",
                                "versionType": "custom"
                            }
                        ],
                        "defaultStatus": "unknown"
                    },
                    {
                        "vendor": "Siemens",
                        "product": "SCALANCE XCM-/XRM-/XCH-/XRH-300 family",
                        "versions": [
                            {
                                "status": "affected",
                                "version": "0",
                                "lessThan": "V3.1",
                                "versionType": "custom"
                            }
                        ],
                        "defaultStatus": "unknown"
                    },
                    {
                        "vendor": "Siemens",
                        "product": "SCALANCE XCM-/XRM-/XCH-/XRH-300 family",
                        "versions": [
                            {
                                "status": "unaffected",
                                "version": "0",
                                "lessThan": "*",
                                "versionType": "custom"
                            }
                        ],
                        "defaultStatus": "unknown"
                    },
                    {
                        "vendor": "Siemens",
                        "product": "SIMATIC S7-1500 TM MFP - GNU/Linux subsystem",
                        "versions": [
                            {
                                "status": "affected",
                                "version": "0",
                                "lessThan": "*",
                                "versionType": "custom"
                            }
                        ],
                        "defaultStatus": "unknown"
                    }
                ],
                "references": [
                    {
                        "url": "https://cert-portal.siemens.com/productcert/html/ssa-265688.html"
                    },
                    {
                        "url": "https://cert-portal.siemens.com/productcert/html/ssa-613116.html"
                    },
                    {
                        "url": "https://cert-portal.siemens.com/productcert/html/ssa-355557.html"
                    }
                ]
            }
        ]
    }
}