In the Linux kernel, the following vulnerability has been resolved:
KVM: Use dedicated mutex to protect kvmusagecount to avoid deadlock
Use a dedicated mutex to guard kvmusagecount to fix a potential deadlock on x86 due to a chain of locks and SRCU synchronizations. Translating the below lockdep splat, CPU1 #6 will wait on CPU0 #1, CPU0 #8 will wait on CPU2 #3, and CPU2 #7 will wait on CPU1 #4 (if there's a writer, due to the fairness of r/w semaphores).
CPU0                     CPU1                     CPU2
1 lock(&kvm->slotslock); 2 lock(&vcpu->mutex); 3 lock(&kvm->srcu); 4 lock(cpuhotpluglock); 5 lock(kvmlock); 6 lock(&kvm->slotslock); 7 lock(cpuhotplug_lock); 8 sync(&kvm->srcu);
Note, there are likely more potential deadlocks in KVM x86, e.g. the same pattern of taking cpuhotpluglock outside of kvmlock likely exists with _kvmclockcpufreqnotifier():
cpuhpcpufreqonline() | -> cpufreqonline() | -> cpufreqgovperformancelimits() | -> _cpufreqdrivertarget() | -> _targetindex() | -> cpufreqfreqtransitionbegin() | -> cpufreqnotifytransition() | -> ... _kvmclockcpufreq_notifier()
But, actually triggering such deadlocks is beyond rare due to the combination of dependencies and timings involved. E.g. the cpufreq notifier is only used on older CPUs without a constant TSC, mucking with the NX hugepage mitigation while VMs are running is very uncommon, and doing so while also onlining/offlining a CPU (necessary to generate contention on cpuhotpluglock) would be even more unusual.
The most robust solution to the general cpuhotpluglock issue is likely to switch vmlist to be an RCU-protected list, e.g. so that x86's cpufreq notifier doesn't to take kvmlock. For now, settle for fixing the most blatant deadlock, as switching to an RCU-protected list is a much more involved change, but add a comment in locking.rst to call out that care needs to be taken when walking holding kvmlock and walking vmlist.
====================================================== WARNING: possible circular locking dependency detected 6.10.0-smp--c257535a0c9d-pip #330 Tainted: G S O
tee/35048 is trying to acquire lock: ff6a80eced71e0a8 (&kvm->slotslock){+.+.}-{3:3}, at: setnxhugepages+0x179/0x1e0 [kvm]
but task is already holding lock: ffffffffc07abb08 (kvmlock){+.+.}-{3:3}, at: setnxhugepages+0x14a/0x1e0 [kvm]
which lock already depends on the new lock.
the existing dependency chain (in reverse order) is:
-> #3 (kvmlock){+.+.}-{3:3}: _mutexlock+0x6a/0xb40 mutexlocknested+0x1f/0x30 kvmdevioctl+0x4fb/0xe50 [kvm] _sesysioctl+0x7b/0xd0 _x64sysioctl+0x21/0x30 x64syscall+0x15d0/0x2e60 dosyscall64+0x83/0x160 entrySYSCALL64after_hwframe+0x76/0x7e
-> #2 (cpuhotpluglock){++++}-{0:0}: cpusreadlock+0x2e/0xb0 statickeyslowinc+0x16/0x30 kvmlapicsetbase+0x6a/0x1c0 [kvm] kvmsetapicbase+0x8f/0xe0 [kvm] kvmsetmsrcommon+0x9ae/0xf80 [kvm] vmxsetmsr+0xa54/0xbe0 [kvmintel] _kvmsetmsr+0xb6/0x1a0 [kvm] kvmarchvcpuioctl+0xeca/0x10c0 [kvm] kvmvcpuioctl+0x485/0x5b0 [kvm] _sesysioctl+0x7b/0xd0 _x64sysioctl+0x21/0x30 x64syscall+0x15d0/0x2e60 dosyscall64+0x83/0x160 entrySYSCALL64after_hwframe+0x76/0x7e
-> #1 (&kvm->srcu){.+.+}-{0:0}: _synchronizesrcu+0x44/0x1a0
---truncated---
[
    {
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@760a196e6dcb29580e468b44b5400171dae184d8",
        "target": {
            "function": "kvm_suspend",
            "file": "virt/kvm/kvm_main.c"
        },
        "deprecated": false,
        "id": "CVE-2024-47744-093098cf",
        "signature_version": "v1",
        "digest": {
            "length": 130.0,
            "function_hash": "162862309046941462455541795198923120874"
        },
        "signature_type": "Function"
    },
    {
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@760a196e6dcb29580e468b44b5400171dae184d8",
        "target": {
            "function": "kvm_resume",
            "file": "virt/kvm/kvm_main.c"
        },
        "deprecated": false,
        "id": "CVE-2024-47744-0972c9e2",
        "signature_version": "v1",
        "digest": {
            "length": 127.0,
            "function_hash": "4056720247229842350784265049053564901"
        },
        "signature_type": "Function"
    },
    {
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@44d17459626052a2390457e550a12cb973506b2f",
        "target": {
            "function": "hardware_enable_all",
            "file": "virt/kvm/kvm_main.c"
        },
        "deprecated": false,
        "id": "CVE-2024-47744-11b5351a",
        "signature_version": "v1",
        "digest": {
            "length": 467.0,
            "function_hash": "226879671056064293238209628458679605939"
        },
        "signature_type": "Function"
    },
    {
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4777225ec89f52bb9ca16a33cfb44c189f1b7b47",
        "target": {
            "function": "kvm_suspend",
            "file": "virt/kvm/kvm_main.c"
        },
        "deprecated": false,
        "id": "CVE-2024-47744-126a22b3",
        "signature_version": "v1",
        "digest": {
            "length": 130.0,
            "function_hash": "162862309046941462455541795198923120874"
        },
        "signature_type": "Function"
    },
    {
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a2764afce521fd9fd7a5ff6ed52ac2095873128a",
        "target": {
            "function": "hardware_disable_all",
            "file": "virt/kvm/kvm_main.c"
        },
        "deprecated": false,
        "id": "CVE-2024-47744-12f18425",
        "signature_version": "v1",
        "digest": {
            "length": 132.0,
            "function_hash": "31553346347363562219787696277821235121"
        },
        "signature_type": "Function"
    },
    {
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@44d17459626052a2390457e550a12cb973506b2f",
        "target": {
            "function": "hardware_disable_all",
            "file": "virt/kvm/kvm_main.c"
        },
        "deprecated": false,
        "id": "CVE-2024-47744-2251ab2c",
        "signature_version": "v1",
        "digest": {
            "length": 132.0,
            "function_hash": "31553346347363562219787696277821235121"
        },
        "signature_type": "Function"
    },
    {
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a2764afce521fd9fd7a5ff6ed52ac2095873128a",
        "target": {
            "function": "hardware_enable_all",
            "file": "virt/kvm/kvm_main.c"
        },
        "deprecated": false,
        "id": "CVE-2024-47744-2edff704",
        "signature_version": "v1",
        "digest": {
            "length": 467.0,
            "function_hash": "226879671056064293238209628458679605939"
        },
        "signature_type": "Function"
    },
    {
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@760a196e6dcb29580e468b44b5400171dae184d8",
        "target": {
            "function": "hardware_enable_all",
            "file": "virt/kvm/kvm_main.c"
        },
        "deprecated": false,
        "id": "CVE-2024-47744-41b12379",
        "signature_version": "v1",
        "digest": {
            "length": 467.0,
            "function_hash": "226879671056064293238209628458679605939"
        },
        "signature_type": "Function"
    },
    {
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@760a196e6dcb29580e468b44b5400171dae184d8",
        "target": {
            "function": "kvm_online_cpu",
            "file": "virt/kvm/kvm_main.c"
        },
        "deprecated": false,
        "id": "CVE-2024-47744-4480cd10",
        "signature_version": "v1",
        "digest": {
            "length": 175.0,
            "function_hash": "32543928597330072929264640358171803331"
        },
        "signature_type": "Function"
    },
    {
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@44d17459626052a2390457e550a12cb973506b2f",
        "target": {
            "function": "kvm_suspend",
            "file": "virt/kvm/kvm_main.c"
        },
        "deprecated": false,
        "id": "CVE-2024-47744-45a9c47e",
        "signature_version": "v1",
        "digest": {
            "length": 130.0,
            "function_hash": "162862309046941462455541795198923120874"
        },
        "signature_type": "Function"
    },
    {
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a2764afce521fd9fd7a5ff6ed52ac2095873128a",
        "target": {
            "function": "kvm_resume",
            "file": "virt/kvm/kvm_main.c"
        },
        "deprecated": false,
        "id": "CVE-2024-47744-4e8fe40c",
        "signature_version": "v1",
        "digest": {
            "length": 127.0,
            "function_hash": "4056720247229842350784265049053564901"
        },
        "signature_type": "Function"
    },
    {
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4777225ec89f52bb9ca16a33cfb44c189f1b7b47",
        "target": {
            "function": "kvm_online_cpu",
            "file": "virt/kvm/kvm_main.c"
        },
        "deprecated": false,
        "id": "CVE-2024-47744-5ca6510c",
        "signature_version": "v1",
        "digest": {
            "length": 175.0,
            "function_hash": "32543928597330072929264640358171803331"
        },
        "signature_type": "Function"
    },
    {
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@44d17459626052a2390457e550a12cb973506b2f",
        "target": {
            "function": "kvm_resume",
            "file": "virt/kvm/kvm_main.c"
        },
        "deprecated": false,
        "id": "CVE-2024-47744-61f56e3a",
        "signature_version": "v1",
        "digest": {
            "length": 127.0,
            "function_hash": "4056720247229842350784265049053564901"
        },
        "signature_type": "Function"
    },
    {
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4777225ec89f52bb9ca16a33cfb44c189f1b7b47",
        "target": {
            "function": "hardware_enable_all",
            "file": "virt/kvm/kvm_main.c"
        },
        "deprecated": false,
        "id": "CVE-2024-47744-655f1b96",
        "signature_version": "v1",
        "digest": {
            "length": 467.0,
            "function_hash": "226879671056064293238209628458679605939"
        },
        "signature_type": "Function"
    },
    {
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@44d17459626052a2390457e550a12cb973506b2f",
        "target": {
            "function": "kvm_offline_cpu",
            "file": "virt/kvm/kvm_main.c"
        },
        "deprecated": false,
        "id": "CVE-2024-47744-6b11947a",
        "signature_version": "v1",
        "digest": {
            "length": 156.0,
            "function_hash": "116630814602067638115755804805873082771"
        },
        "signature_type": "Function"
    },
    {
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@44d17459626052a2390457e550a12cb973506b2f",
        "target": {
            "function": "kvm_online_cpu",
            "file": "virt/kvm/kvm_main.c"
        },
        "deprecated": false,
        "id": "CVE-2024-47744-6cc530c5",
        "signature_version": "v1",
        "digest": {
            "length": 175.0,
            "function_hash": "32543928597330072929264640358171803331"
        },
        "signature_type": "Function"
    },
    {
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a2764afce521fd9fd7a5ff6ed52ac2095873128a",
        "target": {
            "file": "virt/kvm/kvm_main.c"
        },
        "deprecated": false,
        "id": "CVE-2024-47744-6dac8b99",
        "signature_version": "v1",
        "digest": {
            "threshold": 0.9,
            "line_hashes": [
                "312338852417191288298232901425109238925",
                "1252386076715162540021778264416596109",
                "26655600416287658087347162164033774076",
                "324806326080024591061497306660677202207",
                "195834919455784321906756037997815768605",
                "28798381943027610955296356100264886172",
                "194120402710243195147186344129139788549",
                "30144847690917600152485719935337061976",
                "83925545263814638825231700195513232786",
                "58347318894509197125459914225488915526",
                "41759706300568001695242192140544272119",
                "128797593879026906886185804305576272279",
                "217099727512195228273295429796195455970",
                "4663390246891255484586219951050100158",
                "338258613669118884203217366363894810141",
                "276965703202076250733590453257476096514",
                "240917508284113230976496056974965003855",
                "257132774658421515766757738888093104772",
                "306952782713167511339561542482712838044",
                "11110450730766231094866875970488484826",
                "106986723368340508150092927520056330525",
                "311238249482394395891194700671134789537",
                "294925261810099973004339736730422986232",
                "50621241718526344692353122672365572571",
                "328943223569809737393668743393678184755",
                "22714941014393991756898118281539717055",
                "147790108907959593356307955329906074298",
                "319224810319353682624640124797634063251",
                "47340170369101777806969526392620123948",
                "36717038322544283748351676411047969799",
                "269676339257740409261026951163165781232",
                "160897007092713714680662452861462591857",
                "132386388070607763710138831343141286286",
                "77048152745878353641469134896712411815",
                "181847746522569310580116833169483881859",
                "129072956320863344738052059835441328322",
                "30903368054430284423464153181072305861",
                "102881888278438521793079313699173622622",
                "181847746522569310580116833169483881859",
                "159402885704969350069481244748788465565"
            ]
        },
        "signature_type": "Line"
    },
    {
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@760a196e6dcb29580e468b44b5400171dae184d8",
        "target": {
            "file": "virt/kvm/kvm_main.c"
        },
        "deprecated": false,
        "id": "CVE-2024-47744-6f2b0e4f",
        "signature_version": "v1",
        "digest": {
            "threshold": 0.9,
            "line_hashes": [
                "312338852417191288298232901425109238925",
                "1252386076715162540021778264416596109",
                "26655600416287658087347162164033774076",
                "324806326080024591061497306660677202207",
                "195834919455784321906756037997815768605",
                "28798381943027610955296356100264886172",
                "194120402710243195147186344129139788549",
                "30144847690917600152485719935337061976",
                "83925545263814638825231700195513232786",
                "58347318894509197125459914225488915526",
                "41759706300568001695242192140544272119",
                "128797593879026906886185804305576272279",
                "217099727512195228273295429796195455970",
                "4663390246891255484586219951050100158",
                "338258613669118884203217366363894810141",
                "276965703202076250733590453257476096514",
                "240917508284113230976496056974965003855",
                "257132774658421515766757738888093104772",
                "306952782713167511339561542482712838044",
                "11110450730766231094866875970488484826",
                "106986723368340508150092927520056330525",
                "311238249482394395891194700671134789537",
                "294925261810099973004339736730422986232",
                "50621241718526344692353122672365572571",
                "328943223569809737393668743393678184755",
                "22714941014393991756898118281539717055",
                "147790108907959593356307955329906074298",
                "319224810319353682624640124797634063251",
                "47340170369101777806969526392620123948",
                "36717038322544283748351676411047969799",
                "269676339257740409261026951163165781232",
                "160897007092713714680662452861462591857",
                "132386388070607763710138831343141286286",
                "77048152745878353641469134896712411815",
                "181847746522569310580116833169483881859",
                "129072956320863344738052059835441328322",
                "30903368054430284423464153181072305861",
                "102881888278438521793079313699173622622",
                "181847746522569310580116833169483881859",
                "159402885704969350069481244748788465565"
            ]
        },
        "signature_type": "Line"
    },
    {
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@760a196e6dcb29580e468b44b5400171dae184d8",
        "target": {
            "function": "kvm_offline_cpu",
            "file": "virt/kvm/kvm_main.c"
        },
        "deprecated": false,
        "id": "CVE-2024-47744-756fd488",
        "signature_version": "v1",
        "digest": {
            "length": 156.0,
            "function_hash": "116630814602067638115755804805873082771"
        },
        "signature_type": "Function"
    },
    {
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a2764afce521fd9fd7a5ff6ed52ac2095873128a",
        "target": {
            "function": "kvm_suspend",
            "file": "virt/kvm/kvm_main.c"
        },
        "deprecated": false,
        "id": "CVE-2024-47744-7a9207e8",
        "signature_version": "v1",
        "digest": {
            "length": 130.0,
            "function_hash": "162862309046941462455541795198923120874"
        },
        "signature_type": "Function"
    },
    {
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4777225ec89f52bb9ca16a33cfb44c189f1b7b47",
        "target": {
            "function": "kvm_offline_cpu",
            "file": "virt/kvm/kvm_main.c"
        },
        "deprecated": false,
        "id": "CVE-2024-47744-7ea423da",
        "signature_version": "v1",
        "digest": {
            "length": 156.0,
            "function_hash": "116630814602067638115755804805873082771"
        },
        "signature_type": "Function"
    },
    {
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4777225ec89f52bb9ca16a33cfb44c189f1b7b47",
        "target": {
            "function": "hardware_disable_all",
            "file": "virt/kvm/kvm_main.c"
        },
        "deprecated": false,
        "id": "CVE-2024-47744-88dcb080",
        "signature_version": "v1",
        "digest": {
            "length": 132.0,
            "function_hash": "31553346347363562219787696277821235121"
        },
        "signature_type": "Function"
    },
    {
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@760a196e6dcb29580e468b44b5400171dae184d8",
        "target": {
            "function": "hardware_disable_all",
            "file": "virt/kvm/kvm_main.c"
        },
        "deprecated": false,
        "id": "CVE-2024-47744-ad2784c7",
        "signature_version": "v1",
        "digest": {
            "length": 132.0,
            "function_hash": "31553346347363562219787696277821235121"
        },
        "signature_type": "Function"
    },
    {
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@44d17459626052a2390457e550a12cb973506b2f",
        "target": {
            "file": "virt/kvm/kvm_main.c"
        },
        "deprecated": false,
        "id": "CVE-2024-47744-bac9a6d3",
        "signature_version": "v1",
        "digest": {
            "threshold": 0.9,
            "line_hashes": [
                "312338852417191288298232901425109238925",
                "1252386076715162540021778264416596109",
                "26655600416287658087347162164033774076",
                "324806326080024591061497306660677202207",
                "195834919455784321906756037997815768605",
                "28798381943027610955296356100264886172",
                "194120402710243195147186344129139788549",
                "30144847690917600152485719935337061976",
                "83925545263814638825231700195513232786",
                "58347318894509197125459914225488915526",
                "41759706300568001695242192140544272119",
                "128797593879026906886185804305576272279",
                "217099727512195228273295429796195455970",
                "4663390246891255484586219951050100158",
                "338258613669118884203217366363894810141",
                "276965703202076250733590453257476096514",
                "240917508284113230976496056974965003855",
                "257132774658421515766757738888093104772",
                "306952782713167511339561542482712838044",
                "11110450730766231094866875970488484826",
                "106986723368340508150092927520056330525",
                "311238249482394395891194700671134789537",
                "294925261810099973004339736730422986232",
                "50621241718526344692353122672365572571",
                "328943223569809737393668743393678184755",
                "22714941014393991756898118281539717055",
                "147790108907959593356307955329906074298",
                "319224810319353682624640124797634063251",
                "47340170369101777806969526392620123948",
                "36717038322544283748351676411047969799",
                "269676339257740409261026951163165781232",
                "160897007092713714680662452861462591857",
                "132386388070607763710138831343141286286",
                "77048152745878353641469134896712411815",
                "181847746522569310580116833169483881859",
                "129072956320863344738052059835441328322",
                "30903368054430284423464153181072305861",
                "102881888278438521793079313699173622622",
                "181847746522569310580116833169483881859",
                "159402885704969350069481244748788465565"
            ]
        },
        "signature_type": "Line"
    },
    {
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4777225ec89f52bb9ca16a33cfb44c189f1b7b47",
        "target": {
            "file": "virt/kvm/kvm_main.c"
        },
        "deprecated": false,
        "id": "CVE-2024-47744-c7a0ecb7",
        "signature_version": "v1",
        "digest": {
            "threshold": 0.9,
            "line_hashes": [
                "312338852417191288298232901425109238925",
                "1252386076715162540021778264416596109",
                "26655600416287658087347162164033774076",
                "324806326080024591061497306660677202207",
                "195834919455784321906756037997815768605",
                "28798381943027610955296356100264886172",
                "194120402710243195147186344129139788549",
                "30144847690917600152485719935337061976",
                "83925545263814638825231700195513232786",
                "58347318894509197125459914225488915526",
                "41759706300568001695242192140544272119",
                "128797593879026906886185804305576272279",
                "217099727512195228273295429796195455970",
                "4663390246891255484586219951050100158",
                "338258613669118884203217366363894810141",
                "276965703202076250733590453257476096514",
                "240917508284113230976496056974965003855",
                "257132774658421515766757738888093104772",
                "306952782713167511339561542482712838044",
                "11110450730766231094866875970488484826",
                "106986723368340508150092927520056330525",
                "311238249482394395891194700671134789537",
                "294925261810099973004339736730422986232",
                "50621241718526344692353122672365572571",
                "328943223569809737393668743393678184755",
                "22714941014393991756898118281539717055",
                "147790108907959593356307955329906074298",
                "319224810319353682624640124797634063251",
                "47340170369101777806969526392620123948",
                "36717038322544283748351676411047969799",
                "269676339257740409261026951163165781232",
                "160897007092713714680662452861462591857",
                "132386388070607763710138831343141286286",
                "77048152745878353641469134896712411815",
                "181847746522569310580116833169483881859",
                "129072956320863344738052059835441328322",
                "30903368054430284423464153181072305861",
                "102881888278438521793079313699173622622",
                "181847746522569310580116833169483881859",
                "159402885704969350069481244748788465565"
            ]
        },
        "signature_type": "Line"
    },
    {
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a2764afce521fd9fd7a5ff6ed52ac2095873128a",
        "target": {
            "function": "kvm_online_cpu",
            "file": "virt/kvm/kvm_main.c"
        },
        "deprecated": false,
        "id": "CVE-2024-47744-d09e0621",
        "signature_version": "v1",
        "digest": {
            "length": 175.0,
            "function_hash": "32543928597330072929264640358171803331"
        },
        "signature_type": "Function"
    },
    {
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4777225ec89f52bb9ca16a33cfb44c189f1b7b47",
        "target": {
            "function": "kvm_resume",
            "file": "virt/kvm/kvm_main.c"
        },
        "deprecated": false,
        "id": "CVE-2024-47744-dd2ee580",
        "signature_version": "v1",
        "digest": {
            "length": 127.0,
            "function_hash": "4056720247229842350784265049053564901"
        },
        "signature_type": "Function"
    },
    {
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a2764afce521fd9fd7a5ff6ed52ac2095873128a",
        "target": {
            "function": "kvm_offline_cpu",
            "file": "virt/kvm/kvm_main.c"
        },
        "deprecated": false,
        "id": "CVE-2024-47744-dee682fb",
        "signature_version": "v1",
        "digest": {
            "length": 156.0,
            "function_hash": "116630814602067638115755804805873082771"
        },
        "signature_type": "Function"
    }
]