{
    "dataType": "CVE_RECORD",
    "dataVersion": "5.2",
    "cveMetadata": {
        "cveId": "CVE-2026-92500",
        "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "state": "PUBLISHED",
        "assignerShortName": "Linux",
        "dateReserved": "2026-09-16T12:21:13.871Z",
        "datePublished": "2026-09-17T16:10:14.073Z",
        "dateUpdated": "2026-10-19T09:04:06.284Z"
    },
    "containers": {
        "cna": {
            "providerMetadata": {
                "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
                "shortName": "Linux",
                "dateUpdated": "2026-10-19T09:04:06.284Z"
            },
            "descriptions": [
                {
                    "lang": "en",
                    "value": "In the Linux kernel, the following vulnerability has been resolved:\n\next4: use fsdata to track inline data write state and fix race\n\nInstead of checking the live inode state (ext4_has_inline_data(inode)\nand ext4_test_inode_state(inode, EXT4_STATE_MAY_INLINE_DATA)) in the\nwrite_end handlers, use the fsdata parameter of the address space\noperations to explicitly pass down the state in which write_begin\nprepared the write.\n\nA concurrent thread (such as ext4_page_mkwrite()) can convert the\ninline data to an extent between write_begin and write_end. If this\nhappens, the write_end handlers would previously miss the inline\nwrite_end path and fall through to extent-based write_end logic.\nHowever, since block buffers were never allocated in write_begin,\nthis resulted in NULL pointer dereferences or data loss because\nfolio_buffers(folio) was NULL.\n\nDefine EXT4_WRITE_DATA_INLINE (4) as a bit flag (Bit 2), treating\nfsdata as bitwise flags rather than mutually exclusive enums to keep\nstates of the write path independent. Communicate this state via\nfsdata:\n1) ext4_write_begin() and ext4_da_write_begin() set the\n   EXT4_WRITE_DATA_INLINE bit in *fsdata via bitwise OR when an inline\n   write is successfully prepared.\n2) On entry, ext4_write_begin() clears the EXT4_WRITE_DATA_INLINE bit\n   to safely handle VFS retries (where generic_perform_write() bypasses\n   the fsdata initialization on its retry jump).\n3) The write_end handlers perform a bitwise AND to check if the\n   EXT4_WRITE_DATA_INLINE bit is set and invoke the inline write_end\n   helper accordingly.\n\nFurthermore, during a buffered write, ext4_write_inline_data_end()\nacquires the xattr lock after preparing the write. If a concurrent\npage fault (ext4_page_mkwrite()) converts the inline data to an extent\nafter the write_end handlers check the state but before\next4_write_inline_data_end() acquires the xattr write lock, the\nsubsequent check will trigger a kernel panic via\nBUG_ON(!ext4_has_inline_data(inode)).\n\nTo keep git history working and bisectability clean, replace the\nBUG_ON check in ext4_write_inline_data_end() with a graceful error-\nhandling retry path in this same commit. If the inline data is cleared\nafter locking the xattr, we safely release all resources (releasing\niloc.bh, unlocking/putting the folio, stopping the active journal\ntransaction handle) and return 0 (VFS retry) to let the generic write\npath retry the operation safely."
                }
            ],
            "affected": [
                {
                    "product": "Linux",
                    "vendor": "Linux",
                    "defaultStatus": "unaffected",
                    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                    "programFiles": [
                        "fs/ext4/ext4.h",
                        "fs/ext4/inline.c",
                        "fs/ext4/inode.c"
                    ],
                    "versions": [
                        {
                            "version": "3fdcfb668fd78ec92d9bc2daddf1d41e2a8a30bb",
                            "lessThan": "bd8d74bd46d09905164255b8635fa58b45f41068",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "3fdcfb668fd78ec92d9bc2daddf1d41e2a8a30bb",
                            "lessThan": "439aedfd7ae868d1d7b4930afe66091cb979cd5c",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "3fdcfb668fd78ec92d9bc2daddf1d41e2a8a30bb",
                            "lessThan": "7edbb323bab2b2a609016014caafdb651c898249",
                            "status": "affected",
                            "versionType": "git"
                        }
                    ]
                },
                {
                    "product": "Linux",
                    "vendor": "Linux",
                    "defaultStatus": "affected",
                    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                    "programFiles": [
                        "fs/ext4/ext4.h",
                        "fs/ext4/inline.c",
                        "fs/ext4/inode.c"
                    ],
                    "versions": [
                        {
                            "version": "3.8",
                            "status": "affected"
                        },
                        {
                            "version": "0",
                            "lessThan": "3.8",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "6.18.52",
                            "lessThanOrEqual": "6.18.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "7.2.6",
                            "lessThanOrEqual": "7.2.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "7.3",
                            "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.8",
                                    "versionEndExcluding": "6.18.52"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "3.8",
                                    "versionEndExcluding": "7.2.6"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "3.8",
                                    "versionEndExcluding": "7.3"
                                }
                            ]
                        }
                    ]
                }
            ],
            "references": [
                {
                    "url": "https://git.kernel.org/stable/c/bd8d74bd46d09905164255b8635fa58b45f41068"
                },
                {
                    "url": "https://git.kernel.org/stable/c/439aedfd7ae868d1d7b4930afe66091cb979cd5c"
                },
                {
                    "url": "https://git.kernel.org/stable/c/7edbb323bab2b2a609016014caafdb651c898249"
                }
            ],
            "title": "ext4: use fsdata to track inline data write state and fix race",
            "x_generator": {
                "engine": "bippy-1.2.0"
            }
        }
    }
}