KernelScan.io

HIGH Introduced in 4.9

greybus Topology OOB

CVE-2026-93280

CVSS 8.8 / 10.0 NVD

CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

KernelScan AI6.1MEDIUM

01

In the Linux kernel, the following vulnerability has been resolved: greybus: audio: bound the topology section sizes against the fetched size gb_audio_gb_get_topology() fetches a topology blob of a module-supplied size, and gbaudio_tplg_parse_data() then walks it by adding the module-supplied size_dais, size_controls and size_widgets fields to form the control, widget and route section offsets. Those le32 sizes are never checked against the fetched blob, so a module reporting a small topology size but large section sizes makes the offsets point past the allocation, and parsing reads out of bounds. Reject a topology whose section sizes do not fit within the fetched size before it is parsed.

02

Engine v0.6.0

Risk summary

A malicious Greybus audio module can supply a topology blob with a small reported size but oversized section descriptors, causing the kernel parser to read beyond the allocated buffer. This can leak kernel memory or crash the kernel. The attack requires physical access to connect a malicious Greybus module to a device running the Greybus audio staging driver.

Affecteddrivers/staging/greybus/audio_gb.c (greybus audio)

Vulnerability analysis

When a Greybus audio module is connected, the kernel fetches a topology blob whose total size is reported by the module. The parser then walks this blob using separate section-size fields (for DAI, controls, widgets, and routes) that are also module-supplied, without verifying they fit within the fetched buffer. A malicious module can report a small topology size while claiming large section sizes, so the computed offsets point past the allocation and the kernel reads out of bounds. The fix adds a validation step that rejects any topology whose combined section sizes exceed the fetched blob size before parsing begins. The attack requires physical access to plug in a malicious Greybus audio module; no Linux user privileges are needed, but the Greybus staging driver and audio support must be enabled.

03

BranchIntroducedFixed inPatch commit
5.104.95.10.270ba86de9f7b0d
5.154.95.15.221dd5593aee0a0
6.14.96.1.1886f764363b317
6.124.96.12.110d0f6eaba6070
6.184.96.18.52c9191f2e2f35
6.64.96.6.15752daf9de692e
7.24.97.2.6cfcc5a41a966
mainline4.97.333d8c7b794d2
cip/5.104.95.10.271-cip78ba86de9f7b0d
cip/6.14.96.1.189-cip616f764363b317
cip/6.1-rt4.96.1.189-cip61-rt326f764363b317
cip/6.124.96.12.111-cip32d0f6eaba6070

04

State of the newest release of each Civil Infrastructure Platform SLTS tree, from CIP's own fix records.

CIP treeState
cip/6.12Fixed in 6.12.111-cip32
cip/6.1Fixed in 6.1.189-cip61
cip/6.1-rtFixed in 6.1.189-cip61-rt32
cip/5.10Fixed in 5.10.271-cip78
cip/5.10-rtAffected — no CIP fix yet (latest 5.10.268-cip77-rt34)
cip/4.19Affected — no CIP fix yet (latest 4.19.325-cip136)
cip/4.19-rtAffected — no CIP fix yet (latest 4.19.325-cip136-rt50)