squashfs: Add dictionary size range check to prevent shift-out-of-bounds
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 5.10.271, 5.15.222, 6.1.189, 6.6.158, 6.12.112, and 2 more
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
In the Linux kernel, the following vulnerability has been resolved: squashfs: Add dictionary size range check to prevent shift-out-of-bounds When an abnormal SquashFS image (COMP_OPTS flag is 1 but dictionary size is 0) is mounted, and performs shift operations using dictionarysize, the shift exponent is -1, causing a shift-out-of-bounds. Detail as below: squashfs_comp_opts(msblk, buffer, length) squashfs_xz_comp_opts() if (comp_opts) n = ffs(opts->dict_size) - 1;<----opts->dict_size=0, n=-1 if (opts->dict_size != (1 << n) && opts->dict_size != (1 << n) + (1 << (n + 1))) <----shift-out-of-bounds Fix it by adding a dictionary size range check before the shift operation.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From ff750311d30acc9564ef577050794953eee59f01 · fixed in b02948a23455f8190a53887b2d2c13ae1d360cea; From ff750311d30acc9564ef577050794953eee59f01 · fixed in 9d9c5c218ea356a1d88765214ad2919605280ab1; From ff750311d30acc9564ef577050794953eee59f01 · fixed in 7a1c293e7aa17f1afaee0684e0e931fe23a5a6b1; From ff750311d30acc9564ef577050794953eee59f01 · fixed in c68e0068a236f9a7dfc19720bdf11e5d80a85089; From ff750311d30acc9564ef577050794953eee59f01 · fixed in 88c673a0bd233df44ca0020da82f4fd3876de27a; From ff750311d30acc9564ef577050794953eee59f01 · fixed in 0cb85377daaefb4ce5ce72975f2deb27ee0e0cad; From ff750311d30acc9564ef577050794953eee59f01 · fixed in e1ca4e3a380ef3e8f46ce006f1146392e3f32c98; From ff750311d30acc9564ef577050794953eee59f01 · fixed in 1f7745fb3580152ca902ef181b605f33cabfb1d0
- Linux Linux
2.6.39
- KernelLinux
From 2.6.39 · fixed in 5.10.271; From 5.11.0 · fixed in 5.15.222; From 5.16.0 · fixed in 6.1.189; From 6.2.0 · fixed in 6.6.158; From 6.7.0 · fixed in 6.12.112; From 6.13.0 · fixed in 6.18.55; From 6.19.0 · fixed in 7.2.9
References 8
git.kernel.org
- stable/c/b02948a23455f8190a53887b2d2c13ae1d360cea
- stable/c/9d9c5c218ea356a1d88765214ad2919605280ab1
- stable/c/7a1c293e7aa17f1afaee0684e0e931fe23a5a6b1
- stable/c/c68e0068a236f9a7dfc19720bdf11e5d80a85089
- stable/c/88c673a0bd233df44ca0020da82f4fd3876de27a
- stable/c/0cb85377daaefb4ce5ce72975f2deb27ee0e0cad
- stable/c/e1ca4e3a380ef3e8f46ce006f1146392e3f32c98
- stable/c/1f7745fb3580152ca902ef181b605f33cabfb1d0