CVE-2024-56565 (GCVE-0-2024-56565)
Vulnerability from cvelistv5 – Published: 2024-12-27 14:23 – Updated: 2026-05-11 20:54
VLAI
EPSS
VEX
Title
f2fs: fix to drop all discards after creating snapshot on lvm device
Summary
In the Linux kernel, the following vulnerability has been resolved:
f2fs: fix to drop all discards after creating snapshot on lvm device
Piergiorgio reported a bug in bugzilla as below:
------------[ cut here ]------------
WARNING: CPU: 2 PID: 969 at fs/f2fs/segment.c:1330
RIP: 0010:__submit_discard_cmd+0x27d/0x400 [f2fs]
Call Trace:
__issue_discard_cmd+0x1ca/0x350 [f2fs]
issue_discard_thread+0x191/0x480 [f2fs]
kthread+0xcf/0x100
ret_from_fork+0x31/0x50
ret_from_fork_asm+0x1a/0x30
w/ below testcase, it can reproduce this bug quickly:
- pvcreate /dev/vdb
- vgcreate myvg1 /dev/vdb
- lvcreate -L 1024m -n mylv1 myvg1
- mount /dev/myvg1/mylv1 /mnt/f2fs
- dd if=/dev/zero of=/mnt/f2fs/file bs=1M count=20
- sync
- rm /mnt/f2fs/file
- sync
- lvcreate -L 1024m -s -n mylv1-snapshot /dev/myvg1/mylv1
- umount /mnt/f2fs
The root cause is: it will update discard_max_bytes of mounted lvm
device to zero after creating snapshot on this lvm device, then,
__submit_discard_cmd() will pass parameter @nr_sects w/ zero value
to __blkdev_issue_discard(), it returns a NULL bio pointer, result
in panic.
This patch changes as below for fixing:
1. Let's drop all remained discards in f2fs_unfreeze() if snapshot
of lvm device is created.
2. Checking discard_max_bytes before submitting discard during
__submit_discard_cmd().
Severity
5.5 (Medium)
Assigner
References
Impacted products
2 products
| Vendor | Product | Version | CPE status | |
|---|---|---|---|---|
| Linux | Linux |
Affected:
35ec7d5748849762008e8ae9f8ad2766229d5794 , < ed24ab98242f8d22b66fbe0452c97751b5ea4e22
(git)
Affected: 35ec7d5748849762008e8ae9f8ad2766229d5794 , < 15136c3861a3341db261ebdbb6ae4ae1765635e2 (git) Affected: 35ec7d5748849762008e8ae9f8ad2766229d5794 , < bc8aeb04fd80cb8cfae3058445c84410fd0beb5e (git) |
guessed | |
| Linux | Linux |
Affected:
4.19
Unaffected: 0 , < 4.19 (semver) Unaffected: 6.6.66 , ≤ 6.6.* (semver) Unaffected: 6.12.4 , ≤ 6.12.* (semver) Unaffected: 6.13 , ≤ * (original_commit_for_fix) |
guessed |
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/f2fs/segment.c",
"fs/f2fs/super.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "ed24ab98242f8d22b66fbe0452c97751b5ea4e22",
"status": "affected",
"version": "35ec7d5748849762008e8ae9f8ad2766229d5794",
"versionType": "git"
},
{
"lessThan": "15136c3861a3341db261ebdbb6ae4ae1765635e2",
"status": "affected",
"version": "35ec7d5748849762008e8ae9f8ad2766229d5794",
"versionType": "git"
},
{
"lessThan": "bc8aeb04fd80cb8cfae3058445c84410fd0beb5e",
"status": "affected",
"version": "35ec7d5748849762008e8ae9f8ad2766229d5794",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/f2fs/segment.c",
"fs/f2fs/super.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.19"
},
{
"lessThan": "4.19",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.66",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "6.13",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.66",
"versionStartIncluding": "4.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.4",
"versionStartIncluding": "4.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.13",
"versionStartIncluding": "4.19",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nf2fs: fix to drop all discards after creating snapshot on lvm device\n\nPiergiorgio reported a bug in bugzilla as below:\n\n------------[ cut here ]------------\nWARNING: CPU: 2 PID: 969 at fs/f2fs/segment.c:1330\nRIP: 0010:__submit_discard_cmd+0x27d/0x400 [f2fs]\nCall Trace:\n __issue_discard_cmd+0x1ca/0x350 [f2fs]\n issue_discard_thread+0x191/0x480 [f2fs]\n kthread+0xcf/0x100\n ret_from_fork+0x31/0x50\n ret_from_fork_asm+0x1a/0x30\n\nw/ below testcase, it can reproduce this bug quickly:\n- pvcreate /dev/vdb\n- vgcreate myvg1 /dev/vdb\n- lvcreate -L 1024m -n mylv1 myvg1\n- mount /dev/myvg1/mylv1 /mnt/f2fs\n- dd if=/dev/zero of=/mnt/f2fs/file bs=1M count=20\n- sync\n- rm /mnt/f2fs/file\n- sync\n- lvcreate -L 1024m -s -n mylv1-snapshot /dev/myvg1/mylv1\n- umount /mnt/f2fs\n\nThe root cause is: it will update discard_max_bytes of mounted lvm\ndevice to zero after creating snapshot on this lvm device, then,\n__submit_discard_cmd() will pass parameter @nr_sects w/ zero value\nto __blkdev_issue_discard(), it returns a NULL bio pointer, result\nin panic.\n\nThis patch changes as below for fixing:\n1. Let\u0027s drop all remained discards in f2fs_unfreeze() if snapshot\nof lvm device is created.\n2. Checking discard_max_bytes before submitting discard during\n__submit_discard_cmd()."
}
],
"providerMetadata": {
"dateUpdated": "2026-05-11T20:54:53.718Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/ed24ab98242f8d22b66fbe0452c97751b5ea4e22"
},
{
"url": "https://git.kernel.org/stable/c/15136c3861a3341db261ebdbb6ae4ae1765635e2"
},
{
"url": "https://git.kernel.org/stable/c/bc8aeb04fd80cb8cfae3058445c84410fd0beb5e"
}
],
"title": "f2fs: fix to drop all discards after creating snapshot on lvm device",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2024-56565",
"datePublished": "2024-12-27T14:23:09.350Z",
"dateReserved": "2024-12-27T14:03:05.995Z",
"dateUpdated": "2026-05-11T20:54:53.718Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"vulnerability-lookup:meta": {
"epss": {
"cve": "CVE-2024-56565",
"date": "2026-09-14",
"epss": "0.00216",
"percentile": "0.12099"
},
"microsoft_vex": {
"current_release_date": "2025-10-10T14:35:28.000Z",
"cve": "CVE-2024-56565",
"id": "msrc_CVE-2024-56565",
"initial_release_date": "2024-12-02T00:00:00.000Z",
"product_status:known_not_affected": "1",
"source": "Microsoft CSAF VEX",
"status": "final",
"title": "f2fs: fix to drop all discards after creating snapshot on lvm device",
"url": "https://msrc.microsoft.com/csaf/vex/2024/msrc_cve-2024-56565.json",
"version": "1"
},
"nvd": "{\"cve\":{\"id\":\"CVE-2024-56565\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2024-12-27T15:15:15.400\",\"lastModified\":\"2026-06-17T08:12:25.610\",\"vulnStatus\":\"Analyzed\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nf2fs: fix to drop all discards after creating snapshot on lvm device\\n\\nPiergiorgio reported a bug in bugzilla as below:\\n\\n------------[ cut here ]------------\\nWARNING: CPU: 2 PID: 969 at fs/f2fs/segment.c:1330\\nRIP: 0010:__submit_discard_cmd+0x27d/0x400 [f2fs]\\nCall Trace:\\n __issue_discard_cmd+0x1ca/0x350 [f2fs]\\n issue_discard_thread+0x191/0x480 [f2fs]\\n kthread+0xcf/0x100\\n ret_from_fork+0x31/0x50\\n ret_from_fork_asm+0x1a/0x30\\n\\nw/ below testcase, it can reproduce this bug quickly:\\n- pvcreate /dev/vdb\\n- vgcreate myvg1 /dev/vdb\\n- lvcreate -L 1024m -n mylv1 myvg1\\n- mount /dev/myvg1/mylv1 /mnt/f2fs\\n- dd if=/dev/zero of=/mnt/f2fs/file bs=1M count=20\\n- sync\\n- rm /mnt/f2fs/file\\n- sync\\n- lvcreate -L 1024m -s -n mylv1-snapshot /dev/myvg1/mylv1\\n- umount /mnt/f2fs\\n\\nThe root cause is: it will update discard_max_bytes of mounted lvm\\ndevice to zero after creating snapshot on this lvm device, then,\\n__submit_discard_cmd() will pass parameter @nr_sects w/ zero value\\nto __blkdev_issue_discard(), it returns a NULL bio pointer, result\\nin panic.\\n\\nThis patch changes as below for fixing:\\n1. Let\u0027s drop all remained discards in f2fs_unfreeze() if snapshot\\nof lvm device is created.\\n2. Checking discard_max_bytes before submitting discard during\\n__submit_discard_cmd().\"},{\"lang\":\"es\",\"value\":\"En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: f2fs: correcci\u00f3n para descartar todos los descartes despu\u00e9s de crear una instant\u00e1nea en el dispositivo lvm Piergiorgio inform\u00f3 un error en bugzilla como se muestra a continuaci\u00f3n: ------------[ cortar aqu\u00ed ]------------ ADVERTENCIA: CPU: 2 PID: 969 en fs/f2fs/segment.c:1330 RIP: 0010:__submit_discard_cmd+0x27d/0x400 [f2fs] Seguimiento de llamadas: __issue_discard_cmd+0x1ca/0x350 [f2fs] issue_discard_thread+0x191/0x480 [f2fs] kthread+0xcf/0x100 ret_from_fork+0x31/0x50 ret_from_fork_asm+0x1a/0x30 con el siguiente caso de prueba, puede reproducir este error r\u00e1pidamente: - pvcreate /dev/vdb - vgcreate myvg1 /dev/vdb - lvcreate -L 1024m -n mylv1 myvg1 - mount /dev/myvg1/mylv1 /mnt/f2fs - dd if=/dev/zero of=/mnt/f2fs/file bs=1M count=20 - sync - rm /mnt/f2fs/file - sync - lvcreate -L 1024m -s -n mylv1-snapshot /dev/myvg1/mylv1 - umount /mnt/f2fs La causa ra\u00edz es: actualizar\u00e1 discard_max_bytes del dispositivo lvm montado a cero despu\u00e9s de crear una instant\u00e1nea en este dispositivo lvm, luego, __submit_discard_cmd() pasar\u00e1 el par\u00e1metro @nr_sects con valor cero a __blkdev_issue_discard(), devuelve un puntero bio NULL, resultado En p\u00e1nico. Este parche cambia lo siguiente para solucionar: 1. Descartamos todos los descartes restantes en f2fs_unfreeze() si se crea una instant\u00e1nea del dispositivo lvm. 2. Comprobamos discard_max_bytes antes de enviar el descarte durante __submit_discard_cmd().\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"fs/f2fs/segment.c\",\"fs/f2fs/super.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"35ec7d5748849762008e8ae9f8ad2766229d5794\",\"lessThan\":\"ed24ab98242f8d22b66fbe0452c97751b5ea4e22\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"35ec7d5748849762008e8ae9f8ad2766229d5794\",\"lessThan\":\"15136c3861a3341db261ebdbb6ae4ae1765635e2\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"35ec7d5748849762008e8ae9f8ad2766229d5794\",\"lessThan\":\"bc8aeb04fd80cb8cfae3058445c84410fd0beb5e\",\"versionType\":\"git\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"fs/f2fs/segment.c\",\"fs/f2fs/super.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"4.19\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"4.19\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.6.66\",\"lessThanOrEqual\":\"6.6.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.12.4\",\"lessThanOrEqual\":\"6.12.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.13\",\"lessThanOrEqual\":\"*\",\"versionType\":\"original_commit_for_fix\",\"status\":\"unaffected\"}]}]}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H\",\"baseScore\":5.5,\"baseSeverity\":\"MEDIUM\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"NONE\",\"integrityImpact\":\"NONE\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.8,\"impactScore\":3.6}]},\"weaknesses\":[{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"description\":[{\"lang\":\"en\",\"value\":\"NVD-CWE-noinfo\"}]}],\"configurations\":[{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"4.19\",\"versionEndExcluding\":\"6.6.66\",\"matchCriteriaId\":\"11F0A5BB-68E6-4E86-921A-80BA2447967F\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.7\",\"versionEndExcluding\":\"6.12.4\",\"matchCriteriaId\":\"04756810-D093-4B43-B1D9-CF5035968061\"}]}]}],\"references\":[{\"url\":\"https://git.kernel.org/stable/c/15136c3861a3341db261ebdbb6ae4ae1765635e2\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/bc8aeb04fd80cb8cfae3058445c84410fd0beb5e\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/ed24ab98242f8d22b66fbe0452c97751b5ea4e22\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]}]}}",
"redhat_vex": {
"aggregate_severity": "None",
"current_release_date": "2025-11-25T08:45:19+00:00",
"cve": "CVE-2024-56565",
"id": "CVE-2024-56565",
"initial_release_date": "2024-12-27T00:00:00+00:00",
"product_status:known_not_affected": "198",
"source": "Red Hat CSAF VEX",
"status": "final",
"title": "kernel: f2fs: fix to drop all discards after creating snapshot on lvm device",
"url": "https://security.access.redhat.com/data/csaf/v2/vex/2024/cve-2024-56565.json",
"version": "3"
}
}
}
Loading…
Loading…
Experimental. This forecast is provided for visualization only and may change without notice. Do not use it for operational decisions.
Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
Loading…
The MITRE ATT&CK techniques below are AI-generated suggestions, inferred from the description of the
vulnerability by the CIRCL/vulnerability-attack-technique-classification-roberta-base
model, served locally by ML-Gateway.
They have not been verified by an analyst and are provided for guidance only.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
Loading…
Loading…