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.
{
"cna_assigner": "GitHub_M",
"cwe_ids": [
"CWE-122",
"CWE-190"
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/48xxx/CVE-2026-48065.json"
}"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-48065.json"
[
{
"deprecated": false,
"digest": {
"line_hashes": [
"32897324108646938673138056869665931337"
],
"threshold": 0.9
},
"id": "CVE-2026-48065-b792a2ae",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/mcdope/pam_usb/commit/e2f30b22cd0715fcde0fc62d6ee3e1ca6370b8a9",
"target": {
"file": "src/version.h"
}
}
]
"2026-08-12T16:25:27Z"