LiveActive security incident?Get immediate response
CVE Record

CVE-2022-49228: bpf: Fix a btf decl_tag bug when tagging a function

In the Linux kernel, the following vulnerability has been resolved: bpf: Fix a btf decl_tag bug when tagging a function syzbot reported a btf decl_tag bug with stack trace below: general protection fault, probably for non-canonical address 0xdffffc0000000000: 0000 [#1] PREEMPT SMP KASAN KASAN: null-ptr-deref in range [0x0000000000000000-0x0000000000000007] CPU: 0 PID: 3592 Comm: syz-executor914 Not tainted 5.16.0-syzkaller-11424-gb7892f7d5cb2 #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 RIP: 0010:btf_type_vlen include/linux/btf.h:231 [inline] RIP: 0010:btf_decl_tag_resolve+0x83e/0xaa0 kernel/bpf/btf.c:3910 ... Call Trace: <TASK> btf_resolve+0x251/0x1020 kernel/bpf/btf.c:4198 btf_check_all_types kernel/bpf/btf.c:4239 [inline] btf_parse_type_sec kernel/bpf/btf.c:4280 [inline] btf_parse kernel/bpf/btf.c:4513 [inline] btf_new_fd+0x19fe/0x2370 kernel/bpf/btf.c:6047 bpf_btf_load kernel/bpf/syscall.c:4039 [inline] __sys_bpf+0x1cbb/0x5970 kernel/bpf/syscall.c:4679 __do_sys_bpf kernel/bpf/syscall.c:4738 [inline] __se_sys_bpf kernel/bpf/syscall.c:4736 [inline] __x64_sys_bpf+0x75/0xb0 kernel/bpf/syscall.c:4736 do_syscall_x64 arch/x86/entry/common.c:50 [inline] do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80 entry_SYSCALL_64_after_hwframe+0x44/0xae The kasan error is triggered with an illegal BTF like below: type 0: void type 1: int type 2: decl_tag to func type 3 type 3: func to func_proto type 8 The total number of types is 4 and the type 3 is illegal since its func_proto type is out of range. Currently, the target type of decl_tag can be struct/union, var or func. Both struct/union and var implemented their own 'resolve' callback functions and hence handled properly in kernel. But func type doesn't have 'resolve' callback function. When btf_decl_tag_resolve() tries to check func type, it tries to get vlen of its func_proto type, which triggered the above kasan error. To fix the issue, btf_decl_tag_resolve() needs to do btf_func_check() before trying to accessing func_proto type. In the current implementation, func type is checked with btf_func_check() in the main checking function btf_check_all_types(). To fix the above kasan issue, let us implement 'resolve' callback func type properly. The 'resolve' callback will be also called in btf_check_all_types() for func types.

UnknownCVSS not scoredNot KEV-listedUpdated
Glexia's TakeAutomated analysismoderate

Security readout for executives and security teams

Plain-English summary

CVE-2022-49228 is a Linux kernel BPF/BTF validation bug. A malformed BTF object can cause a kernel general protection fault during BPF type loading. The source describes a crash, not data theft or remote compromise. Business urgency is highest for Linux systems that run affected kernels and allow local users or workloads to use BPF interfaces.

Executive priority

Treat as a stability and availability risk for affected Linux systems, especially shared hosts. No public source here supports active exploitation or remote attack. Patch through normal kernel update channels, with higher priority where untrusted local users or workloads can interact with BPF.

Technical view

The bug is in kernel/bpf/btf.c handling of BTF decl_tag applied to a function. For an illegal BTF where a func points to an out-of-range func_proto, btf_decl_tag_resolve() accessed func_proto details before proper func validation, triggering a KASAN null-pointer dereference/general protection fault. The fix adds proper func resolve handling and btf_func_check() before access.

Likely exposure

Exposure appears local and kernel-specific. Systems running affected Linux 5.16-era kernels with reachable BPF BTF load functionality are the primary concern. Container hosts, developer systems, and multi-tenant Linux servers deserve review. The provided data does not establish remote exposure or privilege escalation.

Exploitation context

The source cites syzbot discovery and a crashing kernel trace through the bpf syscall BTF load path. CISA KEV status is false, and no cited source states active exploitation. Practical exploitability depends on local access, kernel version, BPF configuration, and permissions.

Researcher notes

Affected-version data in the bundle is limited and should be reconciled with distro advisories. The core issue is missing func-type resolve validation for decl_tag targets before accessing func_proto metadata. The references are Linux stable commits; review them to map exact backports.

Mitigation direction

  • Update to a vendor kernel containing the referenced stable fixes.
  • Prioritize multi-user and container-host Linux systems first.
  • Review vendor advisories for exact fixed package versions.
  • Restrict unnecessary BPF access according to vendor guidance.
  • Monitor for kernel crash reports involving btf_decl_tag_resolve.

Validation and detection

  • Inventory Linux kernel versions across affected fleets.
  • Check whether installed kernels include the referenced stable commits.
  • Confirm vendor packages map to fixed kernel builds.
  • Review BPF availability and policy on shared systems.
  • Search kernel logs for related general protection faults.
Prepared
Confidence
medium
Sources
5

Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.

Potential ATT&CK relevance

Conservative CVE-to-ATT&CK context

These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.

ATT&CK lookup starting points

Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.

cve · low confidence lookup

CVE-2022-49228 mapping review

Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.

Open ATT&CK lookup
Vulnerability profileCVE Program record
Severity
Unknown
CVSS
Not scored
Known Exploited
No
Published
Official CVE source material

CNA and ADP enrichment extracted from CVE v5

These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.

0CVSS vectors
3Timeline events
0ADP providers
4Source links

Vulnerability timeline

Timeline events are normalized from CVE metadata, CNA source timelines, ADP timelines, and KEV metadata when present.

  1. CVE reservedCVE Program

    The CVE ID was reserved by the assigning CNA.

  2. CVE publishedCVE Program

    The CVE record was published.

  3. CVE updatedCVE Program

    The CVE record metadata indicates this as the latest update time.

Affected products

Products and packages named in the record

VendorProductVersion / packageStatus
LinuxLinuxb5ea834dde6b6e7f75e51d5f66dac8cd7c97b5ef, b5ea834dde6b6e7f75e51d5f66dac8cd7c97b5ef, b5ea834dde6b6e7f75e51d5f66dac8cd7c97b5efunaffected
LinuxLinux5.16, 0, 5.16.19, 5.17.2, 5.18affected
Weakness

CWE details

No CWE listed

CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.