CVE-2025-38348

Source
https://nvd.nist.gov/vuln/detail/CVE-2025-38348
Import Source
https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2025-38348.json
JSON Data
https://api.test.osv.dev/v1/vulns/CVE-2025-38348
Downstream
Related
Published
2025-07-10T08:15:15.883Z
Modified
2025-11-28T02:35:01.988726Z
Summary
wifi: p54: prevent buffer-overflow in p54_rx_eeprom_readback()
Details

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

wifi: p54: prevent buffer-overflow in p54rxeeprom_readback()

Robert Morris reported:

|If a malicious USB device pretends to be an Intersil p54 wifi |interface and generates an eepromreadback message with a large |eeprom->v1.len, p54rxeepromreadback() will copy data from the |message beyond the end of priv->eeprom. | |static void p54rxeepromreadback(struct p54common *priv, | struct skbuff *skb) |{ | struct p54hdr *hdr = (struct p54hdr *) skb->data; | struct p54eepromlm86 *eeprom = (struct p54eepromlm86 *) hdr->data; | | if (priv->fwvar >= 0x509) { | memcpy(priv->eeprom, eeprom->v2.data, | le16tocpu(eeprom->v2.len)); | } else { | memcpy(priv->eeprom, eeprom->v1.data, | le16tocpu(eeprom->v1.len)); | } | [...]

The eeprom->v{1,2}.len is set by the driver in p54downloadeeprom(). The device is supposed to provide the same length back to the driver. But yes, it's possible (like shown in the report) to alter the value to something that causes a crash/panic due to overrun.

This patch addresses the issue by adding the size to the common device context, so p54rxeeprom_readback no longer relies on possibly tampered values... That said, it also checks if the "firmware" altered the value and no longer copies them.

The one, small saving grace is: Before the driver tries to read the eeprom, it needs to upload >a< firmware. the vendor firmware has a proprietary license and as a reason, it is not present on most distributions by default.

Database specific
{
    "cna_assigner": "Linux",
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/38xxx/CVE-2025-38348.json"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
7cb770729ba895f73253dfcd46c3fcba45d896f9
Fixed
12134f79e53eb56b0b0b7447fa0c512acf6a8422
Fixed
9701f842031b825e2fd5f22d064166f8f13f6e4d
Fixed
1f7f8168abe8cbe845ab8bb557228d44784a6b57
Fixed
f39b2f8c1549a539846e083790fad396ef6cd802
Fixed
0e4dc150423b829c35cbcf399481ca11594fc036
Fixed
6d05390d20f110de37d051a3e063ef0a542d01fb
Fixed
714afb4c38edd19a057d519c1f9c5d164b43de94
Fixed
da1b9a55ff116cb040528ef664c70a4eec03ae99

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
2.6.28
Fixed
5.4.295
Type
ECOSYSTEM
Events
Introduced
5.5.0
Fixed
5.10.239
Type
ECOSYSTEM
Events
Introduced
5.11.0
Fixed
5.15.186
Type
ECOSYSTEM
Events
Introduced
5.16.0
Fixed
6.1.142
Type
ECOSYSTEM
Events
Introduced
6.2.0
Fixed
6.6.95
Type
ECOSYSTEM
Events
Introduced
6.7.0
Fixed
6.12.35
Type
ECOSYSTEM
Events
Introduced
6.13.0
Fixed
6.15.4