In the Linux kernel, the following vulnerability has been resolved:
drm/connector: hdmi: Fix memory leak in drmdisplaymodefromcea_vic()
modprobe drmconnectortest and then rmmod drmconnectortest, the following memory leak occurs.
The mode allocated in drmmodeduplicate() called by
drmdisplaymodefromcea_vic() is not freed, which cause the memory leak:
unreferenced object 0xffffff80cb0ee400 (size 128):
comm "kunit_try_catch", pid 1948, jiffies 4294950339
hex dump (first 32 bytes):
14 44 02 00 80 07 d8 07 04 08 98 08 00 00 38 04 .D............8.
3c 04 41 04 65 04 00 00 05 00 00 00 00 00 00 00 <.A.e...........
backtrace (crc 90e9585c):
[<00000000ec42e3d7>] kmemleak_alloc+0x34/0x40
[<00000000d0ef055a>] __kmalloc_cache_noprof+0x26c/0x2f4
[<00000000c2062161>] drm_mode_duplicate+0x44/0x19c
[<00000000f96c74aa>] drm_display_mode_from_cea_vic+0x88/0x98
[<00000000d8f2c8b4>] 0xffffffdc982a4868
[<000000005d164dbc>] kunit_try_run_case+0x13c/0x3ac
[<000000006fb23398>] kunit_generic_run_threadfn_adapter+0x80/0xec
[<000000006ea56ca0>] kthread+0x2e8/0x374
[<000000000676063f>] ret_from_fork+0x10/0x20
......
Free mode by using drmkunitdisplaymodefromceavic()
to fix it.
[
{
"id": "CVE-2024-50214-1687dcd0",
"signature_type": "Function",
"signature_version": "v1",
"target": {
"function": "drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc",
"file": "drivers/gpu/drm/tests/drm_connector_test.c"
},
"digest": {
"length": 392.0,
"function_hash": "106889213743565593743142501642216869947"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@926163342a2e7595d950e84c17c693b1272bd491",
"deprecated": false
},
{
"id": "CVE-2024-50214-18760469",
"signature_type": "Function",
"signature_version": "v1",
"target": {
"function": "drm_test_connector_hdmi_compute_mode_clock_yuv420_valid",
"file": "drivers/gpu/drm/tests/drm_connector_test.c"
},
"digest": {
"length": 479.0,
"function_hash": "102690501034393950319950167367456453579"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@926163342a2e7595d950e84c17c693b1272bd491",
"deprecated": false
},
{
"id": "CVE-2024-50214-3620843c",
"signature_type": "Function",
"signature_version": "v1",
"target": {
"function": "drm_test_drm_hdmi_compute_mode_clock_rgb",
"file": "drivers/gpu/drm/tests/drm_connector_test.c"
},
"digest": {
"length": 400.0,
"function_hash": "98163949424520184707132426462883337175"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@926163342a2e7595d950e84c17c693b1272bd491",
"deprecated": false
},
{
"id": "CVE-2024-50214-3a83d8c5",
"signature_type": "Function",
"signature_version": "v1",
"target": {
"function": "drm_test_drm_hdmi_compute_mode_clock_rgb_double",
"file": "drivers/gpu/drm/tests/drm_connector_test.c"
},
"digest": {
"length": 407.0,
"function_hash": "330546721672051462776463709801354847033"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@df2b00685cd33cd85be8910c7d6d22c4ebbf18bb",
"deprecated": false
},
{
"id": "CVE-2024-50214-43bc18e0",
"signature_type": "Function",
"signature_version": "v1",
"target": {
"function": "drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc",
"file": "drivers/gpu/drm/tests/drm_connector_test.c"
},
"digest": {
"length": 473.0,
"function_hash": "129862235998855462024594755713132271526"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@926163342a2e7595d950e84c17c693b1272bd491",
"deprecated": false
},
{
"id": "CVE-2024-50214-4595b53b",
"signature_type": "Function",
"signature_version": "v1",
"target": {
"function": "drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1",
"file": "drivers/gpu/drm/tests/drm_connector_test.c"
},
"digest": {
"length": 281.0,
"function_hash": "165381688944920425314374058338835301706"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@df2b00685cd33cd85be8910c7d6d22c4ebbf18bb",
"deprecated": false
},
{
"id": "CVE-2024-50214-4c501e28",
"signature_type": "Function",
"signature_version": "v1",
"target": {
"function": "drm_test_connector_hdmi_compute_mode_clock_yuv420_valid",
"file": "drivers/gpu/drm/tests/drm_connector_test.c"
},
"digest": {
"length": 479.0,
"function_hash": "102690501034393950319950167367456453579"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@df2b00685cd33cd85be8910c7d6d22c4ebbf18bb",
"deprecated": false
},
{
"id": "CVE-2024-50214-75d09e04",
"signature_type": "Function",
"signature_version": "v1",
"target": {
"function": "drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc",
"file": "drivers/gpu/drm/tests/drm_connector_test.c"
},
"digest": {
"length": 392.0,
"function_hash": "106889213743565593743142501642216869947"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@df2b00685cd33cd85be8910c7d6d22c4ebbf18bb",
"deprecated": false
},
{
"id": "CVE-2024-50214-84622306",
"signature_type": "Function",
"signature_version": "v1",
"target": {
"function": "drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc",
"file": "drivers/gpu/drm/tests/drm_connector_test.c"
},
"digest": {
"length": 393.0,
"function_hash": "294946229395329055010091799739608491243"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@926163342a2e7595d950e84c17c693b1272bd491",
"deprecated": false
},
{
"id": "CVE-2024-50214-9610af8b",
"signature_type": "Function",
"signature_version": "v1",
"target": {
"function": "drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc",
"file": "drivers/gpu/drm/tests/drm_connector_test.c"
},
"digest": {
"length": 390.0,
"function_hash": "129771642148088450827427033069505909732"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@df2b00685cd33cd85be8910c7d6d22c4ebbf18bb",
"deprecated": false
},
{
"id": "CVE-2024-50214-969a079c",
"signature_type": "Function",
"signature_version": "v1",
"target": {
"function": "drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1",
"file": "drivers/gpu/drm/tests/drm_connector_test.c"
},
"digest": {
"length": 281.0,
"function_hash": "172176497033289700457545814816879649948"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@df2b00685cd33cd85be8910c7d6d22c4ebbf18bb",
"deprecated": false
},
{
"id": "CVE-2024-50214-96cb0d65",
"signature_type": "Line",
"signature_version": "v1",
"target": {
"file": "drivers/gpu/drm/tests/drm_connector_test.c"
},
"digest": {
"line_hashes": [
"323152744198229921015997058589105907735",
"60337235738759377777584757607719109090",
"126338778410549440956198448761561758979",
"246957993710378189115079583931930858776",
"323152744198229921015997058589105907735",
"60337235738759377777584757607719109090",
"126338778410549440956198448761561758979",
"235507539466273218805297711975554798681",
"323933398754937679489938818605349436358",
"135661809114501519123242629217289758812",
"251360247900447944206219628171044423771",
"243355132939722224932739533593288928085",
"323152744198229921015997058589105907735",
"60337235738759377777584757607719109090",
"126338778410549440956198448761561758979",
"331795212383020016822333748935912818831",
"323933398754937679489938818605349436358",
"135661809114501519123242629217289758812",
"123436471003725354776519702564101425107",
"142030015871470830370072682816901537484",
"246344291121208990793315345036445324650",
"124623714686051203223054235381814844964",
"233382553802039933769897259426841216337",
"180168819341920546032582883705743493986",
"173375029049372714581634971921645621971",
"170737962480423555497463368582221420967",
"66845799571548542592880830222429657220",
"21252821336708810098519007328137506003",
"254569727308711960132125619040628301717",
"264272398651006053858360597543340061914",
"78384865163473247873544867029424948129",
"242881162402712770587278320863583281348",
"254569727308711960132125619040628301717",
"264272398651006053858360597543340061914",
"78384865163473247873544867029424948129",
"66507373582142019014191705327510319739",
"311364997795404714864419284340700515116",
"68187539961651980345162229348720990231",
"329727432347349176384322392729265516688",
"164965221298320970657412466539074777875",
"311364997795404714864419284340700515116",
"68187539961651980345162229348720990231",
"329727432347349176384322392729265516688",
"278656810835217140090620435191278523642",
"311364997795404714864419284340700515116",
"68187539961651980345162229348720990231",
"329727432347349176384322392729265516688",
"82993564776577772553074473143822550037"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@df2b00685cd33cd85be8910c7d6d22c4ebbf18bb",
"deprecated": false
},
{
"id": "CVE-2024-50214-982bd9a7",
"signature_type": "Function",
"signature_version": "v1",
"target": {
"function": "drm_test_drm_hdmi_compute_mode_clock_rgb_double",
"file": "drivers/gpu/drm/tests/drm_connector_test.c"
},
"digest": {
"length": 407.0,
"function_hash": "330546721672051462776463709801354847033"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@926163342a2e7595d950e84c17c693b1272bd491",
"deprecated": false
},
{
"id": "CVE-2024-50214-9afedd9a",
"signature_type": "Function",
"signature_version": "v1",
"target": {
"function": "drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc",
"file": "drivers/gpu/drm/tests/drm_connector_test.c"
},
"digest": {
"length": 393.0,
"function_hash": "294946229395329055010091799739608491243"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@df2b00685cd33cd85be8910c7d6d22c4ebbf18bb",
"deprecated": false
},
{
"id": "CVE-2024-50214-9c67c476",
"signature_type": "Function",
"signature_version": "v1",
"target": {
"function": "drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc",
"file": "drivers/gpu/drm/tests/drm_connector_test.c"
},
"digest": {
"length": 390.0,
"function_hash": "129771642148088450827427033069505909732"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@926163342a2e7595d950e84c17c693b1272bd491",
"deprecated": false
},
{
"id": "CVE-2024-50214-9fc2c125",
"signature_type": "Function",
"signature_version": "v1",
"target": {
"function": "drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc",
"file": "drivers/gpu/drm/tests/drm_connector_test.c"
},
"digest": {
"length": 473.0,
"function_hash": "129862235998855462024594755713132271526"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@df2b00685cd33cd85be8910c7d6d22c4ebbf18bb",
"deprecated": false
},
{
"id": "CVE-2024-50214-aa313b95",
"signature_type": "Function",
"signature_version": "v1",
"target": {
"function": "drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc",
"file": "drivers/gpu/drm/tests/drm_connector_test.c"
},
"digest": {
"length": 390.0,
"function_hash": "43031249730183275933524855393835808094"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@926163342a2e7595d950e84c17c693b1272bd491",
"deprecated": false
},
{
"id": "CVE-2024-50214-ab9d12d5",
"signature_type": "Function",
"signature_version": "v1",
"target": {
"function": "drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1",
"file": "drivers/gpu/drm/tests/drm_connector_test.c"
},
"digest": {
"length": 281.0,
"function_hash": "172176497033289700457545814816879649948"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@926163342a2e7595d950e84c17c693b1272bd491",
"deprecated": false
},
{
"id": "CVE-2024-50214-ae8c1345",
"signature_type": "Function",
"signature_version": "v1",
"target": {
"function": "drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc",
"file": "drivers/gpu/drm/tests/drm_connector_test.c"
},
"digest": {
"length": 473.0,
"function_hash": "138996791834428393264761886802247948800"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@926163342a2e7595d950e84c17c693b1272bd491",
"deprecated": false
},
{
"id": "CVE-2024-50214-b7ca9de9",
"signature_type": "Function",
"signature_version": "v1",
"target": {
"function": "drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc",
"file": "drivers/gpu/drm/tests/drm_connector_test.c"
},
"digest": {
"length": 390.0,
"function_hash": "43031249730183275933524855393835808094"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@df2b00685cd33cd85be8910c7d6d22c4ebbf18bb",
"deprecated": false
},
{
"id": "CVE-2024-50214-c924ff51",
"signature_type": "Function",
"signature_version": "v1",
"target": {
"function": "drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1",
"file": "drivers/gpu/drm/tests/drm_connector_test.c"
},
"digest": {
"length": 281.0,
"function_hash": "165381688944920425314374058338835301706"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@926163342a2e7595d950e84c17c693b1272bd491",
"deprecated": false
},
{
"id": "CVE-2024-50214-da9791de",
"signature_type": "Function",
"signature_version": "v1",
"target": {
"function": "drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc",
"file": "drivers/gpu/drm/tests/drm_connector_test.c"
},
"digest": {
"length": 393.0,
"function_hash": "44401160242342147785152380939619252566"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@df2b00685cd33cd85be8910c7d6d22c4ebbf18bb",
"deprecated": false
},
{
"id": "CVE-2024-50214-ec570f45",
"signature_type": "Function",
"signature_version": "v1",
"target": {
"function": "drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc",
"file": "drivers/gpu/drm/tests/drm_connector_test.c"
},
"digest": {
"length": 473.0,
"function_hash": "138996791834428393264761886802247948800"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@df2b00685cd33cd85be8910c7d6d22c4ebbf18bb",
"deprecated": false
},
{
"id": "CVE-2024-50214-edf9cfd1",
"signature_type": "Function",
"signature_version": "v1",
"target": {
"function": "drm_test_drm_hdmi_compute_mode_clock_rgb",
"file": "drivers/gpu/drm/tests/drm_connector_test.c"
},
"digest": {
"length": 400.0,
"function_hash": "98163949424520184707132426462883337175"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@df2b00685cd33cd85be8910c7d6d22c4ebbf18bb",
"deprecated": false
},
{
"id": "CVE-2024-50214-f1752238",
"signature_type": "Function",
"signature_version": "v1",
"target": {
"function": "drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc",
"file": "drivers/gpu/drm/tests/drm_connector_test.c"
},
"digest": {
"length": 393.0,
"function_hash": "44401160242342147785152380939619252566"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@926163342a2e7595d950e84c17c693b1272bd491",
"deprecated": false
},
{
"id": "CVE-2024-50214-f72890a4",
"signature_type": "Line",
"signature_version": "v1",
"target": {
"file": "drivers/gpu/drm/tests/drm_connector_test.c"
},
"digest": {
"line_hashes": [
"323152744198229921015997058589105907735",
"60337235738759377777584757607719109090",
"126338778410549440956198448761561758979",
"246957993710378189115079583931930858776",
"323152744198229921015997058589105907735",
"60337235738759377777584757607719109090",
"126338778410549440956198448761561758979",
"235507539466273218805297711975554798681",
"323933398754937679489938818605349436358",
"135661809114501519123242629217289758812",
"251360247900447944206219628171044423771",
"243355132939722224932739533593288928085",
"323152744198229921015997058589105907735",
"60337235738759377777584757607719109090",
"126338778410549440956198448761561758979",
"331795212383020016822333748935912818831",
"323933398754937679489938818605349436358",
"135661809114501519123242629217289758812",
"123436471003725354776519702564101425107",
"142030015871470830370072682816901537484",
"246344291121208990793315345036445324650",
"124623714686051203223054235381814844964",
"233382553802039933769897259426841216337",
"180168819341920546032582883705743493986",
"173375029049372714581634971921645621971",
"170737962480423555497463368582221420967",
"66845799571548542592880830222429657220",
"21252821336708810098519007328137506003",
"254569727308711960132125619040628301717",
"264272398651006053858360597543340061914",
"78384865163473247873544867029424948129",
"242881162402712770587278320863583281348",
"254569727308711960132125619040628301717",
"264272398651006053858360597543340061914",
"78384865163473247873544867029424948129",
"66507373582142019014191705327510319739",
"311364997795404714864419284340700515116",
"68187539961651980345162229348720990231",
"329727432347349176384322392729265516688",
"164965221298320970657412466539074777875",
"311364997795404714864419284340700515116",
"68187539961651980345162229348720990231",
"329727432347349176384322392729265516688",
"278656810835217140090620435191278523642",
"311364997795404714864419284340700515116",
"68187539961651980345162229348720990231",
"329727432347349176384322392729265516688",
"82993564776577772553074473143822550037"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@926163342a2e7595d950e84c17c693b1272bd491",
"deprecated": false
}
]