In the Linux kernel, the following vulnerability has been resolved:
media: pci: ivtv: Add check for DMA map result
In case DMA fails, 'dma->SGlength' is 0. This value is later used to access 'dma->SGarray[dma->SGlength - 1]', which will cause out of bounds access.
Add check to return early on invalid value. Adjust warnings accordingly.
Found by Linux Verification Center (linuxtesting.org) with SVACE.
[
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"56264837524376070263823195980698895862",
"314960984178587682871035267447665122480",
"135750617736081678539167604399066715561",
"264333276457183447272093335434081037843",
"174660598257762415537544168440138882580"
]
},
"signature_type": "Line",
"target": {
"file": "drivers/media/pci/ivtv/ivtvfb.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3d8fd92939e21ff0d45100ab208f8124af79402a",
"id": "CVE-2024-43877-08a91304"
},
{
"digest": {
"length": 1362.0,
"function_hash": "266226761103313959739078528906818229415"
},
"signature_type": "Function",
"target": {
"function": "ivtv_udma_setup",
"file": "drivers/media/pci/ivtv/ivtv-udma.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@81d0664bed91a858c7b50c263954b59d65f1b414",
"id": "CVE-2024-43877-0c42fca8"
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"6280188610616049341625177315394831372",
"292462716006651222133519673268346185905",
"40035838727583870360705381870871673091",
"314348462212161853767613501955165728770",
"159540628357706315924596557610939044667",
"293673955284458704165695048004132466313",
"332202553572955963363878756641052246319",
"34062636083552758773848923676247110494"
]
},
"signature_type": "Line",
"target": {
"file": "drivers/media/pci/ivtv/ivtv-udma.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3d8fd92939e21ff0d45100ab208f8124af79402a",
"id": "CVE-2024-43877-2d6ebe90"
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"56264837524376070263823195980698895862",
"314960984178587682871035267447665122480",
"135750617736081678539167604399066715561",
"264333276457183447272093335434081037843",
"174660598257762415537544168440138882580"
]
},
"signature_type": "Line",
"target": {
"file": "drivers/media/pci/ivtv/ivtvfb.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@629913d6d79508b166c66e07e4857e20233d85a9",
"id": "CVE-2024-43877-2f964422"
},
{
"digest": {
"length": 1053.0,
"function_hash": "336185516363491995936881075715470008106"
},
"signature_type": "Function",
"target": {
"function": "ivtvfb_prep_dec_dma_to_device",
"file": "drivers/media/pci/ivtv/ivtvfb.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@81d0664bed91a858c7b50c263954b59d65f1b414",
"id": "CVE-2024-43877-38b37b96"
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"6280188610616049341625177315394831372",
"292462716006651222133519673268346185905",
"40035838727583870360705381870871673091",
"314348462212161853767613501955165728770",
"159540628357706315924596557610939044667",
"293673955284458704165695048004132466313",
"332202553572955963363878756641052246319",
"34062636083552758773848923676247110494"
]
},
"signature_type": "Line",
"target": {
"file": "drivers/media/pci/ivtv/ivtv-udma.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c766065e8272085ea9c436414b7ddf1f12e7787b",
"id": "CVE-2024-43877-4185329e"
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"6280188610616049341625177315394831372",
"292462716006651222133519673268346185905",
"40035838727583870360705381870871673091",
"314348462212161853767613501955165728770",
"159540628357706315924596557610939044667",
"293673955284458704165695048004132466313",
"332202553572955963363878756641052246319",
"34062636083552758773848923676247110494"
]
},
"signature_type": "Line",
"target": {
"file": "drivers/media/pci/ivtv/ivtv-udma.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@24062aa7407091dee3e45a8e8037df437e848718",
"id": "CVE-2024-43877-44e35ccf"
},
{
"digest": {
"length": 1353.0,
"function_hash": "94464509867219895526682004085674980839"
},
"signature_type": "Function",
"target": {
"function": "ivtv_udma_setup",
"file": "drivers/media/pci/ivtv/ivtv-udma.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@629913d6d79508b166c66e07e4857e20233d85a9",
"id": "CVE-2024-43877-49751969"
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"6280188610616049341625177315394831372",
"292462716006651222133519673268346185905",
"40035838727583870360705381870871673091",
"314348462212161853767613501955165728770",
"159540628357706315924596557610939044667",
"293673955284458704165695048004132466313",
"332202553572955963363878756641052246319",
"34062636083552758773848923676247110494"
]
},
"signature_type": "Line",
"target": {
"file": "drivers/media/pci/ivtv/ivtv-udma.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@81d0664bed91a858c7b50c263954b59d65f1b414",
"id": "CVE-2024-43877-4da48cc3"
},
{
"digest": {
"length": 2517.0,
"function_hash": "4013583276143518157017520172726500743"
},
"signature_type": "Function",
"target": {
"function": "ivtv_yuv_prep_user_dma",
"file": "drivers/media/pci/ivtv/ivtv-yuv.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@81d0664bed91a858c7b50c263954b59d65f1b414",
"id": "CVE-2024-43877-5e652a3d"
},
{
"digest": {
"length": 2502.0,
"function_hash": "323123488939663023904991608299521215938"
},
"signature_type": "Function",
"target": {
"function": "ivtv_yuv_prep_user_dma",
"file": "drivers/media/pci/ivtv/ivtv-yuv.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@629913d6d79508b166c66e07e4857e20233d85a9",
"id": "CVE-2024-43877-628272a7"
},
{
"digest": {
"length": 1362.0,
"function_hash": "266226761103313959739078528906818229415"
},
"signature_type": "Function",
"target": {
"function": "ivtv_udma_setup",
"file": "drivers/media/pci/ivtv/ivtv-udma.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@24062aa7407091dee3e45a8e8037df437e848718",
"id": "CVE-2024-43877-6acd365d"
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"159540628357706315924596557610939044667",
"172984834403971215320538854144129135482",
"108862115389855371254439777852287143171",
"327311415568890841341283937085145223195"
]
},
"signature_type": "Line",
"target": {
"file": "drivers/media/pci/ivtv/ivtv-yuv.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@81d0664bed91a858c7b50c263954b59d65f1b414",
"id": "CVE-2024-43877-79d81e6a"
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"56264837524376070263823195980698895862",
"314960984178587682871035267447665122480",
"135750617736081678539167604399066715561",
"264333276457183447272093335434081037843",
"174660598257762415537544168440138882580"
]
},
"signature_type": "Line",
"target": {
"file": "drivers/media/pci/ivtv/ivtvfb.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@81d0664bed91a858c7b50c263954b59d65f1b414",
"id": "CVE-2024-43877-7a589114"
},
{
"digest": {
"length": 1353.0,
"function_hash": "94464509867219895526682004085674980839"
},
"signature_type": "Function",
"target": {
"function": "ivtv_udma_setup",
"file": "drivers/media/pci/ivtv/ivtv-udma.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c766065e8272085ea9c436414b7ddf1f12e7787b",
"id": "CVE-2024-43877-7cc69350"
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"159540628357706315924596557610939044667",
"172984834403971215320538854144129135482",
"325066690646460899084892508346622921546",
"97096691751030125750943961757257004048"
]
},
"signature_type": "Line",
"target": {
"file": "drivers/media/pci/ivtv/ivtv-yuv.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@24062aa7407091dee3e45a8e8037df437e848718",
"id": "CVE-2024-43877-87d85811"
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"159540628357706315924596557610939044667",
"172984834403971215320538854144129135482",
"325066690646460899084892508346622921546",
"97096691751030125750943961757257004048"
]
},
"signature_type": "Line",
"target": {
"file": "drivers/media/pci/ivtv/ivtv-yuv.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3d8fd92939e21ff0d45100ab208f8124af79402a",
"id": "CVE-2024-43877-8fcceaa5"
},
{
"digest": {
"length": 2502.0,
"function_hash": "323123488939663023904991608299521215938"
},
"signature_type": "Function",
"target": {
"function": "ivtv_yuv_prep_user_dma",
"file": "drivers/media/pci/ivtv/ivtv-yuv.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c766065e8272085ea9c436414b7ddf1f12e7787b",
"id": "CVE-2024-43877-90dbbbe7"
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"56264837524376070263823195980698895862",
"314960984178587682871035267447665122480",
"135750617736081678539167604399066715561",
"264333276457183447272093335434081037843",
"174660598257762415537544168440138882580"
]
},
"signature_type": "Line",
"target": {
"file": "drivers/media/pci/ivtv/ivtvfb.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@24062aa7407091dee3e45a8e8037df437e848718",
"id": "CVE-2024-43877-95ed3f4c"
},
{
"digest": {
"length": 1053.0,
"function_hash": "336185516363491995936881075715470008106"
},
"signature_type": "Function",
"target": {
"function": "ivtvfb_prep_dec_dma_to_device",
"file": "drivers/media/pci/ivtv/ivtvfb.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c766065e8272085ea9c436414b7ddf1f12e7787b",
"id": "CVE-2024-43877-a054ab6d"
},
{
"digest": {
"length": 1353.0,
"function_hash": "94464509867219895526682004085674980839"
},
"signature_type": "Function",
"target": {
"function": "ivtv_udma_setup",
"file": "drivers/media/pci/ivtv/ivtv-udma.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3d8fd92939e21ff0d45100ab208f8124af79402a",
"id": "CVE-2024-43877-a2098485"
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"56264837524376070263823195980698895862",
"314960984178587682871035267447665122480",
"135750617736081678539167604399066715561",
"264333276457183447272093335434081037843",
"174660598257762415537544168440138882580"
]
},
"signature_type": "Line",
"target": {
"file": "drivers/media/pci/ivtv/ivtvfb.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c766065e8272085ea9c436414b7ddf1f12e7787b",
"id": "CVE-2024-43877-a582cc60"
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"6280188610616049341625177315394831372",
"292462716006651222133519673268346185905",
"40035838727583870360705381870871673091",
"314348462212161853767613501955165728770",
"159540628357706315924596557610939044667",
"293673955284458704165695048004132466313",
"332202553572955963363878756641052246319",
"34062636083552758773848923676247110494"
]
},
"signature_type": "Line",
"target": {
"file": "drivers/media/pci/ivtv/ivtv-udma.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@629913d6d79508b166c66e07e4857e20233d85a9",
"id": "CVE-2024-43877-b5e6c838"
},
{
"digest": {
"length": 2520.0,
"function_hash": "280268860584768713621798119599828108453"
},
"signature_type": "Function",
"target": {
"function": "ivtv_yuv_prep_user_dma",
"file": "drivers/media/pci/ivtv/ivtv-yuv.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@24062aa7407091dee3e45a8e8037df437e848718",
"id": "CVE-2024-43877-d99a5d3f"
},
{
"digest": {
"length": 1053.0,
"function_hash": "336185516363491995936881075715470008106"
},
"signature_type": "Function",
"target": {
"function": "ivtvfb_prep_dec_dma_to_device",
"file": "drivers/media/pci/ivtv/ivtvfb.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3d8fd92939e21ff0d45100ab208f8124af79402a",
"id": "CVE-2024-43877-dc1b5126"
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"159540628357706315924596557610939044667",
"172984834403971215320538854144129135482",
"325066690646460899084892508346622921546",
"97096691751030125750943961757257004048"
]
},
"signature_type": "Line",
"target": {
"file": "drivers/media/pci/ivtv/ivtv-yuv.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@629913d6d79508b166c66e07e4857e20233d85a9",
"id": "CVE-2024-43877-dd47359d"
},
{
"digest": {
"length": 1053.0,
"function_hash": "336185516363491995936881075715470008106"
},
"signature_type": "Function",
"target": {
"function": "ivtvfb_prep_dec_dma_to_device",
"file": "drivers/media/pci/ivtv/ivtvfb.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@629913d6d79508b166c66e07e4857e20233d85a9",
"id": "CVE-2024-43877-e1b2efe0"
},
{
"digest": {
"length": 2502.0,
"function_hash": "323123488939663023904991608299521215938"
},
"signature_type": "Function",
"target": {
"function": "ivtv_yuv_prep_user_dma",
"file": "drivers/media/pci/ivtv/ivtv-yuv.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3d8fd92939e21ff0d45100ab208f8124af79402a",
"id": "CVE-2024-43877-e69dcda9"
},
{
"digest": {
"length": 1053.0,
"function_hash": "336185516363491995936881075715470008106"
},
"signature_type": "Function",
"target": {
"function": "ivtvfb_prep_dec_dma_to_device",
"file": "drivers/media/pci/ivtv/ivtvfb.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@24062aa7407091dee3e45a8e8037df437e848718",
"id": "CVE-2024-43877-fb41a219"
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"159540628357706315924596557610939044667",
"172984834403971215320538854144129135482",
"325066690646460899084892508346622921546",
"97096691751030125750943961757257004048"
]
},
"signature_type": "Line",
"target": {
"file": "drivers/media/pci/ivtv/ivtv-yuv.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c766065e8272085ea9c436414b7ddf1f12e7787b",
"id": "CVE-2024-43877-ff1b8a37"
}
]