In the Linux kernel, the following vulnerability has been resolved:
erofs: fix use-after-free on sbi->syncdecompress
zerofsdecompresskickoff() can race with filesystem unmount, causing a use-after-free on sbi->syncdecompress.
When I/O completes, zerofsendio() calls zerofsdecompresskickoff() to queue zerofsdecompressqueuework() asynchronously. Then, after all folios are unlocked, unmount workflow can proceed and sbi will be freed before accessing to sbi->syncdecompress.
Thread (unmount) I/O completion kworker queuework zerofsdecompressqueuework (all folios are unlocked) cleanupmnt .. erofskillsb erofssbfree kfree(sbi) access sbi->syncdecompress // UAF!!
erofs: add GFPNOIO in the bio completion if needed
erofs: fix unsigned underflow in zerofslz4handleoverlap()
In the Linux kernel, the following vulnerability has been resolved:
erofs: fix incorrect early exits in volume label handling
Crafted EROFS images containing valid volume labels can trigger incorrect early returns, leading to folio reference leaks.
However, this does not cause system crashes or other severe issues.
In the Linux kernel, the following vulnerability has been resolved:
erofs: unify lcn as u64 for 32-bit platforms
As sashiko reported [1], lcn was typed as unsigned long (or unsigned int sometimes), which is only 32 bits wide on 32-bit platforms, which causes (lcn << lclusterbits) to be truncated at 4 GiB.
In order to consolidate the logic, just use u64 consistently around the codebase.
[1] https://sashiko.dev/r/20260420034612.1899973-1-hsiangkao%40linux.alibaba.com