greybus: audio: bound the topology section sizes against the fetched size
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 5.10.270, 5.15.221, 6.1.188, 6.6.157, 6.12.110, and 2 more
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
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.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 184992e305f1de3a3d5fa446da3a2bc76be7c54a · fixed in ba86de9f7b0d7903d2df5ea2373e34d8ca3fc43e; From 184992e305f1de3a3d5fa446da3a2bc76be7c54a · fixed in dd5593aee0a0fb353e1164aff7b65e563fe1f232; From 184992e305f1de3a3d5fa446da3a2bc76be7c54a · fixed in 6f764363b3173d805be11e59a8f23ecee2d420d5; From 184992e305f1de3a3d5fa446da3a2bc76be7c54a · fixed in 52daf9de692ebac813d110eb1e677dc0e1f4a5ab; From 184992e305f1de3a3d5fa446da3a2bc76be7c54a · fixed in d0f6eaba60705bacd9bb4ce48eab50ef3f546777; From 184992e305f1de3a3d5fa446da3a2bc76be7c54a · fixed in c9191f2e2f35f1209eb2dc24b31129dd47b48c16; From 184992e305f1de3a3d5fa446da3a2bc76be7c54a · fixed in cfcc5a41a9664eb68023aae4cd0d485b256bd7c7; From 184992e305f1de3a3d5fa446da3a2bc76be7c54a · fixed in 33d8c7b794d2a30637c9d3fcb478f1d3222bef1e
- Linux Linux
4.9
- KernelLinux
From 4.9.0 · fixed in 5.10.270; From 5.11.0 · fixed in 5.15.221; From 5.16.0 · fixed in 6.1.188; From 6.2.0 · fixed in 6.6.157; From 6.7.0 · fixed in 6.12.110; From 6.13.0 · fixed in 6.18.52; From 6.19.0 · fixed in 7.2.6
References 8
git.kernel.org
- stable/c/ba86de9f7b0d7903d2df5ea2373e34d8ca3fc43e
- stable/c/dd5593aee0a0fb353e1164aff7b65e563fe1f232
- stable/c/6f764363b3173d805be11e59a8f23ecee2d420d5
- stable/c/52daf9de692ebac813d110eb1e677dc0e1f4a5ab
- stable/c/d0f6eaba60705bacd9bb4ce48eab50ef3f546777
- stable/c/c9191f2e2f35f1209eb2dc24b31129dd47b48c16
- stable/c/cfcc5a41a9664eb68023aae4cd0d485b256bd7c7
- stable/c/33d8c7b794d2a30637c9d3fcb478f1d3222bef1e