Cloudanix VulnDB

CVE-2025-38042

Medium · 5.5

CVSS

5.5

EPSS

0.2%

Published

Jun 18, 2025

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

A driver bug on certain Texas Instruments chips could produce kernel warnings when network settings are changed and the driver is later removed.

Exploitation
Local Privilege
Attacker needs
Local User
Complexity
Theoretical
Impact
Other
Component
OS kernel
Class
Other
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

Incorrect FDQ clearing logic in k3_udma_glue_reset_rx_chn caused descriptor pool size mismatches on platforms with per-flow FDQs when unloading the ti_am65_cpsw_nuss driver after rx queue reconfiguration.

Why it matters to the business

Kernel warnings and potential instability when unloading network drivers on affected Texas Instruments platforms after routine ethtool or interface changes; low urgency given absence from KEV and modest EPSS increase over 30 days.

How an attack unfolds

Local user configures multiple RX flows via ethtool, brings interfaces up/down, then unloads the cpsw driver module to trigger the mismatched descriptor pool warning and associated cleanup failure.

How to fix it

Update the Linux kernel to a revision containing commit d0dd9d133ef8fdc894e0be9aa27dc49ef5f813cb; rebuild and reboot with the corrected k3-udma-glue driver that infers single_fdq internally.

How to confirm the fix worked

Confirm kernel version contains the referenced commit; attempt the ethtool + module unload sequence and verify absence of the k3_cppi_desc_pool_destroy size mismatch warning.

Typical attack path

  1. Obtain local shell on affected AM62/AM65 platform
  2. Run ethtool -L to set multiple RX queues
  3. Toggle interface state with ip link
  4. Unload ti_am65_cpsw_nuss module to trigger pool size mismatch warning

How to detect it

Search kernel logs for the exact warning string k3_knav_desc_pool size .* != avail; correlate with modprobe removal of ti_am65_cpsw_nuss and preceding ethtool -L commands.

  • k3_knav_desc_pool size .* != avail
  • WARNING: CPU:.*k3_cppi_desc_pool_destroy
  • am65_cpsw_nuss_free_rx_chns

What your security team should do

  • Prioritize kernel update on all TI K3-based devices running the cpsw driver
  • Monitor EPSS trend (currently rising) and re-evaluate if exploitation maturity increases
  • Add the module-unload sequence to regression test suites for network drivers

The record

In the Linux kernel, the following vulnerability has been resolved: dmaengine: ti: k3-udma-glue: Drop skip_fdq argument from k3_udma_glue_reset_rx_chn The user of k3_udma_glue_reset_rx_chn() e.g. ti_am65_cpsw_nuss can run on multiple platforms having different DMA architectures. On some platforms there can be one FDQ for all flows in the RX channel while for others there is a separate FDQ for each flow in the RX channel. So far we have been relying on the skip_fdq argument of k3_udma_glue_reset_rx_chn(). Instead of relying on the user to provide this information, infer it based on DMA architecture during k3_udma_glue_request_rx_chn() and save it in an internal flag 'single_fdq'. Use that flag at k3_udma_glue_reset_rx_chn() to deicide if the FDQ needs to be cleared for every flow or just for flow 0. Fixes the below issue on ti_am65_cpsw_nuss driver on AM62-SK. > ip link set eth1 down > ip link set eth0 down > ethtool -L eth0 rx 8 > ip link set eth0 up > modprobe -r ti_am65_cpsw_nuss [ 103.045726] ------------[ cut here ]------------ [ 103.050505] k3_knav_desc_pool size 512000 != avail 64000 [ 103.050703] WARNING: CPU: 1 PID: 450 at drivers/net/ethernet/ti/k3-cppi-desc-pool.c:33 k3_cppi_desc_pool_destroy+0xa0/0xa8 [k3_cppi_desc_pool] [ 103.068810] Modules linked in: ti_am65_cpsw_nuss(-) k3_cppi_desc_pool snd_soc_hdmi_codec crct10dif_ce snd_soc_simple_card snd_soc_simple_card_utils display_connector rtc_ti_k3 k3_j72xx_bandgap tidss drm_client_lib snd_soc_davinci_mcas p drm_dma_helper tps6598x phylink snd_soc_ti_udma rti_wdt drm_display_helper snd_soc_tlv320aic3x_i2c typec at24 phy_gmii_sel snd_soc_ti_edma snd_soc_tlv320aic3x sii902x snd_soc_ti_sdma sa2ul omap_mailbox drm_kms_helper authenc cfg80211 r fkill fuse drm drm_panel_orientation_quirks backlight ip_tables x_tables ipv6 [last unloaded: k3_cppi_desc_pool] [ 103.119950] CPU: 1 UID: 0 PID: 450 Comm: modprobe Not tainted 6.13.0-rc7-00001-g9c5e3435fa66 #1011 [ 103.119968] Hardware name: Texas Instruments AM625 SK (DT) [ 103.119974] pstate: 80000005 (Nzcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--) [ 103.119983] pc : k3_cppi_desc_pool_destroy+0xa0/0xa8 [k3_cppi_desc_pool] [ 103.148007] lr : k3_cppi_desc_pool_destroy+0xa0/0xa8 [k3_cppi_desc_pool] [ 103.154709] sp : ffff8000826ebbc0 [ 103.158015] x29: ffff8000826ebbc0 x28: ffff0000090b6300 x27: 0000000000000000 [ 103.165145] x26: 0000000000000000 x25: 0000000000000000 x24: ffff0000019df6b0 [ 103.172271] x23: ffff0000019df6b8 x22: ffff0000019df410 x21: ffff8000826ebc88 [ 103.179397] x20: 000000000007d000 x19: ffff00000a3b3000 x18: 0000000000000000 [ 103.186522] x17: 0000000000000000 x16: 0000000000000000 x15: 000001e8c35e1cde [ 103.193647] x14: 0000000000000396 x13: 000000000000035c x12: 0000000000000000 [ 103.200772] x11: 000000000000003a x10: 00000000000009c0 x9 : ffff8000826eba20 [ 103.207897] x8 : ffff0000090b6d20 x7 : ffff00007728c180 x6 : ffff00007728c100 [ 103.215022] x5 : 0000000000000001 x4 : ffff000000508a50 x3 : ffff7ffff6146000 [ 103.222147] x2 : 0000000000000000 x1 : e300b4173ee6b200 x0 : 0000000000000000 [ 103.229274] Call trace: [ 103.231714] k3_cppi_desc_pool_destroy+0xa0/0xa8 [k3_cppi_desc_pool] (P) [ 103.238408] am65_cpsw_nuss_free_rx_chns+0x28/0x4c [ti_am65_cpsw_nuss] [ 103.244942] devm_action_release+0x14/0x20 [ 103.249040] release_nodes+0x3c/0x68 [ 103.252610] devres_release_all+0x8c/0xdc [ 103.256614] device_unbind_cleanup+0x18/0x60 [ 103.260876] device_release_driver_internal+0xf8/0x178 [ 103.266004] driver_detach+0x50/0x9c [ 103.269571] bus_remove_driver+0x6c/0xbc [ 103.273485] driver_unregister+0x30/0x60 [ 103.277401] platform_driver_unregister+0x14/0x20 [ 103.282096] am65_cpsw_nuss_driver_exit+0x18/0xff4 [ti_am65_cpsw_nuss] [ 103.288620] __arm64_sys_delete_module+0x17c/0x25c [ 103.293404] invoke_syscall+0x44/0x100 [ 103.297149] el0_svc_common.constprop.0+0xc0/0xe0 [ 103.301845] do_el0_svc+0x1c/0x28 [ 103.305155] el0_svc+0x28/0x98 ---truncated---

Affected packages

Ecosystem Package Introduced Fixed
Chainguard hyperv-daemons-6.12 0 6.12.57-r2
Chainguard linux-aws-6.12-boot-installed 0 6.12.57-r2
Chainguard linux-aws-6.12-fips-boot-installed 0 6.12.57-r2
Chainguard linux-aws-6.12-headers 0 6.12.57-r2
Chainguard linux-aws-6.12-modules 0 6.12.57-r2
Chainguard linux-azure-6.12-boot-installed 0 6.12.57-r2
Chainguard linux-azure-6.12-fips-boot-installed 0 6.12.57-r2
Chainguard linux-azure-6.12-headers 0 6.12.57-r2
Chainguard linux-azure-6.12-modules 0 6.12.57-r2
Chainguard linux-gcp-6.12-boot-installed 0 6.12.58-r0
Chainguard linux-gcp-6.12-fips-boot-installed 0 6.12.57-r2
Chainguard linux-gcp-6.12-headers 0 6.12.57-r2
Chainguard linux-gcp-6.12-modules 0 6.12.57-r2
Chainguard linux-qemu-6.12-boot-installed 0 6.12.63-r0
Chainguard linux-qemu-6.12-fips-boot-installed 0 6.12.63-r0
Chainguard linux-qemu-6.12-headers 0 6.12.63-r0
Chainguard linux-qemu-6.12-modules 0 6.12.63-r0
Chainguard linux-vmware-6.12-boot-installed 0 6.12.63-r0
Chainguard linux-vmware-6.12-fips-boot-installed 0 6.12.63-r0
Chainguard linux-vmware-6.12-headers 0 6.12.63-r0
Chainguard linux-vmware-6.12-modules 0 6.12.63-r0
Debian:11 linux 0 No fix
Debian:12 linux 0 No fix
Debian:13 linux 0 No fix
Debian:14 linux 0 6.16.3-1
Linux Kernel 5.6.0 6.14.9

Related vulnerabilities