CVE-2024-27007

Source
https://nvd.nist.gov/vuln/detail/CVE-2024-27007
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2024-27007.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2024-27007
Downstream
Published
2024-05-01T05:29:08Z
Modified
2025-10-15T09:20:10.845549Z
Summary
userfaultfd: change src_folio after ensuring it's unpinned in UFFDIO_MOVE
Details

In the Linux kernel, the following vulnerability has been resolved:

userfaultfd: change srcfolio after ensuring it's unpinned in UFFDIOMOVE

Commit d7a08838ab74 ("mm: userfaultfd: fix unexpected change to srcfolio when UFFDIOMOVE fails") moved the src_folio->{mapping, index} changing to after clearing the page-table and ensuring that it's not pinned. This avoids failure of swapout+migration and possibly memory corruption.

However, the commit missed fixing it in the huge-page case.

References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
adef440691bab824e39c1b17382322d195e1fab0
Fixed
df5f6e683e7f21a15d8be6e7a0c7a46436963ebe
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
adef440691bab824e39c1b17382322d195e1fab0
Fixed
c0205eaf3af9f5db14d4b5ee4abacf4a583c3c50

Affected versions

v6.*

v6.7
v6.7-rc5
v6.7-rc6
v6.7-rc7
v6.7-rc8
v6.8
v6.8-rc1
v6.8-rc2
v6.8-rc3
v6.8-rc4
v6.8-rc5
v6.8-rc6
v6.8-rc7
v6.8.1
v6.8.2
v6.8.3
v6.8.4
v6.8.5
v6.8.6
v6.8.7
v6.9-rc1
v6.9-rc2
v6.9-rc3
v6.9-rc4

Database specific

{
    "vanir_signatures": [
        {
            "deprecated": false,
            "signature_type": "Function",
            "target": {
                "file": "mm/huge_memory.c",
                "function": "move_pages_huge_pmd"
            },
            "signature_version": "v1",
            "digest": {
                "length": 2127.0,
                "function_hash": "340176901195800190894746941608185170188"
            },
            "id": "CVE-2024-27007-47e3acfc",
            "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@df5f6e683e7f21a15d8be6e7a0c7a46436963ebe"
        },
        {
            "deprecated": false,
            "signature_type": "Line",
            "target": {
                "file": "mm/huge_memory.c"
            },
            "signature_version": "v1",
            "digest": {
                "line_hashes": [
                    "23759681854080917725572311687060867284",
                    "166109542958895183105162408500109629459",
                    "280005077936918461776488163942645822763",
                    "263791309033487465190817732216090951555",
                    "107713488539672584819762779661265372049",
                    "142993249396626294271898599460446890090",
                    "300975443775218608517338204467178351980",
                    "177334269480807726779723606399320645971"
                ],
                "threshold": 0.9
            },
            "id": "CVE-2024-27007-d517e733",
            "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@df5f6e683e7f21a15d8be6e7a0c7a46436963ebe"
        }
    ]
}

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
6.8.0
Fixed
6.8.8