Skip to content

CVE-2026-99100 wifi: p54: validate firmware record lengths

CriticalCVSS 9.8 EPSS 0.17%
Published
Updated
Exploit status
No public exploit known

Description

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

wifi: p54: validate firmware record lengths

The p54 firmware parser accesses component ID and component version
records without checking that their lengths cover the fields being read.
A malformed record can therefore make the parser read past the record.

Validate the component ID and component version record lengths before
accessing their data. The descriptor record is also checked against the
shortest descriptor length found in the supported firmware images.

Reject descriptor values that underflow the RX offset or produce an empty
RX range before updating the driver state.

Affected products

ProductAffected versionsFixed in
Linux kernel >= eff1a59c48e3c6a006eb4fe5f2e405a996f2259d, < 87a9aba92485889d510052e474999a6ec00b888c 87a9aba92485889d510052e474999a6ec00b888c
Linux kernel >= eff1a59c48e3c6a006eb4fe5f2e405a996f2259d, < d5c28994b2c1440480fccd0b6c2ce72c23bb9fff d5c28994b2c1440480fccd0b6c2ce72c23bb9fff
Linux kernel >= eff1a59c48e3c6a006eb4fe5f2e405a996f2259d, < 9af312d3607c8f9b5166a19cbf40cee351cc3a1d 9af312d3607c8f9b5166a19cbf40cee351cc3a1d
Linux kernel >= eff1a59c48e3c6a006eb4fe5f2e405a996f2259d, < dda5245afc3470d70406764e3d9f5508e534920a dda5245afc3470d70406764e3d9f5508e534920a
Linux kernel >= eff1a59c48e3c6a006eb4fe5f2e405a996f2259d, < f4c6fcc2ad462ffd76d6e6f909bcd6ae0391f5b7 f4c6fcc2ad462ffd76d6e6f909bcd6ae0391f5b7
Linux kernel >= eff1a59c48e3c6a006eb4fe5f2e405a996f2259d, < f641066b0ddcd1b0cf007c0d04f9c966f6e888ae f641066b0ddcd1b0cf007c0d04f9c966f6e888ae
Linux kernel >= eff1a59c48e3c6a006eb4fe5f2e405a996f2259d, < 8c4f962f368d5e17481f3c2c5a43028953e137a5 8c4f962f368d5e17481f3c2c5a43028953e137a5
Linux kernel >= eff1a59c48e3c6a006eb4fe5f2e405a996f2259d, < db7b86bd97b380ece8fa39cfdd7502a9fd35e56f db7b86bd97b380ece8fa39cfdd7502a9fd35e56f
Linux kernel = 2.6.24 No fix listed
Linux kernel < 5.10.273 5.10.273
Linux kernel < 5.15.224 5.15.224
Linux kernel < 6.1.191 6.1.191
Linux kernel < 6.6.161 6.6.161
Linux kernel < 6.12.115 6.12.115
Linux kernel < 6.18.59 6.18.59
Linux kernel < 7.2.13 7.2.13
Linux kernel < 7.3 7.3
ubuntu/linux(Ubuntu:22.04) All versions No fix listed
ubuntu/linux-kvm(Ubuntu:22.04) All versions No fix listed
ubuntu/linux-raspi(Ubuntu:22.04) All versions No fix listed
ubuntu/linux(Ubuntu:24.04) All versions No fix listed
ubuntu/linux-raspi(Ubuntu:24.04) All versions No fix listed
ubuntu/linux(Ubuntu:26.04) All versions No fix listed
ubuntu/linux-raspi(Ubuntu:26.04) All versions No fix listed
debian/linux(Debian:12) All versions No fix listed
Show 175 more
ProductAffected versionsFixed in
debian/linux(Debian:12) = 6.1.106-1 No fix listed
debian/linux(Debian:12) = 6.1.106-2 No fix listed
debian/linux(Debian:12) = 6.1.106-3 No fix listed
debian/linux(Debian:12) = 6.1.112-1 No fix listed
debian/linux(Debian:12) = 6.1.115-1 No fix listed
debian/linux(Debian:12) = 6.1.119-1 No fix listed
debian/linux(Debian:12) = 6.1.123-1 No fix listed
debian/linux(Debian:12) = 6.1.124-1 No fix listed
debian/linux(Debian:12) = 6.1.128-1 No fix listed
debian/linux(Debian:12) = 6.1.129-1 No fix listed
debian/linux(Debian:12) = 6.1.133-1 No fix listed
debian/linux(Debian:12) = 6.1.135-1 No fix listed
debian/linux(Debian:12) = 6.1.137-1 No fix listed
debian/linux(Debian:12) = 6.1.139-1 No fix listed
debian/linux(Debian:12) = 6.1.140-1 No fix listed
debian/linux(Debian:12) = 6.1.147-1 No fix listed
debian/linux(Debian:12) = 6.1.148-1 No fix listed
debian/linux(Debian:12) = 6.1.153-1 No fix listed
debian/linux(Debian:12) = 6.1.158-1 No fix listed
debian/linux(Debian:12) = 6.1.159-1 No fix listed
debian/linux(Debian:12) = 6.1.162-1 No fix listed
debian/linux(Debian:12) = 6.1.164-1 No fix listed
debian/linux(Debian:12) = 6.1.170-1 No fix listed
debian/linux(Debian:12) = 6.1.170-2 No fix listed
debian/linux(Debian:12) = 6.1.170-3 No fix listed
debian/linux(Debian:12) = 6.1.172-1 No fix listed
debian/linux(Debian:12) = 6.1.174-1 No fix listed
debian/linux(Debian:12) = 6.1.176-1 No fix listed
debian/linux(Debian:12) = 6.1.177-1 No fix listed
debian/linux(Debian:12) = 6.1.180-1 No fix listed
debian/linux(Debian:12) = 6.1.187-1 No fix listed
debian/linux(Debian:12) = 6.1.190-1 No fix listed
debian/linux(Debian:12) = 6.1.27-1 No fix listed
debian/linux(Debian:12) = 6.1.37-1 No fix listed
debian/linux(Debian:12) = 6.1.38-1 No fix listed
debian/linux(Debian:12) = 6.1.38-2 No fix listed
debian/linux(Debian:12) = 6.1.38-2~bpo11+1 No fix listed
debian/linux(Debian:12) = 6.1.38-3 No fix listed
debian/linux(Debian:12) = 6.1.38-4 No fix listed
debian/linux(Debian:12) = 6.1.38-4~bpo11+1 No fix listed
debian/linux(Debian:12) = 6.1.52-1 No fix listed
debian/linux(Debian:12) = 6.1.55-1 No fix listed
debian/linux(Debian:12) = 6.1.55-1~bpo11+1 No fix listed
debian/linux(Debian:12) = 6.1.64-1 No fix listed
debian/linux(Debian:12) = 6.1.66-1 No fix listed
debian/linux(Debian:12) = 6.1.67-1 No fix listed
debian/linux(Debian:12) = 6.1.69-1 No fix listed
debian/linux(Debian:12) = 6.1.69-1~bpo11+1 No fix listed
debian/linux(Debian:12) = 6.1.76-1 No fix listed
debian/linux(Debian:12) = 6.1.76-1~bpo11+1 No fix listed
debian/linux(Debian:12) = 6.1.82-1 No fix listed
debian/linux(Debian:12) = 6.1.85-1 No fix listed
debian/linux(Debian:12) = 6.1.90-1 No fix listed
debian/linux(Debian:12) = 6.1.90-1~bpo11+1 No fix listed
debian/linux(Debian:12) = 6.1.94-1 No fix listed
debian/linux(Debian:12) = 6.1.94-1~bpo11+1 No fix listed
debian/linux(Debian:12) = 6.1.98-1 No fix listed
debian/linux(Debian:12) = 6.1.99-1 No fix listed
debian/linux(Debian:12) = 6.10-1~exp1 No fix listed
debian/linux(Debian:12) = 6.10.1-1~exp1 No fix listed
debian/linux(Debian:12) = 6.10.11-1 No fix listed
debian/linux(Debian:12) = 6.10.11-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.10.12-1 No fix listed
debian/linux(Debian:12) = 6.10.3-1 No fix listed
debian/linux(Debian:12) = 6.10.4-1 No fix listed
debian/linux(Debian:12) = 6.10.6-1 No fix listed
debian/linux(Debian:12) = 6.10.6-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.10.7-1 No fix listed
debian/linux(Debian:12) = 6.10.9-1 No fix listed
debian/linux(Debian:12) = 6.11-1~exp1 No fix listed
debian/linux(Debian:12) = 6.11.10-1 No fix listed
debian/linux(Debian:12) = 6.11.10-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.11.2-1 No fix listed
debian/linux(Debian:12) = 6.11.4-1 No fix listed
debian/linux(Debian:12) = 6.11.5-1 No fix listed
debian/linux(Debian:12) = 6.11.5-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.11.6-1 No fix listed
debian/linux(Debian:12) = 6.11.7-1 No fix listed
debian/linux(Debian:12) = 6.11.9-1 No fix listed
debian/linux(Debian:12) = 6.11~rc4-1~exp1 No fix listed
debian/linux(Debian:12) = 6.11~rc5-1~exp1 No fix listed
debian/linux(Debian:12) = 6.12.10-1 No fix listed
debian/linux(Debian:12) = 6.12.100-1 No fix listed
debian/linux(Debian:12) = 6.12.101-1 No fix listed
debian/linux(Debian:12) = 6.12.105-1 No fix listed
debian/linux(Debian:12) = 6.12.107-1 No fix listed
debian/linux(Debian:12) = 6.12.11-1 No fix listed
debian/linux(Debian:12) = 6.12.11-1+alpha No fix listed
debian/linux(Debian:12) = 6.12.11-1+alpha.1 No fix listed
debian/linux(Debian:12) = 6.12.111-1 No fix listed
debian/linux(Debian:12) = 6.12.113-1 No fix listed
debian/linux(Debian:12) = 6.12.115-1 No fix listed
debian/linux(Debian:12) = 6.12.115-2 No fix listed
debian/linux(Debian:12) = 6.12.116-1 No fix listed
debian/linux(Debian:12) = 6.12.12-1 No fix listed
debian/linux(Debian:12) = 6.12.12-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.13-1 No fix listed
debian/linux(Debian:12) = 6.12.15-1 No fix listed
debian/linux(Debian:12) = 6.12.16-1 No fix listed
debian/linux(Debian:12) = 6.12.17-1 No fix listed
debian/linux(Debian:12) = 6.12.19-1 No fix listed
debian/linux(Debian:12) = 6.12.20-1 No fix listed
debian/linux(Debian:12) = 6.12.21-1 No fix listed
debian/linux(Debian:12) = 6.12.22-1 No fix listed
debian/linux(Debian:12) = 6.12.22-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.25-1 No fix listed
debian/linux(Debian:12) = 6.12.27-1 No fix listed
debian/linux(Debian:12) = 6.12.27-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.29-1 No fix listed
debian/linux(Debian:12) = 6.12.3-1 No fix listed
debian/linux(Debian:12) = 6.12.30-1 No fix listed
debian/linux(Debian:12) = 6.12.30-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.31-1 No fix listed
debian/linux(Debian:12) = 6.12.32-1 No fix listed
debian/linux(Debian:12) = 6.12.32-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.33-1 No fix listed
debian/linux(Debian:12) = 6.12.33-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.35-1 No fix listed
debian/linux(Debian:12) = 6.12.35-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.37-1 No fix listed
debian/linux(Debian:12) = 6.12.38-1 No fix listed
debian/linux(Debian:12) = 6.12.38-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.41-1 No fix listed
debian/linux(Debian:12) = 6.12.43-1 No fix listed
debian/linux(Debian:12) = 6.12.43-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.48-1 No fix listed
debian/linux(Debian:12) = 6.12.5-1 No fix listed
debian/linux(Debian:12) = 6.12.57-1 No fix listed
debian/linux(Debian:12) = 6.12.57-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.6-1 No fix listed
debian/linux(Debian:12) = 6.12.63-1 No fix listed
debian/linux(Debian:12) = 6.12.63-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.69-1 No fix listed
debian/linux(Debian:12) = 6.12.69-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.73-1 No fix listed
debian/linux(Debian:12) = 6.12.73-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.74-1 No fix listed
debian/linux(Debian:12) = 6.12.74-2 No fix listed
debian/linux(Debian:12) = 6.12.74-2~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.8-1 No fix listed
debian/linux(Debian:12) = 6.12.85-1 No fix listed
debian/linux(Debian:12) = 6.12.85-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.86-1 No fix listed
debian/linux(Debian:12) = 6.12.86-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.88-1 No fix listed
debian/linux(Debian:12) = 6.12.88-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.9-1 No fix listed
debian/linux(Debian:12) = 6.12.9-1+alpha No fix listed
debian/linux(Debian:12) = 6.12.9-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.90-1 No fix listed
debian/linux(Debian:12) = 6.12.90-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.90-2 No fix listed
debian/linux(Debian:12) = 6.12.90-2~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.94-1 No fix listed
debian/linux(Debian:12) = 6.12.94-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.95-1 No fix listed
debian/linux(Debian:12) = 6.12.95-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.96-1 No fix listed
debian/linux(Debian:12) = 6.12~rc6-1~exp1 No fix listed
debian/linux(Debian:12) = 6.13.10-1~exp1 No fix listed
debian/linux(Debian:12) = 6.13.11-1~exp1 No fix listed
debian/linux(Debian:12) = 6.13.2-1~exp1 No fix listed
debian/linux(Debian:12) = 6.13.3-1~exp1 No fix listed
debian/linux(Debian:12) = 6.13.4-1~exp1 No fix listed
debian/linux(Debian:12) = 6.13.5-1~exp1 No fix listed
debian/linux(Debian:12) = 6.13.6-1~exp1 No fix listed
debian/linux(Debian:12) = 6.13.7-1~exp1 No fix listed
debian/linux(Debian:12) = 6.13.8-1~exp1 No fix listed
debian/linux(Debian:12) = 6.13.9-1~exp1 No fix listed
debian/linux(Debian:12) = 6.13~rc6-1~exp1 No fix listed
debian/linux(Debian:12) = 6.13~rc7-1~exp1 No fix listed
debian/linux(Debian:12) = 6.14.3-1~exp1 No fix listed
debian/linux(Debian:12) = 6.14.5-1~exp1 No fix listed
debian/linux(Debian:12) = 6.14.6-1~exp1 No fix listed
debian/linux(Debian:12) = 6.15-1~exp1 No fix listed

References