Description (CNA)
In the Linux kernel, the following vulnerability has been resolved: btrfs: fix double free in create_space_info() error path When kobject_init_and_add() fails, the call chain is: create_space_info() -> btrfs_sysfs_add_space_info_type() -> kobject_init_and_add() -> failure -> kobject_put(&space_info->kobj) -> space_info_release() -> kfree(space_info) Then control returns to create_space_info(): btrfs_sysfs_add_space_info_type() returns error -> goto out_free -> kfree(space_info) This causes a double free. Keep the direct kfree(space_info) for the earlier failure path, but after btrfs_sysfs_add_space_info_type() has called kobject_put(), let the kobject release callback handle the cleanup.
Affected (CNA)
| Vendor / product | Versions |
|---|---|
| Linux / Linux | affected 20e8f2de3688082eeafeb93c8900485b7542457e before ae6d6e31ceb72b7697c28a528e4923c08e3c2ef5; affected 58208907c4044a764dbd8896026283905da6d9be before c2670ec4aa49ca226bce9776601e0da37502be07; affected bb4fa4c0b54aae25e55faeda7f78d0c11b8cd618 before f414b3abbba59ef379a2b3c31f2bdd9358ed5e53; affected 6cb008f1bb23e023dfe615cca5df14570dfc8da5 before 9a060970fd7b5e1c561e4ce73cb9949e4269a738; affected a11224a016d6d1d46a4d9b6573244448a80d4d7f before dd6ade0fdd59218d71a981ae7c937a304e49209c; affected a11224a016d6d1d46a4d9b6573244448a80d4d7f before 3f487be81292702a59ea9dbc4088b3360a50e837; affected 6.1.162 before 6.1.175; affected 6.6.122 before 6.6.140; affected 6.12.67 before 6.12.88; affected 6.18.7 before 6.18.30 |
| Linux / Linux | affected 6.19; unaffected 0 before 6.19; unaffected 6.1.175 through 6.1.*; unaffected 6.6.140 through 6.6.*; unaffected 6.12.88 through 6.12.*; unaffected 6.18.30 through 6.18.*; unaffected 7.0.7 through 7.0.*; unaffected 7.1 through * |
CWE
No CWE identifiers supplied.
References
- https://git.kernel.org/stable/c/ae6d6e31ceb72b7697c28a528e4923c08e3c2ef5
- https://git.kernel.org/stable/c/c2670ec4aa49ca226bce9776601e0da37502be07
- https://git.kernel.org/stable/c/f414b3abbba59ef379a2b3c31f2bdd9358ed5e53
- https://git.kernel.org/stable/c/9a060970fd7b5e1c561e4ce73cb9949e4269a738
- https://git.kernel.org/stable/c/dd6ade0fdd59218d71a981ae7c937a304e49209c
- https://git.kernel.org/stable/c/3f487be81292702a59ea9dbc4088b3360a50e837