In the Linux kernel, the following vulnerability has been resolved:
erofs: handle NONHEAD !delta[1] lclusters gracefully
syzbot reported a WARNING in iomapiterdone: iomapfiemap+0x73b/0x9b0 fs/iomap/fiemap.c:80 ioctlfiemap fs/ioctl.c:220 [inline]
Generally, NONHEAD lclusters won't have delta[1]==0, except for crafted images and filesystems created by pre-1.0 mkfs versions.
Previously, it would immediately bail out if delta[1]==0, which led to inadequate decompressed lengths (thus FIEMAP is impacted). Treat it as delta[1]=1 to work around these legacy mkfs versions.
lclusterbits > 14
is illegal for compact indexes, error out too.
[ { "signature_type": "Function", "id": "CVE-2024-53234-02bf311a", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@daaf68fef4b2ff97928227630021d37b27a96655", "signature_version": "v1", "target": { "function": "z_erofs_get_extent_decompressedlen", "file": "fs/erofs/zmap.c" }, "digest": { "function_hash": "127280703550129253872610272523434025583", "length": 1060.0 }, "deprecated": false }, { "signature_type": "Function", "id": "CVE-2024-53234-0de909ea", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@75a0a6dde803e7a3af700da8da9a361b49f69eba", "signature_version": "v1", "target": { "function": "z_erofs_get_extent_decompressedlen", "file": "fs/erofs/zmap.c" }, "digest": { "function_hash": "127280703550129253872610272523434025583", "length": 1060.0 }, "deprecated": false }, { "signature_type": "Line", "id": "CVE-2024-53234-1763bb24", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@0bc8061ffc733a0a246b8689b2d32a3e9204f43c", "signature_version": "v1", "target": { "file": "fs/erofs/zmap.c" }, "digest": { "threshold": 0.9, "line_hashes": [ "312859738119281828281846642439705777026", "93380941216921009183047869385150003578", "113725563917892664277085874873494899933", "325790110494056976234505903822041534800", "224572249586780695677681752697358353076", "17659419641071151174922199667119133189", "95396501913849408681956006595288083670", "212627021118267615388822596342932712793", "120239532212945813843319969993151179624", "7475514162582322386211331001710707520", "111798902722029789433968869165454608061", "99335869134488864029951991771525657460", "123073466896744231606940948793295667401", "297831560176828270668932371025242086905", "327908560125971343362659370685926909324", "325784103894140676915165227374845940856", "190217564810673620439957817578018287987", "154221978293422516076836749990985169013", "144067291494176148672532557874029509120", "153830162007413039314253314443053337565", "180917487981957818666072309318922720174", "67585435596211427803978557991623737645" ] }, "deprecated": false }, { "signature_type": "Line", "id": "CVE-2024-53234-264318aa", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@75a0a6dde803e7a3af700da8da9a361b49f69eba", "signature_version": "v1", "target": { "file": "fs/erofs/zmap.c" }, "digest": { "threshold": 0.9, "line_hashes": [ "312859738119281828281846642439705777026", "93380941216921009183047869385150003578", "113725563917892664277085874873494899933", "325790110494056976234505903822041534800", "224572249586780695677681752697358353076", "17659419641071151174922199667119133189", "95396501913849408681956006595288083670", "212627021118267615388822596342932712793", "120239532212945813843319969993151179624", "7475514162582322386211331001710707520", "111798902722029789433968869165454608061", "99335869134488864029951991771525657460", "123073466896744231606940948793295667401", "297831560176828270668932371025242086905", "327908560125971343362659370685926909324", "325784103894140676915165227374845940856", "190217564810673620439957817578018287987", "154221978293422516076836749990985169013", "144067291494176148672532557874029509120", "153830162007413039314253314443053337565", "180917487981957818666072309318922720174", "67585435596211427803978557991623737645" ] }, "deprecated": false }, { "signature_type": "Function", "id": "CVE-2024-53234-2c63487c", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@480c6c7b55aeacac800bc2a0d321ff53273045e5", "signature_version": "v1", "target": { "function": "z_erofs_get_extent_decompressedlen", "file": "fs/erofs/zmap.c" }, "digest": { "function_hash": "127280703550129253872610272523434025583", "length": 1060.0 }, "deprecated": false }, { "signature_type": "Function", "id": "CVE-2024-53234-339e86c7", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@0bc8061ffc733a0a246b8689b2d32a3e9204f43c", "signature_version": "v1", "target": { "function": "z_erofs_get_extent_decompressedlen", "file": "fs/erofs/zmap.c" }, "digest": { "function_hash": "127280703550129253872610272523434025583", "length": 1060.0 }, "deprecated": false }, { "signature_type": "Function", "id": "CVE-2024-53234-80691fc2", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@f466641debcbea8bdf78d1b63a6270aadf9301bf", "signature_version": "v1", "target": { "function": "z_erofs_get_extent_decompressedlen", "file": "fs/erofs/zmap.c" }, "digest": { "function_hash": "127280703550129253872610272523434025583", "length": 1060.0 }, "deprecated": false }, { "signature_type": "Function", "id": "CVE-2024-53234-862f8b63", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@75a0a6dde803e7a3af700da8da9a361b49f69eba", "signature_version": "v1", "target": { "function": "compacted_load_cluster_from_disk", "file": "fs/erofs/zmap.c" }, "digest": { "function_hash": "132176937893931930210180424636375067487", "length": 1095.0 }, "deprecated": false }, { "signature_type": "Line", "id": "CVE-2024-53234-86a0cdf9", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@480c6c7b55aeacac800bc2a0d321ff53273045e5", "signature_version": "v1", "target": { "file": "fs/erofs/zmap.c" }, "digest": { "threshold": 0.9, "line_hashes": [ "312859738119281828281846642439705777026", "93380941216921009183047869385150003578", "113725563917892664277085874873494899933", "325790110494056976234505903822041534800", "224572249586780695677681752697358353076", "17659419641071151174922199667119133189", "95396501913849408681956006595288083670", "212627021118267615388822596342932712793", "120239532212945813843319969993151179624", "7475514162582322386211331001710707520", "111798902722029789433968869165454608061", "99335869134488864029951991771525657460", "123073466896744231606940948793295667401", "297831560176828270668932371025242086905", "327908560125971343362659370685926909324", "325784103894140676915165227374845940856", "190217564810673620439957817578018287987", "154221978293422516076836749990985169013", "144067291494176148672532557874029509120", "153830162007413039314253314443053337565", "180917487981957818666072309318922720174", "67585435596211427803978557991623737645" ] }, "deprecated": false }, { "signature_type": "Line", "id": "CVE-2024-53234-90949100", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@f466641debcbea8bdf78d1b63a6270aadf9301bf", "signature_version": "v1", "target": { "file": "fs/erofs/zmap.c" }, "digest": { "threshold": 0.9, "line_hashes": [ "312859738119281828281846642439705777026", "93380941216921009183047869385150003578", "113725563917892664277085874873494899933", "325790110494056976234505903822041534800", "224572249586780695677681752697358353076", "17659419641071151174922199667119133189", "95396501913849408681956006595288083670", "212627021118267615388822596342932712793", "120239532212945813843319969993151179624", "7475514162582322386211331001710707520", "111798902722029789433968869165454608061", "99335869134488864029951991771525657460", "123073466896744231606940948793295667401", "297831560176828270668932371025242086905", "327908560125971343362659370685926909324", "325784103894140676915165227374845940856", "190217564810673620439957817578018287987", "154221978293422516076836749990985169013", "144067291494176148672532557874029509120", "153830162007413039314253314443053337565", "180917487981957818666072309318922720174", "67585435596211427803978557991623737645" ] }, "deprecated": false }, { "signature_type": "Line", "id": "CVE-2024-53234-9ca4c4f9", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@daaf68fef4b2ff97928227630021d37b27a96655", "signature_version": "v1", "target": { "file": "fs/erofs/zmap.c" }, "digest": { "threshold": 0.9, "line_hashes": [ "312859738119281828281846642439705777026", "93380941216921009183047869385150003578", "113725563917892664277085874873494899933", "325790110494056976234505903822041534800", "224572249586780695677681752697358353076", "17659419641071151174922199667119133189", "95396501913849408681956006595288083670", "212627021118267615388822596342932712793", "120239532212945813843319969993151179624", "7475514162582322386211331001710707520", "111798902722029789433968869165454608061", "99335869134488864029951991771525657460", "123073466896744231606940948793295667401", "297831560176828270668932371025242086905", "327908560125971343362659370685926909324", "325784103894140676915165227374845940856", "190217564810673620439957817578018287987", "154221978293422516076836749990985169013", "144067291494176148672532557874029509120", "153830162007413039314253314443053337565", "180917487981957818666072309318922720174", "67585435596211427803978557991623737645" ] }, "deprecated": false }, { "signature_type": "Function", "id": "CVE-2024-53234-9e001bb0", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@480c6c7b55aeacac800bc2a0d321ff53273045e5", "signature_version": "v1", "target": { "function": "z_erofs_load_compact_lcluster", "file": "fs/erofs/zmap.c" }, "digest": { "function_hash": "89296086559115856987110995973337511710", "length": 1059.0 }, "deprecated": false }, { "signature_type": "Function", "id": "CVE-2024-53234-da779fb5", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@daaf68fef4b2ff97928227630021d37b27a96655", "signature_version": "v1", "target": { "function": "z_erofs_load_compact_lcluster", "file": "fs/erofs/zmap.c" }, "digest": { "function_hash": "12555235564433580825757096145889681214", "length": 898.0 }, "deprecated": false }, { "signature_type": "Function", "id": "CVE-2024-53234-e8fc9722", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@0bc8061ffc733a0a246b8689b2d32a3e9204f43c", "signature_version": "v1", "target": { "function": "z_erofs_load_compact_lcluster", "file": "fs/erofs/zmap.c" }, "digest": { "function_hash": "12555235564433580825757096145889681214", "length": 898.0 }, "deprecated": false }, { "signature_type": "Function", "id": "CVE-2024-53234-ee1ccfdf", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@f466641debcbea8bdf78d1b63a6270aadf9301bf", "signature_version": "v1", "target": { "function": "z_erofs_load_compact_lcluster", "file": "fs/erofs/zmap.c" }, "digest": { "function_hash": "223995974453675273102430783281966188870", "length": 1088.0 }, "deprecated": false } ]