| From bippy-5f407fcff5a0 Mon Sep 17 00:00:00 2001 |
| From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| To: <linux-cve-announce@vger.kernel.org> |
| Reply-to: <cve@kernel.org>, <linux-kernel@vger.kernel.org> |
| Subject: CVE-2021-46904: net: hso: fix null-ptr-deref during tty device unregistration |
| |
| Description |
| =========== |
| |
| 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. |
| |
| The Linux kernel CVE team has assigned CVE-2021-46904 to this issue. |
| |
| |
| Affected and fixed versions |
| =========================== |
| |
| Issue introduced in 2.6.27 with commit 72dc1c096c7051a48ab1dbb12f71976656b55eb5 and fixed in 4.4.268 with commit a462067d7c8e6953a733bf5ade8db947b1bb5449 |
| Issue introduced in 2.6.27 with commit 72dc1c096c7051a48ab1dbb12f71976656b55eb5 and fixed in 4.9.268 with commit 145c89c441d27696961752bf51b323f347601bee |
| Issue introduced in 2.6.27 with commit 72dc1c096c7051a48ab1dbb12f71976656b55eb5 and fixed in 4.14.232 with commit caf5ac93b3b5d5fac032fc11fbea680e115421b4 |
| Issue introduced in 2.6.27 with commit 72dc1c096c7051a48ab1dbb12f71976656b55eb5 and fixed in 4.19.187 with commit 92028d7a31e55d53e41cff679156b9432cffcb36 |
| Issue introduced in 2.6.27 with commit 72dc1c096c7051a48ab1dbb12f71976656b55eb5 and fixed in 5.4.112 with commit 4a2933c88399c0ebc738db39bbce3ae89786d723 |
| Issue introduced in 2.6.27 with commit 72dc1c096c7051a48ab1dbb12f71976656b55eb5 and fixed in 5.10.30 with commit dc195928d7e4ec7b5cfc6cd10dc4c8d87a7c72ac |
| Issue introduced in 2.6.27 with commit 72dc1c096c7051a48ab1dbb12f71976656b55eb5 and fixed in 5.11.14 with commit 388d05f70f1ee0cac4a2068fd295072f1a44152a |
| Issue introduced in 2.6.27 with commit 72dc1c096c7051a48ab1dbb12f71976656b55eb5 and fixed in 5.12 with commit 8a12f8836145ffe37e9c8733dce18c22fb668b66 |
| |
| Please see https://www.kernel.org for a full list of currently supported |
| kernel versions by the kernel community. |
| |
| Unaffected versions might change over time as fixes are backported to |
| older supported kernel versions. The official CVE entry at |
| https://cve.org/CVERecord/?id=CVE-2021-46904 |
| will be updated if fixes are backported, please check that for the most |
| up to date information about this issue. |
| |
| |
| Affected files |
| ============== |
| |
| The file(s) affected by this issue are: |
| drivers/net/usb/hso.c |
| |
| |
| Mitigation |
| ========== |
| |
| The Linux kernel CVE team recommends that you update to the latest |
| stable kernel version for this, and many other bugfixes. Individual |
| changes are never tested alone, but rather are part of a larger kernel |
| release. Cherry-picking individual commits is not recommended or |
| supported by the Linux kernel community at all. If however, updating to |
| the latest release is impossible, the individual changes to resolve this |
| issue can be found at these commits: |
| https://git.kernel.org/stable/c/a462067d7c8e6953a733bf5ade8db947b1bb5449 |
| https://git.kernel.org/stable/c/145c89c441d27696961752bf51b323f347601bee |
| https://git.kernel.org/stable/c/caf5ac93b3b5d5fac032fc11fbea680e115421b4 |
| https://git.kernel.org/stable/c/92028d7a31e55d53e41cff679156b9432cffcb36 |
| https://git.kernel.org/stable/c/4a2933c88399c0ebc738db39bbce3ae89786d723 |
| https://git.kernel.org/stable/c/dc195928d7e4ec7b5cfc6cd10dc4c8d87a7c72ac |
| https://git.kernel.org/stable/c/388d05f70f1ee0cac4a2068fd295072f1a44152a |
| https://git.kernel.org/stable/c/8a12f8836145ffe37e9c8733dce18c22fb668b66 |