Medium · published January 11, 2025
In the Linux kernel, the following vulnerability has been resolved:
bcache: revert replacing IS_ERR_OR_NULL with IS_ERR again
Commit 028ddcac477b ("bcache: Remove unnecessary NULL point check in
node allocations") leads a NULL pointer deference in cache_set_flush().
1721 if (!IS_ERR_OR_NULL(c->root))
1722 list_add(&c->root->list, &c->btree_cache);
>From the above code in cache_set_flush(), if previous registration code
fails before allocating c->root, it is possible c->root is NULL as what
it is initialized. __bch_btree_node_alloc() never returns NULL but
c->root is possible to be NULL at above line 1721.
This patch replaces IS_ERR() by IS_ERR_OR_NULL() to fix this.
| Product | Versions | Fixed in |
|---|---|---|
| linux/linux_kernel | ≥ 4.19.291, < 4.20 | 4.20 |
| linux/linux_kernel | ≥ 5.4.251, < 5.4.287 | 5.4.287 |
| linux/linux_kernel | ≥ 5.10.188, < 5.10.231 | 5.10.231 |
| linux/linux_kernel | ≥ 5.15.121, < 5.15.174 | 5.15.174 |
| linux/linux_kernel | ≥ 6.1.39, < 6.1.120 | 6.1.120 |
| linux/linux_kernel | ≥ 6.4.4, < 6.6.66 | 6.6.66 |
| linux/linux_kernel | ≥ 6.7, < 6.12.5 | 6.12.5 |
| linux/linux_kernel | all versions | — |