Vulnerabilidad en Linux (CVE-2023-54247)
Gravedad:
Pendiente de análisis
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
30/12/2025
Última modificación:
31/12/2025
Descripción
En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta:<br />
<br />
bpf: Silenciar una advertencia en btf_type_id_size()<br />
<br />
syzbot informó una advertencia en [1] con el siguiente stacktrace:<br />
WARNING: CPU: 0 PID: 5005 at kernel/bpf/btf.c:1988 btf_type_id_size+0x2d9/0x9d0 kernel/bpf/btf.c:1988<br />
...<br />
RIP: 0010:btf_type_id_size+0x2d9/0x9d0 kernel/bpf/btf.c:1988<br />
...<br />
Traza de Llamada:<br />
<br />
map_check_btf kernel/bpf/syscall.c:1024 [inline]<br />
map_create+0x1157/0x1860 kernel/bpf/syscall.c:1198<br />
__sys_bpf+0x127f/0x5420 kernel/bpf/syscall.c:5040<br />
__do_sys_bpf kernel/bpf/syscall.c:5162 [inline]<br />
__se_sys_bpf kernel/bpf/syscall.c:5160 [inline]<br />
__x64_sys_bpf+0x79/0xc0 kernel/bpf/syscall.c:5160<br />
do_syscall_x64 arch/x86/entry/common.c:50 [inline]<br />
do_syscall_64+0x39/0xb0 arch/x86/entry/common.c:80<br />
entry_SYSCALL_64_after_hwframe+0x63/0xcd<br />
<br />
Con el siguiente btf<br />
[1] DECL_TAG &#39;a&#39; type_id=4 component_idx=-1<br />
[2] PTR &#39;(anon)&#39; type_id=0<br />
[3] TYPE_TAG &#39;a&#39; type_id=2<br />
[4] VAR &#39;a&#39; type_id=3, linkage=static<br />
y cuando bpf_attr.btf_key_type_id = 1 (DECL_TAG),<br />
el siguiente WARN_ON_ONCE en btf_type_id_size() se activa:<br />
if (WARN_ON_ONCE(!btf_type_is_modifier(size_type) &amp;&amp;<br />
!btf_type_is_var(size_type)))<br />
return NULL;<br />
<br />
Tenga en cuenta que &#39;return NULL&#39; es el comportamiento correcto ya que no queremos<br />
que un tipo DECL_TAG sea usado como btf_{key,value}_type_id incluso<br />
para el caso como &#39;DECL_TAG -&gt; STRUCT&#39;. Así que no hay<br />
ningún problema de corrección aquí, solo queremos silenciar la advertencia.<br />
<br />
Para silenciar la advertencia, agregué DECL_TAG como uno de los tipos en<br />
btf_type_nosize() lo que hará que btf_type_id_size() devuelva<br />
NULL antes sin la advertencia.<br />
<br />
[1] https://lore.kernel.org/bpf/000000000000e0df8d05fc75ba86@google.com/



