CVE-2026-48065: pam_usb: Unchecked integer multiplication before xmalloc() in conf.c allows heap-based buffer overflow on 32-bit targets
Vulnerability summary
CVE-2026-48065 is a medium (CVSS 6.7) Heap-based Buffer Overflow vulnerability in mcdope pam_usb. EPSS estimates a 0.21% chance of exploitation in the next 30 days, higher than 10.1% of scored vulnerabilities.
Timeline
- 27-05-2026PublishedVulnerability first disclosed.
- 28-05-2026Last modifiedVulnerability information updated.
Description
pam_usb provides hardware authentication for Linux using ordinary removable media. Prior to 0.9.1, src/conf.c allocates heap memory proportional to n_devices, a count derived from libxml2 XPath evaluation of the config file, without first enforcing an upper bound. On 32-bit targets (armv7l, i686 -- both listed in the project Makefile), the multiplication n_devices * sizeof(t_pusb_device) wraps around size_t, causing xmalloc() to receive a very small size. Because xmalloc() only calls abort() on NULL return, a small-but-non-NULL allocation is accepted, and subsequent array writes overflow the heap. This vulnerability is fixed in 0.9.1.
CVSS metrics
2 scores · 2 sources · 1 version- NVDNIST6.7MediumCVSS:3.1/AV:L/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H
EPSS trend
Probability
0.21%
Chance of exploitation in the next 30 days
Percentile
10%
Versus all other CVEs
30-day change
Increase +0.06 pp
From 0.15% on 22-09-2026
Known exploited
Compare KEV catalogsNot in the CISA KEV catalog.
Not in the ENISA CNW catalog.
Not in the CIRCL catalog.
Public exploits
0 foundNo public exploits indexed.
Weaknesses
CWE · root cause- CWE-122Heap-based Buffer OverflowA heap overflow condition is a buffer overflow, where the buffer that can be overwritten is allocated in the heap portion of memory, generally meaning that the buffer was allocated using a routine such as malloc().
- CWE-190Integer Overflow or WraparoundThe product performs a calculation that can produce an integer overflow or wraparound when the logic assumes that the resulting value will always be larger than the original value. This occurs when an integer value is incremented to a value that is too large to store in the associated representation. When this occurs, the value may become a very small or negative number.
Affected systems
Mcdope1 product
- pam_usb< 0.9.1
1 vendor · 1 product
References
3 links- github.com/mcdope/pam_usb/security/advisories/GHSA-24mw-m2vf-36vpX Refsource CONFIRM
- github.com/mcdope/pam_usb/issues/352X Refsource MISC
- github.com/mcdope/pam_usb/issues/55X Refsource MISC