{"id":"CVE-2026-81013","state":"PUBLISHED","title":"platform/x86: hp-bioscfg: fix heap OOB read on empty password write","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nplatform/x86: hp-bioscfg: fix heap OOB read on empty password write\n\nvalidate_password_input() computes length = strlen(buf) and then\nchecks buf[length - 1] to strip a trailing newline, without checking\nthat length is nonzero first. Writing an empty string (a bare '\\n')\nto current_password or new_password gives length == 0, and\nbuf[length - 1] reads buf[-1], one byte before the heap allocation\nholding the copied input.\n\nKASAN confirms this directly:\n\n  BUG: KASAN: slab-out-of-bounds in store_password_instance.constprop.0+0x223/0x2a0 [hp_bioscfg]\n  Read of size 1 at addr ffff88811bd8da9f by task sh/13740\n  ...\n  store_password_instance.constprop.0+0x223/0x2a0 [hp_bioscfg]\n  current_password_store+0x14/0x20 [hp_bioscfg]\n  ...\n  The buggy address is located 23 bytes to the right of\n  allocated 8-byte region [ffff88811bd8da80, ffff88811bd8da88)\n\nReproduced identically via new_password_store. Execution continues\npast the bad read (the garbage byte only affects whether \"length\" is\ndecremented by one), so the write completes and returns success; this\nis a pure information read past the buffer, not a crash, but it is\nstill an out-of-bounds access KASAN correctly flags.\n\nFix by only checking buf[length - 1] when length is nonzero.","publishedAt":"2026-09-11T19:43:02.741Z","updatedAt":"2026-10-19T08:46:38.578Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"8646a3b5ee3a5b384a22a721f37c24274d974045","status":"affected","lessThan":"21243c15e1d31f0df1517435e3a7784747f19043","versionType":"git"},{"version":"8646a3b5ee3a5b384a22a721f37c24274d974045","status":"affected","lessThan":"cecb8154bd5fa6c8ddbd1a4e8216bbc0f0eb9828","versionType":"git"},{"version":"8646a3b5ee3a5b384a22a721f37c24274d974045","status":"affected","lessThan":"0f9aad08424882dd5714b53d29ae044060890752","versionType":"git"},{"version":"8646a3b5ee3a5b384a22a721f37c24274d974045","status":"affected","lessThan":"b699e5c1f63a9e79946c35598c8a6f7af2c356b8","versionType":"git"},{"version":"8646a3b5ee3a5b384a22a721f37c24274d974045","status":"affected","lessThan":"2b2ec354f905c14e3270e8ec3ab50f7d8ad73bab","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/platform/x86/hp/hp-bioscfg/passwdobj-attributes.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.6","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.6","versionType":"semver"},{"version":"6.6.157","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.109","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.50","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.2.4","status":"unaffected","lessThanOrEqual":"7.2.*","versionType":"semver"},{"version":"7.3","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/platform/x86/hp/hp-bioscfg/passwdobj-attributes.c"]}],"references":["https://git.kernel.org/stable/c/21243c15e1d31f0df1517435e3a7784747f19043","https://git.kernel.org/stable/c/cecb8154bd5fa6c8ddbd1a4e8216bbc0f0eb9828","https://git.kernel.org/stable/c/0f9aad08424882dd5714b53d29ae044060890752","https://git.kernel.org/stable/c/b699e5c1f63a9e79946c35598c8a6f7af2c356b8","https://git.kernel.org/stable/c/2b2ec354f905c14e3270e8ec3ab50f7d8ad73bab"],"weaknesses":[],"ingestedAt":"2026-10-29T20:13:15.269Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/81xxx/CVE-2026-81013.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-81013","state":"PUBLISHED","datePublished":"2026-09-11T19:43:02.741Z","dateUpdated":"2026-10-19T08:46:38.578Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-08-26T14:34:25.813Z"},"containers":{"cna":{"title":"platform/x86: hp-bioscfg: fix heap OOB read on empty password write","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nplatform/x86: hp-bioscfg: fix heap OOB read on empty password write\n\nvalidate_password_input() computes length = strlen(buf) and then\nchecks buf[length - 1] to strip a trailing newline, without checking\nthat length is nonzero first. Writing an empty string (a bare '\\n')\nto current_password or new_password gives length == 0, and\nbuf[length - 1] reads buf[-1], one byte before the heap allocation\nholding the copied input.\n\nKASAN confirms this directly:\n\n  BUG: KASAN: slab-out-of-bounds in store_password_instance.constprop.0+0x223/0x2a0 [hp_bioscfg]\n  Read of size 1 at addr ffff88811bd8da9f by task sh/13740\n  ...\n  store_password_instance.constprop.0+0x223/0x2a0 [hp_bioscfg]\n  current_password_store+0x14/0x20 [hp_bioscfg]\n  ...\n  The buggy address is located 23 bytes to the right of\n  allocated 8-byte region [ffff88811bd8da80, ffff88811bd8da88)\n\nReproduced identically via new_password_store. Execution continues\npast the bad read (the garbage byte only affects whether \"length\" is\ndecremented by one), so the write completes and returns success; this\nis a pure information read past the buffer, not a crash, but it is\nstill an out-of-bounds access KASAN correctly flags.\n\nFix by only checking buf[length - 1] when length is nonzero."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"8646a3b5ee3a5b384a22a721f37c24274d974045","status":"affected","lessThan":"21243c15e1d31f0df1517435e3a7784747f19043","versionType":"git"},{"version":"8646a3b5ee3a5b384a22a721f37c24274d974045","status":"affected","lessThan":"cecb8154bd5fa6c8ddbd1a4e8216bbc0f0eb9828","versionType":"git"},{"version":"8646a3b5ee3a5b384a22a721f37c24274d974045","status":"affected","lessThan":"0f9aad08424882dd5714b53d29ae044060890752","versionType":"git"},{"version":"8646a3b5ee3a5b384a22a721f37c24274d974045","status":"affected","lessThan":"b699e5c1f63a9e79946c35598c8a6f7af2c356b8","versionType":"git"},{"version":"8646a3b5ee3a5b384a22a721f37c24274d974045","status":"affected","lessThan":"2b2ec354f905c14e3270e8ec3ab50f7d8ad73bab","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/platform/x86/hp/hp-bioscfg/passwdobj-attributes.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.6","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.6","versionType":"semver"},{"version":"6.6.157","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.109","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.50","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.2.4","status":"unaffected","lessThanOrEqual":"7.2.*","versionType":"semver"},{"version":"7.3","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/platform/x86/hp/hp-bioscfg/passwdobj-attributes.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/21243c15e1d31f0df1517435e3a7784747f19043"},{"url":"https://git.kernel.org/stable/c/cecb8154bd5fa6c8ddbd1a4e8216bbc0f0eb9828"},{"url":"https://git.kernel.org/stable/c/0f9aad08424882dd5714b53d29ae044060890752"},{"url":"https://git.kernel.org/stable/c/b699e5c1f63a9e79946c35598c8a6f7af2c356b8"},{"url":"https://git.kernel.org/stable/c/2b2ec354f905c14e3270e8ec3ab50f7d8ad73bab"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-10-19T08:46:38.578Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.6","versionEndExcluding":"6.6.157"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.6","versionEndExcluding":"6.12.109"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.6","versionEndExcluding":"6.18.50"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.6","versionEndExcluding":"7.2.4"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.6","versionEndExcluding":"7.3"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}