In the Linux kernel, the following vulnerability has been resolved:
bpf: Fix potential array overflow in bpftrampolineget_progs()
The cnt value in the 'cnt >= BPFMAXTRAMPPROGS' check does not include BPFTRAMPMODIFYRETURN bpf programs, so the number of the attached BPFTRAMPMODIFYRETURN bpf programs in a trampoline can exceed BPFMAXTRAMPPROGS.
When this happens, the assignment '*progs++ = aux->prog' in bpftrampolinegetprogs() will cause progs array overflow as the progs field in the bpftrampprogs struct can only hold at most BPFMAXTRAMPPROGS bpf programs.
[
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e36452d5da6325df7c10cffc60a9e68d21e2606d",
"signature_version": "v1",
"digest": {
"line_hashes": [
"301615699986766578240363568666725848374",
"121197832042092980398806126554504247870",
"157266492360356756729641283318367549686",
"22301563294495285093439672435927773877",
"228560174464162209079630407811522533039",
"340056705499801710924014595700766847967",
"305335739198898969902872451636406068711",
"109867175353183464833377049202773286921",
"186363378051445914036558768831122770989",
"112013425631235479596958039866325002736",
"193724701572090863394601729735606138185",
"244748880995326103246735885127201384122",
"296813409857760956508118558209471572920",
"241183208543614056747008226884696357970",
"168405064713856846874135594463935451753",
"21623325247869079177970299631542131894",
"69849324079776749664028745682996852815",
"20480927464089386715094261787753404773",
"217541496058237730062858398098312813809",
"264219222872714071571350912718672324270",
"96033803673536499640760129914575649045",
"182321246685766345815205748875593329720"
],
"threshold": 0.9
},
"target": {
"file": "kernel/bpf/trampoline.c"
},
"id": "CVE-2022-49548-0ccb015e",
"deprecated": false,
"signature_type": "Line"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@32c4559c61652f24c9fdd5440342196fe37453bc",
"signature_version": "v1",
"digest": {
"line_hashes": [
"301615699986766578240363568666725848374",
"121197832042092980398806126554504247870",
"157266492360356756729641283318367549686",
"22301563294495285093439672435927773877",
"228560174464162209079630407811522533039",
"340056705499801710924014595700766847967",
"305335739198898969902872451636406068711",
"109867175353183464833377049202773286921",
"186363378051445914036558768831122770989",
"112013425631235479596958039866325002736",
"193724701572090863394601729735606138185",
"244748880995326103246735885127201384122",
"296813409857760956508118558209471572920",
"241183208543614056747008226884696357970",
"168405064713856846874135594463935451753",
"21623325247869079177970299631542131894",
"69849324079776749664028745682996852815",
"20480927464089386715094261787753404773",
"217541496058237730062858398098312813809",
"264219222872714071571350912718672324270",
"96033803673536499640760129914575649045",
"182321246685766345815205748875593329720"
],
"threshold": 0.9
},
"target": {
"file": "kernel/bpf/trampoline.c"
},
"id": "CVE-2022-49548-1168f2b2",
"deprecated": false,
"signature_type": "Line"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4f8897bcc20b9ae44758e0572538d741ab66f0dc",
"signature_version": "v1",
"digest": {
"function_hash": "34958413776297797364557840439996673704",
"length": 937.0
},
"target": {
"function": "bpf_trampoline_link_prog",
"file": "kernel/bpf/trampoline.c"
},
"id": "CVE-2022-49548-12d1a3c9",
"deprecated": false,
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7f845de2863334bed4f362e95853f5e7bc323737",
"signature_version": "v1",
"digest": {
"function_hash": "34958413776297797364557840439996673704",
"length": 937.0
},
"target": {
"function": "bpf_trampoline_link_prog",
"file": "kernel/bpf/trampoline.c"
},
"id": "CVE-2022-49548-1ebfaf52",
"deprecated": false,
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7f845de2863334bed4f362e95853f5e7bc323737",
"signature_version": "v1",
"digest": {
"function_hash": "293906494993082530402391941701887247221",
"length": 462.0
},
"target": {
"function": "bpf_trampoline_put",
"file": "kernel/bpf/trampoline.c"
},
"id": "CVE-2022-49548-32f4bbaf",
"deprecated": false,
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4f8897bcc20b9ae44758e0572538d741ab66f0dc",
"signature_version": "v1",
"digest": {
"line_hashes": [
"301615699986766578240363568666725848374",
"121197832042092980398806126554504247870",
"157266492360356756729641283318367549686",
"22301563294495285093439672435927773877",
"228560174464162209079630407811522533039",
"340056705499801710924014595700766847967",
"305335739198898969902872451636406068711",
"109867175353183464833377049202773286921",
"186363378051445914036558768831122770989",
"112013425631235479596958039866325002736",
"193724701572090863394601729735606138185",
"244748880995326103246735885127201384122",
"296813409857760956508118558209471572920",
"241183208543614056747008226884696357970",
"168405064713856846874135594463935451753",
"21623325247869079177970299631542131894",
"69849324079776749664028745682996852815",
"20480927464089386715094261787753404773",
"217541496058237730062858398098312813809",
"264219222872714071571350912718672324270",
"96033803673536499640760129914575649045",
"182321246685766345815205748875593329720"
],
"threshold": 0.9
},
"target": {
"file": "kernel/bpf/trampoline.c"
},
"id": "CVE-2022-49548-3f1e941f",
"deprecated": false,
"signature_type": "Line"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4f8897bcc20b9ae44758e0572538d741ab66f0dc",
"signature_version": "v1",
"digest": {
"function_hash": "293906494993082530402391941701887247221",
"length": 462.0
},
"target": {
"function": "bpf_trampoline_put",
"file": "kernel/bpf/trampoline.c"
},
"id": "CVE-2022-49548-434d6b83",
"deprecated": false,
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a2aa95b71c9bbec793b5c5fa50f0a80d882b3e8d",
"signature_version": "v1",
"digest": {
"line_hashes": [
"31356647161349858314948068861742869684",
"314089113206557361217261994272605577862",
"172316934520908363858903487560119266037",
"135439941717521882472151973050052905693",
"228560174464162209079630407811522533039",
"340056705499801710924014595700766847967",
"305335739198898969902872451636406068711",
"109867175353183464833377049202773286921",
"186363378051445914036558768831122770989",
"112013425631235479596958039866325002736",
"193724701572090863394601729735606138185",
"244748880995326103246735885127201384122",
"296813409857760956508118558209471572920",
"241183208543614056747008226884696357970",
"168405064713856846874135594463935451753",
"21623325247869079177970299631542131894",
"69849324079776749664028745682996852815",
"20480927464089386715094261787753404773",
"217541496058237730062858398098312813809",
"264219222872714071571350912718672324270",
"96033803673536499640760129914575649045",
"182321246685766345815205748875593329720"
],
"threshold": 0.9
},
"target": {
"file": "kernel/bpf/trampoline.c"
},
"id": "CVE-2022-49548-500b858f",
"deprecated": false,
"signature_type": "Line"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a2aa95b71c9bbec793b5c5fa50f0a80d882b3e8d",
"signature_version": "v1",
"digest": {
"function_hash": "148874279520106601646038400466875013519",
"length": 1148.0
},
"target": {
"function": "bpf_trampoline_link_prog",
"file": "kernel/bpf/trampoline.c"
},
"id": "CVE-2022-49548-675493e0",
"deprecated": false,
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e36452d5da6325df7c10cffc60a9e68d21e2606d",
"signature_version": "v1",
"digest": {
"function_hash": "34958413776297797364557840439996673704",
"length": 937.0
},
"target": {
"function": "bpf_trampoline_link_prog",
"file": "kernel/bpf/trampoline.c"
},
"id": "CVE-2022-49548-940d3f93",
"deprecated": false,
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7f845de2863334bed4f362e95853f5e7bc323737",
"signature_version": "v1",
"digest": {
"line_hashes": [
"301615699986766578240363568666725848374",
"121197832042092980398806126554504247870",
"157266492360356756729641283318367549686",
"22301563294495285093439672435927773877",
"228560174464162209079630407811522533039",
"340056705499801710924014595700766847967",
"305335739198898969902872451636406068711",
"109867175353183464833377049202773286921",
"186363378051445914036558768831122770989",
"112013425631235479596958039866325002736",
"193724701572090863394601729735606138185",
"244748880995326103246735885127201384122",
"296813409857760956508118558209471572920",
"241183208543614056747008226884696357970",
"168405064713856846874135594463935451753",
"21623325247869079177970299631542131894",
"69849324079776749664028745682996852815",
"20480927464089386715094261787753404773",
"217541496058237730062858398098312813809",
"264219222872714071571350912718672324270",
"96033803673536499640760129914575649045",
"182321246685766345815205748875593329720"
],
"threshold": 0.9
},
"target": {
"file": "kernel/bpf/trampoline.c"
},
"id": "CVE-2022-49548-9752098a",
"deprecated": false,
"signature_type": "Line"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e36452d5da6325df7c10cffc60a9e68d21e2606d",
"signature_version": "v1",
"digest": {
"function_hash": "293906494993082530402391941701887247221",
"length": 462.0
},
"target": {
"function": "bpf_trampoline_put",
"file": "kernel/bpf/trampoline.c"
},
"id": "CVE-2022-49548-983e6185",
"deprecated": false,
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@32c4559c61652f24c9fdd5440342196fe37453bc",
"signature_version": "v1",
"digest": {
"function_hash": "293906494993082530402391941701887247221",
"length": 462.0
},
"target": {
"function": "bpf_trampoline_put",
"file": "kernel/bpf/trampoline.c"
},
"id": "CVE-2022-49548-a15293a1",
"deprecated": false,
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a2aa95b71c9bbec793b5c5fa50f0a80d882b3e8d",
"signature_version": "v1",
"digest": {
"function_hash": "293906494993082530402391941701887247221",
"length": 462.0
},
"target": {
"function": "bpf_trampoline_put",
"file": "kernel/bpf/trampoline.c"
},
"id": "CVE-2022-49548-b0793d70",
"deprecated": false,
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@32c4559c61652f24c9fdd5440342196fe37453bc",
"signature_version": "v1",
"digest": {
"function_hash": "34958413776297797364557840439996673704",
"length": 937.0
},
"target": {
"function": "bpf_trampoline_link_prog",
"file": "kernel/bpf/trampoline.c"
},
"id": "CVE-2022-49548-fd535133",
"deprecated": false,
"signature_type": "Function"
}
]