🛡️ CVE-2025-38263 — debian-linux

🟡 CVSS 5.5 — Medium ✅ No Known Exploit CWE-476 NVD
5.5
CVSS Score
0 Low4 Medium7 High9 Critical10

Description

bcache: fix NULL pointer in cache_set_flush()

In the Linux kernel, the following vulnerability has been resolved:

bcache: fix NULL pointer in cache_set_flush()

1. LINE#1794 - LINE#1887 is some codes about function of

bch_cache_set_alloc().

2. LINE#2078 - LINE#2142 is some codes about function of

register_cache_set().

3. register_cache_set() will call bch_cache_set_alloc() in LINE#2098.

1794 struct cache_set *bch_cache_set_alloc(struct cache_sb *sb)

1795 {

...

1860 if (!(c->devices = kcalloc(c->nr_uuids, sizeof(void *), GFP_KERNEL)) ||

1861 mempool_init_slab_pool(&c->search, 32, bch_search_cache) ||

1862 mempool_init_kmalloc_pool(&c->bio_meta, 2,

1863 sizeof(struct bbio) + sizeof(struct bio_vec) *

1864 bucket_pages(c)) ||

1865 mempool_init_kmalloc_pool(&c->fill_iter, 1, iter_size) ||

1866 bioset_init(&c->bio_split, 4, offsetof(struct bbio, bio),

1867 BIOSET_NEED_BVECS|BIOSET_NEED_RESCUER) ||

1868 !(c->uuids = alloc_bucket_pages(GFP_KERNEL, c)) ||

1869 !(c->moving_gc_wq = alloc_workqueue("bcache_gc",

1870 WQ_MEM_RECLAIM, 0)) ||

1871 bch_journal_alloc(c) ||

1872 bch_btree_cache_alloc(c) ||

1873 bch_open_buckets_alloc(c) ||

1874 bch_bset_sort_state_init(&c->sort, ilog2(c->btree_pages)))

1875 goto err;

^^^^^^^^

1876

...

1883 return c;

1884 err:

1885 bch_cache_set_unregister(c);

^^^^^^^^^^^^^^^^^^^^^^^^^^^

1886 return NULL;

1887 }

...

2078 static const char *register_cache_set(struct cache *ca)

2079 {

...

2098 c = bch_cache_set_alloc(&ca->sb);

2099 if (!c)

2100 return err;

^^^^^^^^^^

...

2128 ca->set = c;

2129 ca->set->cache[ca->sb.nr_this_dev] = ca;

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

...

2138 return NULL;

2139 err:

2140 bch_cache_set_unregister(c);

2141 return err;

2142 }

(1) If LINE#1860 - LINE#1874 is true, then do 'goto err'(LINE#1875) and

call bch_cache_set_unregister()(LINE#1885).

(2) As (1) return NULL(LINE#1886), LINE#2098 - LINE#2100 would return.

(3) As (2) has returned, LINE#2128 - LINE#2129 would do *not* give the

value to c->cache[], it means that c->cache[] is NULL.

LINE#1624 - LINE#1665 is some codes about function of cache_set_flush().

As (1), in LINE#1885 call

bch_cache_set_unregister()

---> bch_cache_set_stop()

---> closure_queue()

-.-> cache_set_flush() (as below LINE#1624)

1624 static void cache_set_flush(struct closure *cl)

1625 {

...

1654 for_each_cache(ca, c, i)

1655 if (ca->alloc_thread)

^^

1656 kthread_stop(ca->alloc_thread);

...

1665 }

(4) In LINE#1655 ca is NULL(see (3)) in cache_set_flush() then the

kernel crash occurred as below:

[ 846.712887] bcache: register_cache() error drbd6: cannot allocate memory

[ 846.713242] bcache: register_bcache() error : failed to register device

[ 846.713336] bcache: cache_set_free() Cache set 2f84bdc1-498a-4f2f-98a7-01946bf54287 unregistered

[ 846.713768] BUG: unable to handle kernel NULL pointer dereference at 00000000000009f8

[ 846.714790] PGD 0 P4D 0

[ 846.715129] Oops: 0000 [#1] SMP PTI

[ 846.715472] CPU: 19 PID: 5057 Comm: kworker/19:16 Kdump: loaded Tainted: G OE --------- - - 4.18.0-147.5.1.el8_1.5es.3.x86_64 #1

[ 846.716082] Hardware name: ESPAN GI-25212/X11DPL-i, BIOS 2.1 06/15/2018

[ 846.716451] Workqueue: events cache_set_flush [bcache]

[ 846.716808] RIP: 0010:cache_set_flush+0xc9/0x1b0 [bcache]

[ 846.717155] Code: 00 4c 89 a5 b0 03 00 00 48 8b 85 68 f6 ff ff a8 08 0f 84 88 00 00 00 31 db 66 83 bd 3c f7 ff ff 00 48 8b 85 48 ff ff ff 74 28 <48> 8b b8 f8 09 00 0

---truncated---

How this vulnerability can be exploited

This issue can be reached with local access to the system, attack complexity is low, an attacker needs low-level privileges on the target. No user interaction is required. The scope is unchanged, so the impact stays within the vulnerable component. Rated impact: confidentiality none, integrity none, availability high.

Weakness class

CVE-2025-38263 is classified as CWE-476: NULL Pointer Dereference. A pointer that can be null is used without a check, crashing the process.

Affected software

CVE-2025-38263 is recorded against 3 packages.

  • debian-linux
  • kernel (from 6.13.0 up to 6.15.5)
  • linux-kernel (from 6.13 up to 6.15.5)

Timeline and source

Published on 9 July 2025 and last revised on 17 June 2026. No public exploit is currently recorded for this entry. A vendor advisory or fix has been published. Record sourced from NVD.

References

git.kernel.org
git.kernel.org
git.kernel.org
git.kernel.org
git.kernel.org
git.kernel.org
git.kernel.org
lists.debian.org
lists.debian.org

CVE-2025-38263 on other distributions

Each distribution ships its own build and its own fixed version. Pick the one you run:

Details

Severity MEDIUM
CVSS Score 5.5
CVSS Vector CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
CWE CWE-476
Public Exploit ✅ No
Source NVD
Published 2025-07-09
Updated 2026-08-20
Modified 2026-06-17

Affected Packages

Software From version Fixed in
debian-linux
kernel 6.13.0 6.15.5
linux-kernel 6.13 6.15.5

Similar Threats

Vulnerability Monitoring

Track new vulnerabilities in debian-linux

CVE-2025-38263 is rated CVSS 5.5 Medium. BotEraser monitors your WordPress installation and notifies you when software you use appears in our vulnerability database.

Set Up Free Alerts →

No credit card required  ·  Results in minutes

ⓘ Data Notice: The information presented above has been compiled from publicly available internet sources. Boteraser aggregates this data solely for informational purposes and does not independently classify, evaluate, or endorse any findings about the vulnerabilities listed. The accuracy and completeness of this information is the sole responsibility of the original publishers. Boteraser and its operators accept no liability for any decisions made based on this data.

Browse related advisories

All advisoriesCVECVE 2025