CVE-2023-53447

Source
https://nvd.nist.gov/vuln/detail/CVE-2023-53447
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2023-53447.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2023-53447
Downstream
Related
Published
2025-09-18T16:04:22Z
Modified
2025-10-21T16:51:11.199223Z
Summary
f2fs: don't reset unchangable mount option in f2fs_remount()
Details

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

f2fs: don't reset unchangable mount option in f2fs_remount()

syzbot reports a bug as below:

general protection fault, probably for non-canonical address 0xdffffc0000000009: 0000 [#1] PREEMPT SMP KASAN RIP: 0010:_lockacquire+0x69/0x2000 kernel/locking/lockdep.c:4942 Call Trace: lockacquire+0x1e3/0x520 kernel/locking/lockdep.c:5691 _rawwritelock include/linux/rwlockapismp.h:209 [inline] rawwritelock+0x2e/0x40 kernel/locking/spinlock.c:300 _dropextenttree+0x3ac/0x660 fs/f2fs/extentcache.c:1100 f2fsdropextenttree+0x17/0x30 fs/f2fs/extentcache.c:1116 f2fsinsertrange+0x2d5/0x3c0 fs/f2fs/file.c:1664 f2fsfallocate+0x4e4/0x6d0 fs/f2fs/file.c:1838 vfsfallocate+0x54b/0x6b0 fs/open.c:324 ksysfallocate fs/open.c:347 [inline] _dosysfallocate fs/open.c:355 [inline] _sesysfallocate fs/open.c:353 [inline] _x64sysfallocate+0xbd/0x100 fs/open.c:353 dosyscallx64 arch/x86/entry/common.c:50 [inline] dosyscall64+0x41/0xc0 arch/x86/entry/common.c:80 entrySYSCALL64after_hwframe+0x63/0xcd

The root cause is race condition as below: - since it tries to remount rw filesystem, so that doremount won't call sbprepareremountreadonly to block fallocate, there may be race condition in between remount and fallocate. - in f2fsremount(), defaultoptions() will reset mount option to default one, and then update it based on result of parse_options(), so there is a hole which race condition can happen.

Thread A Thread B - f2fsfillsuper - parseoptions - clearopt(READEXTENTCACHE)

  • f2fs_remount
    • defaultoptions
      • setopt(READEXTENTCACHE)
        • f2fsfallocate
          • f2fsinsertrange
            • f2fsdropextenttree
              • dropextenttree
                • mayextenttree
                  • testopt(READEXTENTCACHE) return true
                • writelock(&et->lock) access NULL pointer
    • parseoptions
      • clearopt(READEXTENTCACHE)
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
98e4da8ca301e062d79ae168c67e56f3c3de3ce4
Fixed
115557cc226a927924f2d7d1980ccbf6e3b3bb36
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
98e4da8ca301e062d79ae168c67e56f3c3de3ce4
Fixed
458c15dfbce62c35fefd9ca637b20a051309c9f1

Affected versions

v3.*

v3.10
v3.10-rc1
v3.10-rc2
v3.10-rc3
v3.10-rc4
v3.10-rc5
v3.10-rc6
v3.10-rc7
v3.11
v3.11-rc1
v3.11-rc2
v3.11-rc3
v3.11-rc4
v3.11-rc5
v3.11-rc6
v3.11-rc7
v3.12
v3.12-rc1
v3.12-rc2
v3.12-rc3
v3.12-rc4
v3.12-rc5
v3.12-rc6
v3.12-rc7
v3.13
v3.13-rc1
v3.13-rc2
v3.13-rc3
v3.13-rc4
v3.13-rc5
v3.13-rc6
v3.13-rc7
v3.13-rc8
v3.14
v3.14-rc1
v3.14-rc2
v3.14-rc3
v3.14-rc4
v3.14-rc5
v3.14-rc6
v3.14-rc7
v3.14-rc8
v3.15
v3.15-rc1
v3.15-rc2
v3.15-rc3
v3.15-rc4
v3.15-rc5
v3.15-rc6
v3.15-rc7
v3.15-rc8
v3.16
v3.16-rc1
v3.16-rc2
v3.16-rc3
v3.16-rc4
v3.16-rc5
v3.16-rc6
v3.16-rc7
v3.17
v3.17-rc1
v3.17-rc2
v3.17-rc3
v3.17-rc4
v3.17-rc5
v3.17-rc6
v3.17-rc7
v3.18
v3.18-rc1
v3.18-rc2
v3.18-rc3
v3.18-rc4
v3.18-rc5
v3.18-rc6
v3.18-rc7
v3.19
v3.19-rc1
v3.19-rc2
v3.19-rc3
v3.19-rc4
v3.19-rc5
v3.19-rc6
v3.19-rc7
v3.8
v3.8-rc1
v3.8-rc2
v3.8-rc3
v3.8-rc4
v3.8-rc5
v3.8-rc6
v3.8-rc7
v3.9
v3.9-rc1
v3.9-rc2
v3.9-rc3
v3.9-rc4
v3.9-rc5
v3.9-rc6
v3.9-rc7
v3.9-rc8

v4.*

v4.0
v4.0-rc1
v4.0-rc2
v4.0-rc3
v4.0-rc4
v4.0-rc5
v4.0-rc6
v4.0-rc7
v4.1
v4.1-rc1
v4.1-rc2
v4.1-rc3
v4.1-rc4
v4.1-rc5
v4.1-rc6
v4.1-rc7
v4.1-rc8
v4.10
v4.10-rc1
v4.10-rc2
v4.10-rc3
v4.10-rc4
v4.10-rc5
v4.10-rc6
v4.10-rc7
v4.10-rc8
v4.11
v4.11-rc1
v4.11-rc2
v4.11-rc3
v4.11-rc4
v4.11-rc5
v4.11-rc6
v4.11-rc7
v4.11-rc8
v4.12
v4.12-rc1
v4.12-rc2
v4.12-rc3
v4.12-rc4
v4.12-rc5
v4.12-rc6
v4.12-rc7
v4.13
v4.13-rc1
v4.13-rc2
v4.13-rc3
v4.13-rc4
v4.13-rc5
v4.13-rc6
v4.13-rc7
v4.14
v4.14-rc1
v4.14-rc2
v4.14-rc3
v4.14-rc4
v4.14-rc5
v4.14-rc6
v4.14-rc7
v4.14-rc8
v4.15
v4.15-rc1
v4.15-rc2
v4.15-rc3
v4.15-rc4
v4.15-rc5
v4.15-rc6
v4.15-rc7
v4.15-rc8
v4.15-rc9
v4.16
v4.16-rc1
v4.16-rc2
v4.16-rc3
v4.16-rc4
v4.16-rc5
v4.16-rc6
v4.16-rc7
v4.17
v4.17-rc1
v4.17-rc2
v4.17-rc3
v4.17-rc4
v4.17-rc5
v4.17-rc6
v4.17-rc7
v4.18
v4.18-rc1
v4.18-rc2
v4.18-rc3
v4.18-rc4
v4.18-rc5
v4.18-rc6
v4.18-rc7
v4.18-rc8
v4.19
v4.19-rc1
v4.19-rc2
v4.19-rc3
v4.19-rc4
v4.19-rc5
v4.19-rc6
v4.19-rc7
v4.19-rc8
v4.2
v4.2-rc1
v4.2-rc2
v4.2-rc3
v4.2-rc4
v4.2-rc5
v4.2-rc6
v4.2-rc7
v4.2-rc8
v4.20
v4.20-rc1
v4.20-rc2
v4.20-rc3
v4.20-rc4
v4.20-rc5
v4.20-rc6
v4.20-rc7
v4.3
v4.3-rc1
v4.3-rc2
v4.3-rc3
v4.3-rc4
v4.3-rc5
v4.3-rc6
v4.3-rc7
v4.4
v4.4-rc1
v4.4-rc2
v4.4-rc3
v4.4-rc4
v4.4-rc5
v4.4-rc6
v4.4-rc7
v4.4-rc8
v4.5
v4.5-rc1
v4.5-rc2
v4.5-rc3
v4.5-rc4
v4.5-rc5
v4.5-rc6
v4.5-rc7
v4.6
v4.6-rc1
v4.6-rc2
v4.6-rc3
v4.6-rc4
v4.6-rc5
v4.6-rc6
v4.6-rc7
v4.7
v4.7-rc1
v4.7-rc2
v4.7-rc3
v4.7-rc4
v4.7-rc5
v4.7-rc6
v4.7-rc7
v4.8
v4.8-rc1
v4.8-rc2
v4.8-rc3
v4.8-rc4
v4.8-rc5
v4.8-rc6
v4.8-rc7
v4.8-rc8
v4.9
v4.9-rc1
v4.9-rc2
v4.9-rc3
v4.9-rc4
v4.9-rc5
v4.9-rc6
v4.9-rc7
v4.9-rc8

v5.*

v5.0
v5.0-rc1
v5.0-rc2
v5.0-rc3
v5.0-rc4
v5.0-rc5
v5.0-rc6
v5.0-rc7
v5.0-rc8
v5.1
v5.1-rc1
v5.1-rc2
v5.1-rc3
v5.1-rc4
v5.1-rc5
v5.1-rc6
v5.1-rc7
v5.10
v5.10-rc1
v5.10-rc2
v5.10-rc3
v5.10-rc4
v5.10-rc5
v5.10-rc6
v5.10-rc7
v5.11
v5.11-rc1
v5.11-rc2
v5.11-rc3
v5.11-rc4
v5.11-rc5
v5.11-rc6
v5.11-rc7
v5.12
v5.12-rc1
v5.12-rc1-dontuse
v5.12-rc2
v5.12-rc3
v5.12-rc4
v5.12-rc5
v5.12-rc6
v5.12-rc7
v5.12-rc8
v5.13
v5.13-rc1
v5.13-rc2
v5.13-rc3
v5.13-rc4
v5.13-rc5
v5.13-rc6
v5.13-rc7
v5.14
v5.14-rc1
v5.14-rc2
v5.14-rc3
v5.14-rc4
v5.14-rc5
v5.14-rc6
v5.14-rc7
v5.15
v5.15-rc1
v5.15-rc2
v5.15-rc3
v5.15-rc4
v5.15-rc5
v5.15-rc6
v5.15-rc7
v5.16
v5.16-rc1
v5.16-rc2
v5.16-rc3
v5.16-rc4
v5.16-rc5
v5.16-rc6
v5.16-rc7
v5.16-rc8
v5.17
v5.17-rc1
v5.17-rc2
v5.17-rc3
v5.17-rc4
v5.17-rc5
v5.17-rc6
v5.17-rc7
v5.17-rc8
v5.18
v5.18-rc1
v5.18-rc2
v5.18-rc3
v5.18-rc4
v5.18-rc5
v5.18-rc6
v5.18-rc7
v5.19
v5.19-rc1
v5.19-rc2
v5.19-rc3
v5.19-rc4
v5.19-rc5
v5.19-rc6
v5.19-rc7
v5.19-rc8
v5.2
v5.2-rc1
v5.2-rc2
v5.2-rc3
v5.2-rc4
v5.2-rc5
v5.2-rc6
v5.2-rc7
v5.3
v5.3-rc1
v5.3-rc2
v5.3-rc3
v5.3-rc4
v5.3-rc5
v5.3-rc6
v5.3-rc7
v5.3-rc8
v5.4
v5.4-rc1
v5.4-rc2
v5.4-rc3
v5.4-rc4
v5.4-rc5
v5.4-rc6
v5.4-rc7
v5.4-rc8
v5.5
v5.5-rc1
v5.5-rc2
v5.5-rc3
v5.5-rc4
v5.5-rc5
v5.5-rc6
v5.5-rc7
v5.6
v5.6-rc1
v5.6-rc2
v5.6-rc3
v5.6-rc4
v5.6-rc5
v5.6-rc6
v5.6-rc7
v5.7
v5.7-rc1
v5.7-rc2
v5.7-rc3
v5.7-rc4
v5.7-rc5
v5.7-rc6
v5.7-rc7
v5.8
v5.8-rc1
v5.8-rc2
v5.8-rc3
v5.8-rc4
v5.8-rc5
v5.8-rc6
v5.8-rc7
v5.9
v5.9-rc1
v5.9-rc2
v5.9-rc3
v5.9-rc4
v5.9-rc5
v5.9-rc6
v5.9-rc7
v5.9-rc8

v6.*

v6.0
v6.0-rc1
v6.0-rc2
v6.0-rc3
v6.0-rc4
v6.0-rc5
v6.0-rc6
v6.0-rc7
v6.1
v6.1-rc1
v6.1-rc2
v6.1-rc3
v6.1-rc4
v6.1-rc5
v6.1-rc6
v6.1-rc7
v6.1-rc8
v6.2
v6.2-rc1
v6.2-rc2
v6.2-rc3
v6.2-rc4
v6.2-rc5
v6.2-rc6
v6.2-rc7
v6.2-rc8
v6.3
v6.3-rc1
v6.3-rc2
v6.3-rc3
v6.3-rc4
v6.3-rc5
v6.3-rc6
v6.3-rc7
v6.4
v6.4-rc1
v6.4-rc2
v6.4-rc3
v6.4-rc4
v6.4-rc5
v6.4-rc6
v6.4-rc7
v6.4.1
v6.4.2
v6.4.3
v6.4.4

Database specific

vanir_signatures

[
    {
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@115557cc226a927924f2d7d1980ccbf6e3b3bb36",
        "target": {
            "function": "default_options",
            "file": "fs/f2fs/super.c"
        },
        "id": "CVE-2023-53447-2621253a",
        "deprecated": false,
        "digest": {
            "function_hash": "211061857075594305065289802674226993448",
            "length": 2029.0
        },
        "signature_type": "Function",
        "signature_version": "v1"
    },
    {
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@458c15dfbce62c35fefd9ca637b20a051309c9f1",
        "target": {
            "function": "f2fs_remount",
            "file": "fs/f2fs/super.c"
        },
        "id": "CVE-2023-53447-3f95238e",
        "deprecated": false,
        "digest": {
            "function_hash": "94338907244433599195305326304735611165",
            "length": 6087.0
        },
        "signature_type": "Function",
        "signature_version": "v1"
    },
    {
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@115557cc226a927924f2d7d1980ccbf6e3b3bb36",
        "target": {
            "function": "f2fs_remount",
            "file": "fs/f2fs/super.c"
        },
        "id": "CVE-2023-53447-56022b49",
        "deprecated": false,
        "digest": {
            "function_hash": "94338907244433599195305326304735611165",
            "length": 6087.0
        },
        "signature_type": "Function",
        "signature_version": "v1"
    },
    {
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@458c15dfbce62c35fefd9ca637b20a051309c9f1",
        "target": {
            "function": "default_options",
            "file": "fs/f2fs/super.c"
        },
        "id": "CVE-2023-53447-68198f87",
        "deprecated": false,
        "digest": {
            "function_hash": "211061857075594305065289802674226993448",
            "length": 2029.0
        },
        "signature_type": "Function",
        "signature_version": "v1"
    },
    {
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@458c15dfbce62c35fefd9ca637b20a051309c9f1",
        "target": {
            "file": "fs/f2fs/super.c"
        },
        "id": "CVE-2023-53447-9a0af9ea",
        "deprecated": false,
        "digest": {
            "line_hashes": [
                "160163876570008939168140686315332029534",
                "101438908262445355999502066059733696806",
                "277566865991583756555846844419415480998",
                "33906992988402966142156938721855472473",
                "308029683719975523527200361382431880915",
                "244105314421942006911374618481762419901",
                "10655008309403596629276018708097715293",
                "52895699475835010618111071299828054738",
                "290841741902725507021108637348592775104",
                "294279826663350481939026580281132849738",
                "245774084144300936150265328339302554379",
                "293449566555766674375638220371511849082",
                "236553437066323627762601204028902592884",
                "294435777098616799149109195239146923837",
                "149707570088996919141195681714828304792",
                "80984655400748947140517180549138677574",
                "146315558556040414640556046213477073444",
                "241806455978480474288030640059138721539",
                "254158886195083768098991004715160765465",
                "277994919497675392293101631940882495175",
                "9025937658555747227663760686058135104",
                "173732190944416571402727376775366962192",
                "294666783262630133422352948889986296076",
                "290244503243202264899360419688813209018",
                "306553616434771744198227153248978835088",
                "285561883391811383558487871023807640170",
                "217629582972436398848137186635374749279",
                "63868552619502867672737885130281333249",
                "199717112902552000796715806920126312395",
                "77359623364027727690878577258299878621",
                "155988043304680420051297307806627514474",
                "87885279676159392764755818900254197365",
                "100558606163512976724764116012398141271"
            ],
            "threshold": 0.9
        },
        "signature_type": "Line",
        "signature_version": "v1"
    },
    {
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@115557cc226a927924f2d7d1980ccbf6e3b3bb36",
        "target": {
            "file": "fs/f2fs/super.c"
        },
        "id": "CVE-2023-53447-c62aa3ce",
        "deprecated": false,
        "digest": {
            "line_hashes": [
                "160163876570008939168140686315332029534",
                "101438908262445355999502066059733696806",
                "277566865991583756555846844419415480998",
                "33906992988402966142156938721855472473",
                "308029683719975523527200361382431880915",
                "244105314421942006911374618481762419901",
                "10655008309403596629276018708097715293",
                "52895699475835010618111071299828054738",
                "290841741902725507021108637348592775104",
                "294279826663350481939026580281132849738",
                "245774084144300936150265328339302554379",
                "293449566555766674375638220371511849082",
                "236553437066323627762601204028902592884",
                "294435777098616799149109195239146923837",
                "149707570088996919141195681714828304792",
                "80984655400748947140517180549138677574",
                "146315558556040414640556046213477073444",
                "241806455978480474288030640059138721539",
                "254158886195083768098991004715160765465",
                "277994919497675392293101631940882495175",
                "9025937658555747227663760686058135104",
                "173732190944416571402727376775366962192",
                "294666783262630133422352948889986296076",
                "290244503243202264899360419688813209018",
                "306553616434771744198227153248978835088",
                "285561883391811383558487871023807640170",
                "217629582972436398848137186635374749279",
                "63868552619502867672737885130281333249",
                "199717112902552000796715806920126312395",
                "77359623364027727690878577258299878621",
                "155988043304680420051297307806627514474",
                "87885279676159392764755818900254197365",
                "100558606163512976724764116012398141271"
            ],
            "threshold": 0.9
        },
        "signature_type": "Line",
        "signature_version": "v1"
    },
    {
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@458c15dfbce62c35fefd9ca637b20a051309c9f1",
        "target": {
            "function": "f2fs_fill_super",
            "file": "fs/f2fs/super.c"
        },
        "id": "CVE-2023-53447-cec69816",
        "deprecated": false,
        "digest": {
            "function_hash": "126289210384802218248264887643716535314",
            "length": 10680.0
        },
        "signature_type": "Function",
        "signature_version": "v1"
    },
    {
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@115557cc226a927924f2d7d1980ccbf6e3b3bb36",
        "target": {
            "function": "f2fs_fill_super",
            "file": "fs/f2fs/super.c"
        },
        "id": "CVE-2023-53447-da545118",
        "deprecated": false,
        "digest": {
            "function_hash": "126289210384802218248264887643716535314",
            "length": 10680.0
        },
        "signature_type": "Function",
        "signature_version": "v1"
    }
]

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
3.8.0
Fixed
6.4.5