In the Linux kernel, the following vulnerability has been resolved:
net: hso: fix null-ptr-deref during tty device unregistration
Multiple ttys try to claim the same the minor number causing a double
unregistration of the same device. The first unregistration succeeds
but the next one results in a null-ptr-deref.
The get_free_serial_index() function returns an available minor number
but doesn’t assign it immediately. The assignment is done by the caller
later. But before this assignment, calls to get_free_serial_index()
would return the same minor number.
Fix this by modifying get_free_serial_index to assign the minor number
immediately after one is found to be and rename it to obtain_minor()
to better reflect what it does. Similary, rename set_serial_by_index()
to release_minor() and modify it to free up the minor number of the
given hso_serial. Every obtain_minor() should have corresponding
release_minor() call.
[
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"product": "Linux",
"versions": [
{
"status": "affected",
"version": "72dc1c096c70",
"lessThan": "a462067d7c8e",
"versionType": "git"
},
{
"status": "affected",
"version": "72dc1c096c70",
"lessThan": "145c89c441d2",
"versionType": "git"
},
{
"status": "affected",
"version": "72dc1c096c70",
"lessThan": "caf5ac93b3b5",
"versionType": "git"
},
{
"status": "affected",
"version": "72dc1c096c70",
"lessThan": "92028d7a31e5",
"versionType": "git"
},
{
"status": "affected",
"version": "72dc1c096c70",
"lessThan": "4a2933c88399",
"versionType": "git"
},
{
"status": "affected",
"version": "72dc1c096c70",
"lessThan": "dc195928d7e4",
"versionType": "git"
},
{
"status": "affected",
"version": "72dc1c096c70",
"lessThan": "388d05f70f1e",
"versionType": "git"
},
{
"status": "affected",
"version": "72dc1c096c70",
"lessThan": "8a12f8836145",
"versionType": "git"
}
],
"programFiles": [
"drivers/net/usb/hso.c"
],
"defaultStatus": "unaffected"
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"product": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.27"
},
{
"status": "unaffected",
"version": "0",
"lessThan": "2.6.27",
"versionType": "custom"
},
{
"status": "unaffected",
"version": "4.4.268",
"versionType": "custom",
"lessThanOrEqual": "4.4.*"
},
{
"status": "unaffected",
"version": "4.9.268",
"versionType": "custom",
"lessThanOrEqual": "4.9.*"
},
{
"status": "unaffected",
"version": "4.14.232",
"versionType": "custom",
"lessThanOrEqual": "4.14.*"
},
{
"status": "unaffected",
"version": "4.19.187",
"versionType": "custom",
"lessThanOrEqual": "4.19.*"
},
{
"status": "unaffected",
"version": "5.4.112",
"versionType": "custom",
"lessThanOrEqual": "5.4.*"
},
{
"status": "unaffected",
"version": "5.10.30",
"versionType": "custom",
"lessThanOrEqual": "5.10.*"
},
{
"status": "unaffected",
"version": "5.11.14",
"versionType": "custom",
"lessThanOrEqual": "5.11.*"
},
{
"status": "unaffected",
"version": "5.12",
"versionType": "original_commit_for_fix",
"lessThanOrEqual": "*"
}
],
"programFiles": [
"drivers/net/usb/hso.c"
],
"defaultStatus": "affected"
}
]
git.kernel.org/stable/c/145c89c441d27696961752bf51b323f347601bee
git.kernel.org/stable/c/388d05f70f1ee0cac4a2068fd295072f1a44152a
git.kernel.org/stable/c/4a2933c88399c0ebc738db39bbce3ae89786d723
git.kernel.org/stable/c/8a12f8836145ffe37e9c8733dce18c22fb668b66
git.kernel.org/stable/c/92028d7a31e55d53e41cff679156b9432cffcb36
git.kernel.org/stable/c/a462067d7c8e6953a733bf5ade8db947b1bb5449
git.kernel.org/stable/c/caf5ac93b3b5d5fac032fc11fbea680e115421b4
git.kernel.org/stable/c/dc195928d7e4ec7b5cfc6cd10dc4c8d87a7c72ac