In the Linux kernel, the following vulnerability has been resolved:
HID: usbhid: Eliminate recurrent out-of-bounds bug in usbhid_parse()
Update struct hid_descriptor to better reflect the mandatory and optional parts of the HID Descriptor as per USB HID 1.11 specification. Note: the kernel currently does not parse any optional HID class descriptors, only the mandatory report descriptor.
Update all references to member element desc[0] to rpt_desc.
Add test to verify bLength and bNumDescriptors values are valid.
Replace the for loop with direct access to the mandatory HID class descriptor member for the report descriptor. This eliminates the possibility of getting an out-of-bounds fault.
Add a warning message if the HID descriptor contains any unsupported optional HID class descriptors.
{
"cna_assigner": "Linux",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/38xxx/CVE-2025-38103.json"
}"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2025-38103.json"
[
{
"signature_type": "Line",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@485e1b741eb838cbe1d6b0e81e5ab62ae6c095cf",
"target": {
"file": "include/linux/hid.h"
},
"id": "CVE-2025-38103-3177755e",
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"183321610816968142536247258235318339601",
"66019367552883765554449057776115183666",
"80591439488546291138167680722513279772",
"113481828656170615432310020617428633792",
"320866516260648709209166573184723543975"
]
}
},
{
"signature_type": "Line",
"id": "CVE-2025-38103-32ada9e7",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@485e1b741eb838cbe1d6b0e81e5ab62ae6c095cf",
"signature_version": "v1",
"target": {
"file": "drivers/hid/hid-hyperv.c"
},
"deprecated": false,
"digest": {
"threshold": 0.9,
"line_hashes": [
"263290379275327923598721344592566895304",
"175547747696953428308467421275411653024",
"174676654016920911822386612737208316585",
"153475326842817563011690498347650732507",
"80536037671758971292694713893823003067",
"117526238016713053303724396943954569953",
"25665919118552716052768925044847828066",
"22057265988837851393667695677005037388"
]
}
},
{
"signature_type": "Line",
"target": {
"file": "drivers/hid/usbhid/hid-core.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a8f842534807985d3a676006d140541b87044345",
"deprecated": false,
"digest": {
"threshold": 0.9,
"line_hashes": [
"304947667071028572957298736089888927268",
"276908939859898377024036653398954964043",
"28078128649911652395889587409417583679",
"112668110372010017714047101496387430389",
"12102417306188497591597887679891464502",
"154119609126093328245685777187936853827",
"114891202118557611277758403619231049271",
"251231496613885680849288713605785955918",
"246820157237512497692432300047578573753",
"205192109902606269231543154763400772876",
"233332069547359077811844163720793079348",
"146655454084491480201923061811627230593",
"339069675276944415621943110796188401799",
"72454180862777109738763559691862853787",
"278630467778495840571393857326195138262",
"285395122621328971574619922713002930873",
"18818064729697199639793631862900479672",
"59031252212997470611891965678039709599",
"107326489935487020786166117603748621113",
"215498809278650551446533008883202180621",
"174300680890167712274728982423667710452",
"249739554137549339837546598956724185208",
"82084453819372362569365173834770488531",
"204977380078236248453605122445536312830",
"243657947837971802590774016750715227069",
"64996137916138208570609727273135179251",
"132770831930351695690346280124909432935"
]
},
"signature_version": "v1",
"id": "CVE-2025-38103-35536cd0"
},
{
"signature_type": "Function",
"id": "CVE-2025-38103-3ea39157",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@485e1b741eb838cbe1d6b0e81e5ab62ae6c095cf",
"signature_version": "v1",
"deprecated": false,
"target": {
"function": "usbhid_parse",
"file": "drivers/hid/usbhid/hid-core.c"
},
"digest": {
"function_hash": "32746609570052498699419539514488453616",
"length": 1933.0
}
},
{
"signature_type": "Function",
"id": "CVE-2025-38103-526ddb6b",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a8f842534807985d3a676006d140541b87044345",
"signature_version": "v1",
"target": {
"function": "usbhid_parse",
"file": "drivers/hid/usbhid/hid-core.c"
},
"deprecated": false,
"digest": {
"function_hash": "32746609570052498699419539514488453616",
"length": 1933.0
}
},
{
"signature_type": "Line",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a8f842534807985d3a676006d140541b87044345",
"target": {
"file": "drivers/hid/hid-hyperv.c"
},
"id": "CVE-2025-38103-5d4009c1",
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"263290379275327923598721344592566895304",
"175547747696953428308467421275411653024",
"174676654016920911822386612737208316585",
"153475326842817563011690498347650732507",
"80536037671758971292694713893823003067",
"117526238016713053303724396943954569953",
"25665919118552716052768925044847828066",
"22057265988837851393667695677005037388"
]
}
},
{
"signature_type": "Function",
"id": "CVE-2025-38103-645004a3",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a8f842534807985d3a676006d140541b87044345",
"signature_version": "v1",
"deprecated": false,
"target": {
"function": "mousevsc_on_receive_device_info",
"file": "drivers/hid/hid-hyperv.c"
},
"digest": {
"function_hash": "244441441806252790305258882606646593954",
"length": 1466.0
}
},
{
"signature_type": "Function",
"id": "CVE-2025-38103-66a3eeae",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@485e1b741eb838cbe1d6b0e81e5ab62ae6c095cf",
"signature_version": "v1",
"target": {
"function": "hidg_setup",
"file": "drivers/usb/gadget/function/f_hid.c"
},
"deprecated": false,
"digest": {
"function_hash": "129522750052662972471729180362273859677",
"length": 3315.0
}
},
{
"signature_type": "Function",
"target": {
"function": "mousevsc_on_receive_device_info",
"file": "drivers/hid/hid-hyperv.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@485e1b741eb838cbe1d6b0e81e5ab62ae6c095cf",
"deprecated": false,
"digest": {
"function_hash": "303108875750860662074561999425625471744",
"length": 1438.0
},
"signature_version": "v1",
"id": "CVE-2025-38103-8206d3cd"
},
{
"signature_type": "Line",
"target": {
"file": "drivers/hid/usbhid/hid-core.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@485e1b741eb838cbe1d6b0e81e5ab62ae6c095cf",
"id": "CVE-2025-38103-a68f1b5e",
"deprecated": false,
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"304947667071028572957298736089888927268",
"276908939859898377024036653398954964043",
"28078128649911652395889587409417583679",
"112668110372010017714047101496387430389",
"12102417306188497591597887679891464502",
"154119609126093328245685777187936853827",
"114891202118557611277758403619231049271",
"251231496613885680849288713605785955918",
"246820157237512497692432300047578573753",
"205192109902606269231543154763400772876",
"233332069547359077811844163720793079348",
"146655454084491480201923061811627230593",
"339069675276944415621943110796188401799",
"72454180862777109738763559691862853787",
"278630467778495840571393857326195138262",
"285395122621328971574619922713002930873",
"18818064729697199639793631862900479672",
"59031252212997470611891965678039709599",
"107326489935487020786166117603748621113",
"215498809278650551446533008883202180621",
"174300680890167712274728982423667710452",
"249739554137549339837546598956724185208",
"82084453819372362569365173834770488531",
"204977380078236248453605122445536312830",
"243657947837971802590774016750715227069",
"64996137916138208570609727273135179251",
"132770831930351695690346280124909432935"
]
}
},
{
"signature_type": "Function",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a8f842534807985d3a676006d140541b87044345",
"target": {
"function": "hidg_bind",
"file": "drivers/usb/gadget/function/f_hid.c"
},
"id": "CVE-2025-38103-ab7cb7d1",
"signature_version": "v1",
"digest": {
"function_hash": "303916489505627364783735370578669554755",
"length": 3030.0
}
},
{
"signature_type": "Function",
"id": "CVE-2025-38103-b43301ec",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@485e1b741eb838cbe1d6b0e81e5ab62ae6c095cf",
"signature_version": "v1",
"deprecated": false,
"target": {
"function": "hidg_bind",
"file": "drivers/usb/gadget/function/f_hid.c"
},
"digest": {
"function_hash": "20348212727960911865365631533595768237",
"length": 3776.0
}
},
{
"signature_type": "Line",
"id": "CVE-2025-38103-b6308d2d",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a8f842534807985d3a676006d140541b87044345",
"signature_version": "v1",
"target": {
"file": "drivers/usb/gadget/function/f_hid.c"
},
"deprecated": false,
"digest": {
"threshold": 0.9,
"line_hashes": [
"95698844509562408044427475373914576948",
"330169014147131213660631818133086770387",
"49419595987463582613877306965362068090",
"48595303903066049426814648941434635771",
"297575300105943341224006491891733469101",
"130763238237215268317330862646548904710",
"327656284947532309313853312477848938315",
"247531899880672770396753978148867411489",
"337576729709918926995108667564465560759",
"69420066829727724320213285792730889895",
"136754397725956176670561250941055834158",
"26568216420199008538148099387815567002",
"146036868830821542094448065748663322687"
]
}
},
{
"signature_type": "Line",
"id": "CVE-2025-38103-b767df49",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a8f842534807985d3a676006d140541b87044345",
"signature_version": "v1",
"target": {
"file": "include/linux/hid.h"
},
"deprecated": false,
"digest": {
"threshold": 0.9,
"line_hashes": [
"183321610816968142536247258235318339601",
"66019367552883765554449057776115183666",
"80591439488546291138167680722513279772",
"113481828656170615432310020617428633792",
"320866516260648709209166573184723543975"
]
}
},
{
"signature_type": "Function",
"id": "CVE-2025-38103-f62cc090",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a8f842534807985d3a676006d140541b87044345",
"signature_version": "v1",
"target": {
"function": "hidg_setup",
"file": "drivers/usb/gadget/function/f_hid.c"
},
"deprecated": false,
"digest": {
"function_hash": "324546164870623069620381928993134364047",
"length": 3127.0
}
},
{
"signature_type": "Line",
"target": {
"file": "drivers/usb/gadget/function/f_hid.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@485e1b741eb838cbe1d6b0e81e5ab62ae6c095cf",
"deprecated": false,
"digest": {
"threshold": 0.9,
"line_hashes": [
"95698844509562408044427475373914576948",
"330169014147131213660631818133086770387",
"49419595987463582613877306965362068090",
"48595303903066049426814648941434635771",
"297575300105943341224006491891733469101",
"130763238237215268317330862646548904710",
"327656284947532309313853312477848938315",
"247531899880672770396753978148867411489",
"337576729709918926995108667564465560759",
"69420066829727724320213285792730889895",
"136754397725956176670561250941055834158",
"26568216420199008538148099387815567002",
"146036868830821542094448065748663322687"
]
},
"signature_version": "v1",
"id": "CVE-2025-38103-fb0f284e"
}
]