Cloudanix VulnDB

CVE-2023-54247

None

CVSS

—

EPSS

0.2%

Published

Dec 30, 2025

CISA due date

—

Cloudanix analysis

Monitor only SSVC: Track

A Linux kernel bug produced unnecessary warning messages when certain debugging data was used with eBPF programs, but the issue never allowed attacks or data exposure.

Exploitation
Local Privilege
Attacker needs
Low Privilege
Complexity
Theoretical
Impact
Other
Component
OS kernel
Class
Other
Remediation
Patch
Effort
Low
Patch risk
Low

What it actually does

Triggers an unnecessary kernel warning in btf_type_id_size() when a DECL_TAG BTF type is referenced via btf_key_type_id or btf_value_type_id during BPF map creation, because the function did not treat DECL_TAG as a size-less modifier type.

Why it matters to the business

Produces spurious warnings in kernel logs for workloads that use BTF metadata with eBPF maps, increasing log noise and potential alert fatigue without affecting system stability, security posture, or application behavior.

How an attack unfolds

An unprivileged process invokes the bpf syscall to create a map while supplying a BTF object containing a DECL_TAG that points to a VAR or STRUCT; the map_check_btf path then calls btf_type_id_size and hits the WARN_ON_ONCE, but the function correctly returns NULL with no further impact or privilege escalation possible.

How to fix it

Upgrade the Linux kernel to a version containing commit 61f4bd46a03a81865aca3bcbad2f7b7032fb3160 or later; for affected distributions also update elfutils to 0.188-2.1+e1 or newer.

How to confirm the fix worked

Confirm the fix commit is present in the running kernel source tree, or execute a test program that creates a BPF map using a DECL_TAG BTF type and verify no warning is logged at btf_type_id_size.

Typical attack path

  1. Construct BTF data containing a DECL_TAG type referencing another type
  2. Call bpf(BPF_MAP_CREATE) with btf_key_type_id or btf_value_type_id set to the DECL_TAG type ID
  3. Observe the kernel warning emitted from btf.c:1988

How to detect it

Search kernel logs (dmesg, journalctl, or /var/log/kern.log) for the exact warning emitted by btf_type_id_size when btf_attr.btf_key_type_id references a DECL_TAG; correlate with processes performing bpf syscalls that supply BTF data.

  • WARNING: CPU: .* PID: .* at kernel/bpf/btf.c:1988 btf_type_id_size+0x2d9/0x9d0
  • btf_type_id_size+0x2d9/0x9d0 kernel/bpf/btf.c:1988
  • map_check_btf kernel/bpf/syscall.c:1024
  • DECL_TAG 'a' type_id=4 component_idx=-1

What your security team should do

  • Prioritize kernel upgrades on systems that heavily use custom BTF or eBPF tooling
  • Add the btf_type_id_size warning string to log monitoring rules until patches are deployed
  • Review and prune any internal BTF generation code that emits DECL_TAG entries for map key/value types

The record

In the Linux kernel, the following vulnerability has been resolved: bpf: Silence a warning in btf_type_id_size() syzbot reported a warning in [1] with the following stacktrace: WARNING: CPU: 0 PID: 5005 at kernel/bpf/btf.c:1988 btf_type_id_size+0x2d9/0x9d0 kernel/bpf/btf.c:1988 ... RIP: 0010:btf_type_id_size+0x2d9/0x9d0 kernel/bpf/btf.c:1988 ... Call Trace: <TASK> map_check_btf kernel/bpf/syscall.c:1024 [inline] map_create+0x1157/0x1860 kernel/bpf/syscall.c:1198 __sys_bpf+0x127f/0x5420 kernel/bpf/syscall.c:5040 __do_sys_bpf kernel/bpf/syscall.c:5162 [inline] __se_sys_bpf kernel/bpf/syscall.c:5160 [inline] __x64_sys_bpf+0x79/0xc0 kernel/bpf/syscall.c:5160 do_syscall_x64 arch/x86/entry/common.c:50 [inline] do_syscall_64+0x39/0xb0 arch/x86/entry/common.c:80 entry_SYSCALL_64_after_hwframe+0x63/0xcd With the following btf [1] DECL_TAG 'a' type_id=4 component_idx=-1 [2] PTR '(anon)' type_id=0 [3] TYPE_TAG 'a' type_id=2 [4] VAR 'a' type_id=3, linkage=static and when the bpf_attr.btf_key_type_id = 1 (DECL_TAG), the following WARN_ON_ONCE in btf_type_id_size() is triggered: if (WARN_ON_ONCE(!btf_type_is_modifier(size_type) && !btf_type_is_var(size_type))) return NULL; Note that 'return NULL' is the correct behavior as we don't want a DECL_TAG type to be used as a btf_{key,value}_type_id even for the case like 'DECL_TAG -> STRUCT'. So there is no correctness issue here, we just want to silence warning. To silence the warning, I added DECL_TAG as one of kinds in btf_type_nosize() which will cause btf_type_id_size() returning NULL earlier without the warning. [1] https://lore.kernel.org/bpf/000000000000e0df8d05fc75ba86@google.com/

Affected packages

Ecosystem Package Introduced Fixed
Linux Kernel 0 6.1.110
Linux Kernel 5.16.0 6.1.110
SUSE:Linux Enterprise High Availability Extension 15 SP6 kernel-default 0 6.4.0-150600.23.84.1
SUSE:Linux Enterprise Live Patching 15 SP6 kernel-default 0 6.4.0-150600.23.84.1
SUSE:Linux Enterprise Live Patching 15 SP6 kernel-livepatch-SLE15-SP6_Update_19 0 1-150600.13.3.1
SUSE:Linux Enterprise Server 15 SP6-LTSS kernel-64kb 0 6.4.0-150600.23.84.1
SUSE:Linux Enterprise Server 15 SP6-LTSS kernel-default 0 6.4.0-150600.23.84.1
SUSE:Linux Enterprise Server 15 SP6-LTSS kernel-default-base 0 6.4.0-150600.23.84.1.150600.12.38.1
SUSE:Linux Enterprise Server 15 SP6-LTSS kernel-docs 0 6.4.0-150600.23.84.1
SUSE:Linux Enterprise Server 15 SP6-LTSS kernel-obs-build 0 6.4.0-150600.23.84.1
SUSE:Linux Enterprise Server 15 SP6-LTSS kernel-source 0 6.4.0-150600.23.84.1
SUSE:Linux Enterprise Server 15 SP6-LTSS kernel-syms 0 6.4.0-150600.23.84.1
SUSE:Linux Enterprise Server 15 SP6-LTSS kernel-zfcpdump 0 6.4.0-150600.23.84.1
SUSE:Linux Enterprise Server for SAP Applications 15 SP6 kernel-default 0 6.4.0-150600.23.84.1
SUSE:Linux Enterprise Server for SAP Applications 15 SP6 kernel-default-base 0 6.4.0-150600.23.84.1.150600.12.38.1
SUSE:Linux Enterprise Server for SAP Applications 15 SP6 kernel-docs 0 6.4.0-150600.23.84.1
SUSE:Linux Enterprise Server for SAP Applications 15 SP6 kernel-obs-build 0 6.4.0-150600.23.84.1
SUSE:Linux Enterprise Server for SAP Applications 15 SP6 kernel-source 0 6.4.0-150600.23.84.1
SUSE:Linux Enterprise Server for SAP Applications 15 SP6 kernel-syms 0 6.4.0-150600.23.84.1
openSUSE:Leap 15.6 dtb-aarch64 0 6.4.0-150600.23.84.1
openSUSE:Leap 15.6 kernel-64kb 0 6.4.0-150600.23.84.1
openSUSE:Leap 15.6 kernel-debug 0 6.4.0-150600.23.84.1
openSUSE:Leap 15.6 kernel-default 0 6.4.0-150600.23.84.1
openSUSE:Leap 15.6 kernel-default-base 0 6.4.0-150600.23.84.1.150600.12.38.1
openSUSE:Leap 15.6 kernel-docs 0 6.4.0-150600.23.84.1
openSUSE:Leap 15.6 kernel-kvmsmall 0 6.4.0-150600.23.84.1
openSUSE:Leap 15.6 kernel-obs-build 0 6.4.0-150600.23.84.1
openSUSE:Leap 15.6 kernel-obs-qa 0 6.4.0-150600.23.84.1
openSUSE:Leap 15.6 kernel-source 0 6.4.0-150600.23.84.1
openSUSE:Leap 15.6 kernel-syms 0 6.4.0-150600.23.84.1
openSUSE:Leap 15.6 kernel-zfcpdump 0 6.4.0-150600.23.84.1

Related vulnerabilities