CVE-2024-42149

Source
https://nvd.nist.gov/vuln/detail/CVE-2024-42149
Import Source
https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2024-42149.json
JSON Data
https://api.test.osv.dev/v1/vulns/CVE-2024-42149
Downstream
Published
2024-07-30T07:46:42Z
Modified
2025-10-17T09:17:18.793886Z
Summary
fs: don't misleadingly warn during thaw operations
Details

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

fs: don't misleadingly warn during thaw operations

The block device may have been frozen before it was claimed by a filesystem. Concurrently another process might try to mount that frozen block device and has temporarily claimed the block device for that purpose causing a concurrent fsbdevthaw() to end up here. The mounter is already about to abort mounting because they still saw an elevanted bdev->bdfsfreezecount so getbdevsuper() will return NULL in that case.

For example, P1 calls dmsuspend() which calls into bdevfreeze() before the block device has been claimed by the filesystem. This brings bdev->bdfsfreezecount to 1 and no call into fsbdevfreeze() is required.

Now P2 tries to mount that frozen block device. It claims it and checks bdev->bdfsfreezecount. As it's elevated it aborts mounting.

In the meantime P3 called dmresume(). P3 sees that the block device is already claimed by a filesystem and calls into fsbdev_thaw().

P3 takes a passive reference and realizes that the filesystem isn't ready yet. P3 puts itself to sleep to wait for the filesystem to become ready.

P2 now puts the last active reference to the filesystem and marks it as dying. P3 gets woken, sees that the filesystem is dying and getbdevsuper() fails.

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
49ef8832fb1a9e0da0020eb17480fd286433bc13
Fixed
25b1e3906e050d452427bc51620bb7f0a591373a
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
49ef8832fb1a9e0da0020eb17480fd286433bc13
Fixed
2ae4db5647d807efb6a87c09efaa6d1db9c905d7

Affected versions

v6.*

v6.10-rc1
v6.10-rc2
v6.10-rc3
v6.7
v6.7-rc2
v6.7-rc3
v6.7-rc4
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.9
v6.9-rc1
v6.9-rc2
v6.9-rc3
v6.9-rc4
v6.9-rc5
v6.9-rc6
v6.9-rc7
v6.9.1
v6.9.2
v6.9.3
v6.9.4
v6.9.5
v6.9.6
v6.9.7
v6.9.8

Database specific

vanir_signatures

[
    {
        "signature_type": "Line",
        "digest": {
            "line_hashes": [
                "309763744315860166587154738751819789107",
                "105421370258205710060646790632789210322",
                "306213041906131701352283671449976343664",
                "225555666521413084142384941122715744712",
                "84637076856445690852011277193320993239"
            ],
            "threshold": 0.9
        },
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@25b1e3906e050d452427bc51620bb7f0a591373a",
        "target": {
            "file": "fs/super.c"
        },
        "id": "CVE-2024-42149-41bbc68f",
        "signature_version": "v1",
        "deprecated": false
    },
    {
        "signature_type": "Function",
        "digest": {
            "length": 405.0,
            "function_hash": "77414383125432699998197111964467171587"
        },
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2ae4db5647d807efb6a87c09efaa6d1db9c905d7",
        "target": {
            "function": "fs_bdev_thaw",
            "file": "fs/super.c"
        },
        "id": "CVE-2024-42149-5267e8e5",
        "signature_version": "v1",
        "deprecated": false
    },
    {
        "signature_type": "Line",
        "digest": {
            "line_hashes": [
                "309763744315860166587154738751819789107",
                "105421370258205710060646790632789210322",
                "306213041906131701352283671449976343664",
                "225555666521413084142384941122715744712",
                "84637076856445690852011277193320993239"
            ],
            "threshold": 0.9
        },
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2ae4db5647d807efb6a87c09efaa6d1db9c905d7",
        "target": {
            "file": "fs/super.c"
        },
        "id": "CVE-2024-42149-bce0460e",
        "signature_version": "v1",
        "deprecated": false
    },
    {
        "signature_type": "Function",
        "digest": {
            "length": 405.0,
            "function_hash": "77414383125432699998197111964467171587"
        },
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@25b1e3906e050d452427bc51620bb7f0a591373a",
        "target": {
            "function": "fs_bdev_thaw",
            "file": "fs/super.c"
        },
        "id": "CVE-2024-42149-c114071e",
        "signature_version": "v1",
        "deprecated": false
    }
]

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
6.8.0
Fixed
6.9.9