CVE-2022-49167

In the Linux kernel, the following vulnerability has been resolved: btrfs: do not double complete bio on errors during compressed reads I hit some weird panics while fixing up the error handling from btrfs_lookup_bio_sums(). Turns out the compression path will complete the bio we use if we set up any of the compression bios and then return an error, and then btrfs_submit_data_bio() will also call bio_endio() on the bio. Fix this by making btrfs_submit_compressed_read() responsible for calling bio_endio() on the bio if there are any errors. Currently it was only doing it if we created the compression bios, otherwise it was depending on btrfs_submit_data_bio() to do the right thing. This creates the above problem, so fix up btrfs_submit_compressed_read() to always call bio_endio() in case of an error, and then simply return from btrfs_submit_data_bio() if we had to call btrfs_submit_compressed_read().
Configurations

Configuration 1 (hide)

OR cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*

History

21 Oct 2025, 17:13

Type Values Removed Values Added
First Time Linux
Linux linux Kernel
Summary
  • (es) En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: btrfs: no completar dos veces la biografía en caso de errores durante lecturas comprimidas Me encontré con algunos pánicos extraños mientras arreglaba la gestión de errores de btrfs_lookup_bio_sums(). Resulta que la ruta de compresión completará la biografía que usamos si configuramos alguna de las biografías de compresión y luego devolvemos un error, y luego btrfs_submit_data_bio() también llamará a bio_endio() en la biografía. Arregle esto haciendo que btrfs_submit_compressed_read() sea responsable de llamar a bio_endio() en la biografía si hay algún error. Actualmente solo lo hacía si creábamos la biografía de compresión, de lo contrario dependía de btrfs_submit_data_bio() para hacer lo correcto. Esto crea el problema mencionado anteriormente, así que corrija btrfs_submit_compressed_read() para que siempre llame a bio_endio() en caso de error, y luego simplemente regrese de btrfs_submit_data_bio() si tuviéramos que llamar a btrfs_submit_compressed_read().
References () https://git.kernel.org/stable/c/4a4ceb2b990771c374d85d496a1a45255dde48e3 - () https://git.kernel.org/stable/c/4a4ceb2b990771c374d85d496a1a45255dde48e3 - Patch
References () https://git.kernel.org/stable/c/987b5df1d10355d377315a26e7fb6c72ded83c9f - () https://git.kernel.org/stable/c/987b5df1d10355d377315a26e7fb6c72ded83c9f - Patch
References () https://git.kernel.org/stable/c/f9f15de85d74e7eef021af059ca53a15f041cdd8 - () https://git.kernel.org/stable/c/f9f15de85d74e7eef021af059ca53a15f041cdd8 - Patch
CVSS v2 : unknown
v3 : unknown
v2 : unknown
v3 : 5.5
CWE NVD-CWE-noinfo
CPE cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*

26 Feb 2025, 07:00

Type Values Removed Values Added
New CVE

Information

Published : 2025-02-26 07:00

Updated : 2025-10-21 17:13


NVD link : CVE-2022-49167

Mitre link : CVE-2022-49167

CVE.ORG link : CVE-2022-49167


JSON object : View

Products Affected

linux

  • linux_kernel