Vulnerabilities

With the aim of informing, warning and helping professionals with the latest security vulnerabilities in technology systems, we have made a database available for users interested in this information, which is in Spanish and includes all of the latest documented and recognised vulnerabilities.

This repository, with over 75,000 registers, is based on the information from the NVD (National Vulnerability Database) – by virtue of a partnership agreement – through which INCIBE translates the included information into Spanish.

On occasions this list will show vulnerabilities that have still not been translated, as they are added while the INCIBE team is still carrying out the translation process. The CVE  (Common Vulnerabilities and Exposures) Standard for Information Security Vulnerability Names is used with the aim to support the exchange of information between different tools and databases.

All vulnerabilities collected are linked to different information sources, as well as available patches or solutions provided by manufacturers and developers. It is possible to carry out advanced searches, as there is the option to select different criteria to narrow down the results, some examples being vulnerability types, manufacturers and impact levels, among others.

Through RSS feeds or Newsletters we can be informed daily about the latest vulnerabilities added to the repository. Below there is a list, updated daily, where you can discover the latest vulnerabilities.

CVE-2025-22075

Publication date:
16/04/2025
In the Linux kernel, the following vulnerability has been resolved:<br /> <br /> rtnetlink: Allocate vfinfo size for VF GUIDs when supported<br /> <br /> Commit 30aad41721e0 ("net/core: Add support for getting VF GUIDs")<br /> added support for getting VF port and node GUIDs in netlink ifinfo<br /> messages, but their size was not taken into consideration in the<br /> function that allocates the netlink message, causing the following<br /> warning when a netlink message is filled with many VF port and node<br /> GUIDs:<br /> # echo 64 &gt; /sys/bus/pci/devices/0000\:08\:00.0/sriov_numvfs<br /> # ip link show dev ib0<br /> RTNETLINK answers: Message too long<br /> Cannot send link get request: Message too long<br /> <br /> Kernel warning:<br /> <br /> ------------[ cut here ]------------<br /> WARNING: CPU: 2 PID: 1930 at net/core/rtnetlink.c:4151 rtnl_getlink+0x586/0x5a0<br /> Modules linked in: xt_conntrack xt_MASQUERADE nfnetlink xt_addrtype iptable_nat nf_nat br_netfilter overlay mlx5_ib macsec mlx5_core tls rpcrdma rdma_ucm ib_uverbs ib_iser libiscsi scsi_transport_iscsi ib_umad rdma_cm iw_cm ib_ipoib fuse ib_cm ib_core<br /> CPU: 2 UID: 0 PID: 1930 Comm: ip Not tainted 6.14.0-rc2+ #1<br /> Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.13.0-0-gf21b5a4aeb02-prebuilt.qemu.org 04/01/2014<br /> RIP: 0010:rtnl_getlink+0x586/0x5a0<br /> Code: cb 82 e8 3d af 0a 00 4d 85 ff 0f 84 08 ff ff ff 4c 89 ff 41 be ea ff ff ff e8 66 63 5b ff 49 c7 07 80 4f cb 82 e9 36 fc ff ff 0b e9 16 fe ff ff e8 de a0 56 00 66 66 2e 0f 1f 84 00 00 00 00<br /> RSP: 0018:ffff888113557348 EFLAGS: 00010246<br /> RAX: 00000000ffffffa6 RBX: ffff88817e87aa34 RCX: dffffc0000000000<br /> RDX: 0000000000000003 RSI: 0000000000000000 RDI: ffff88817e87afb8<br /> RBP: 0000000000000009 R08: ffffffff821f44aa R09: 0000000000000000<br /> R10: ffff8881260f79a8 R11: ffff88817e87af00 R12: ffff88817e87aa00<br /> R13: ffffffff8563d300 R14: 00000000ffffffa6 R15: 00000000ffffffff<br /> FS: 00007f63a5dbf280(0000) GS:ffff88881ee00000(0000) knlGS:0000000000000000<br /> CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033<br /> CR2: 00007f63a5ba4493 CR3: 00000001700fe002 CR4: 0000000000772eb0<br /> DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000<br /> DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400<br /> PKRU: 55555554<br /> Call Trace:<br /> <br /> ? __warn+0xa5/0x230<br /> ? rtnl_getlink+0x586/0x5a0<br /> ? report_bug+0x22d/0x240<br /> ? handle_bug+0x53/0xa0<br /> ? exc_invalid_op+0x14/0x50<br /> ? asm_exc_invalid_op+0x16/0x20<br /> ? skb_trim+0x6a/0x80<br /> ? rtnl_getlink+0x586/0x5a0<br /> ? __pfx_rtnl_getlink+0x10/0x10<br /> ? rtnetlink_rcv_msg+0x1e5/0x860<br /> ? __pfx___mutex_lock+0x10/0x10<br /> ? rcu_is_watching+0x34/0x60<br /> ? __pfx_lock_acquire+0x10/0x10<br /> ? stack_trace_save+0x90/0xd0<br /> ? filter_irq_stacks+0x1d/0x70<br /> ? kasan_save_stack+0x30/0x40<br /> ? kasan_save_stack+0x20/0x40<br /> ? kasan_save_track+0x10/0x30<br /> rtnetlink_rcv_msg+0x21c/0x860<br /> ? entry_SYSCALL_64_after_hwframe+0x76/0x7e<br /> ? __pfx_rtnetlink_rcv_msg+0x10/0x10<br /> ? arch_stack_walk+0x9e/0xf0<br /> ? rcu_is_watching+0x34/0x60<br /> ? lock_acquire+0xd5/0x410<br /> ? rcu_is_watching+0x34/0x60<br /> netlink_rcv_skb+0xe0/0x210<br /> ? __pfx_rtnetlink_rcv_msg+0x10/0x10<br /> ? __pfx_netlink_rcv_skb+0x10/0x10<br /> ? rcu_is_watching+0x34/0x60<br /> ? __pfx___netlink_lookup+0x10/0x10<br /> ? lock_release+0x62/0x200<br /> ? netlink_deliver_tap+0xfd/0x290<br /> ? rcu_is_watching+0x34/0x60<br /> ? lock_release+0x62/0x200<br /> ? netlink_deliver_tap+0x95/0x290<br /> netlink_unicast+0x31f/0x480<br /> ? __pfx_netlink_unicast+0x10/0x10<br /> ? rcu_is_watching+0x34/0x60<br /> ? lock_acquire+0xd5/0x410<br /> netlink_sendmsg+0x369/0x660<br /> ? lock_release+0x62/0x200<br /> ? __pfx_netlink_sendmsg+0x10/0x10<br /> ? import_ubuf+0xb9/0xf0<br /> ? __import_iovec+0x254/0x2b0<br /> ? lock_release+0x62/0x200<br /> ? __pfx_netlink_sendmsg+0x10/0x10<br /> ____sys_sendmsg+0x559/0x5a0<br /> ? __pfx_____sys_sendmsg+0x10/0x10<br /> ? __pfx_copy_msghdr_from_user+0x10/0x10<br /> ? rcu_is_watching+0x34/0x60<br /> ? do_read_fault+0x213/0x4a0<br /> ? rcu_is_watching+0x34/0x60<br /> ___sys_sendmsg+0xe4/0x150<br /> ? __pfx____sys_sendmsg+0x10/0x10<br /> ? do_fault+0x2cc/0x6f0<br /> ? handle_pte_fault+0x2e3/0x3d0<br /> ? __pfx_handle_pte_fault+0x10/0x10<br /> ---truncated---
Severity CVSS v4.0: Pending analysis
Last modification:
03/11/2025

CVE-2025-22069

Publication date:
16/04/2025
In the Linux kernel, the following vulnerability has been resolved:<br /> <br /> riscv: fgraph: Fix stack layout to match __arch_ftrace_regs argument of ftrace_return_to_handler<br /> <br /> Naresh Kamboju reported a "Bad frame pointer" kernel warning while<br /> running LTP trace ftrace_stress_test.sh in riscv. We can reproduce the<br /> same issue with the following command:<br /> <br /> ```<br /> $ cd /sys/kernel/debug/tracing<br /> $ echo &amp;#39;f:myprobe do_nanosleep%return args1=$retval&amp;#39; &gt; dynamic_events<br /> $ echo 1 &gt; events/fprobes/enable<br /> $ echo 1 &gt; tracing_on<br /> $ sleep 1<br /> ```<br /> <br /> And we can get the following kernel warning:<br /> <br /> [ 127.692888] ------------[ cut here ]------------<br /> [ 127.693755] Bad frame pointer: expected ff2000000065be50, received ba34c141e9594000<br /> [ 127.693755] from func do_nanosleep return to ffffffff800ccb16<br /> [ 127.698699] WARNING: CPU: 1 PID: 129 at kernel/trace/fgraph.c:755 ftrace_return_to_handler+0x1b2/0x1be<br /> [ 127.699894] Modules linked in:<br /> [ 127.700908] CPU: 1 UID: 0 PID: 129 Comm: sleep Not tainted 6.14.0-rc3-g0ab191c74642 #32<br /> [ 127.701453] Hardware name: riscv-virtio,qemu (DT)<br /> [ 127.701859] epc : ftrace_return_to_handler+0x1b2/0x1be<br /> [ 127.702032] ra : ftrace_return_to_handler+0x1b2/0x1be<br /> [ 127.702151] epc : ffffffff8013b5e0 ra : ffffffff8013b5e0 sp : ff2000000065bd10<br /> [ 127.702221] gp : ffffffff819c12f8 tp : ff60000080853100 t0 : 6e00000000000000<br /> [ 127.702284] t1 : 0000000000000020 t2 : 6e7566206d6f7266 s0 : ff2000000065bd80<br /> [ 127.702346] s1 : ff60000081262000 a0 : 000000000000007b a1 : ffffffff81894f20<br /> [ 127.702408] a2 : 0000000000000010 a3 : fffffffffffffffe a4 : 0000000000000000<br /> [ 127.702470] a5 : 0000000000000000 a6 : 0000000000000008 a7 : 0000000000000038<br /> [ 127.702530] s2 : ba34c141e9594000 s3 : 0000000000000000 s4 : ff2000000065bdd0<br /> [ 127.702591] s5 : 00007fff8adcf400 s6 : 000055556dc1d8c0 s7 : 0000000000000068<br /> [ 127.702651] s8 : 00007fff8adf5d10 s9 : 000000000000006d s10: 0000000000000001<br /> [ 127.702710] s11: 00005555737377c8 t3 : ffffffff819d899e t4 : ffffffff819d899e<br /> [ 127.702769] t5 : ffffffff819d89a0 t6 : ff2000000065bb18<br /> [ 127.702826] status: 0000000200000120 badaddr: 0000000000000000 cause: 0000000000000003<br /> [ 127.703292] [] ftrace_return_to_handler+0x1b2/0x1be<br /> [ 127.703760] [] return_to_handler+0x16/0x26<br /> [ 127.704009] [] return_to_handler+0x0/0x26<br /> [ 127.704057] [] common_nsleep+0x42/0x54<br /> [ 127.704117] [] __riscv_sys_clock_nanosleep+0xba/0x10a<br /> [ 127.704176] [] do_trap_ecall_u+0x188/0x218<br /> [ 127.704295] [] handle_exception+0x14a/0x156<br /> [ 127.705436] ---[ end trace 0000000000000000 ]---<br /> <br /> The reason is that the stack layout for constructing argument for the<br /> ftrace_return_to_handler in the return_to_handler does not match the<br /> __arch_ftrace_regs structure of riscv, leading to unexpected results.
Severity CVSS v4.0: Pending analysis
Last modification:
06/04/2026

CVE-2025-22064

Publication date:
16/04/2025
In the Linux kernel, the following vulnerability has been resolved:<br /> <br /> netfilter: nf_tables: don&amp;#39;t unregister hook when table is dormant<br /> <br /> When nf_tables_updchain encounters an error, hook registration needs to<br /> be rolled back.<br /> <br /> This should only be done if the hook has been registered, which won&amp;#39;t<br /> happen when the table is flagged as dormant (inactive).<br /> <br /> Just move the assignment into the registration block.
Severity CVSS v4.0: Pending analysis
Last modification:
31/10/2025

CVE-2025-22065

Publication date:
16/04/2025
In the Linux kernel, the following vulnerability has been resolved:<br /> <br /> idpf: fix adapter NULL pointer dereference on reboot<br /> <br /> With SRIOV enabled, idpf ends up calling into idpf_remove() twice.<br /> First via idpf_shutdown() and then again when idpf_remove() calls into<br /> sriov_disable(), because the VF devices use the idpf driver, hence the<br /> same remove routine. When that happens, it is possible for the adapter<br /> to be NULL from the first call to idpf_remove(), leading to a NULL<br /> pointer dereference.<br /> <br /> echo 1 &gt; /sys/class/net//device/sriov_numvfs<br /> reboot<br /> <br /> BUG: kernel NULL pointer dereference, address: 0000000000000020<br /> ...<br /> RIP: 0010:idpf_remove+0x22/0x1f0 [idpf]<br /> ...<br /> ? idpf_remove+0x22/0x1f0 [idpf]<br /> ? idpf_remove+0x1e4/0x1f0 [idpf]<br /> pci_device_remove+0x3f/0xb0<br /> device_release_driver_internal+0x19f/0x200<br /> pci_stop_bus_device+0x6d/0x90<br /> pci_stop_and_remove_bus_device+0x12/0x20<br /> pci_iov_remove_virtfn+0xbe/0x120<br /> sriov_disable+0x34/0xe0<br /> idpf_sriov_configure+0x58/0x140 [idpf]<br /> idpf_remove+0x1b9/0x1f0 [idpf]<br /> idpf_shutdown+0x12/0x30 [idpf]<br /> pci_device_shutdown+0x35/0x60<br /> device_shutdown+0x156/0x200<br /> ...<br /> <br /> Replace the direct idpf_remove() call in idpf_shutdown() with<br /> idpf_vc_core_deinit() and idpf_deinit_dflt_mbx(), which perform<br /> the bulk of the cleanup, such as stopping the init task, freeing IRQs,<br /> destroying the vports and freeing the mailbox. This avoids the calls to<br /> sriov_disable() in addition to a small netdev cleanup, and destroying<br /> workqueues, which don&amp;#39;t seem to be required on shutdown.
Severity CVSS v4.0: Pending analysis
Last modification:
01/10/2025

CVE-2025-22067

Publication date:
16/04/2025
In the Linux kernel, the following vulnerability has been resolved:<br /> <br /> spi: cadence: Fix out-of-bounds array access in cdns_mrvl_xspi_setup_clock()<br /> <br /> If requested_clk &gt; 128, cdns_mrvl_xspi_setup_clock() iterates over the<br /> entire cdns_mrvl_xspi_clk_div_list array without breaking out early,<br /> causing &amp;#39;i&amp;#39; to go beyond the array bounds.<br /> <br /> Fix that by stopping the loop when it gets to the last entry, clamping<br /> the clock to the minimum 6.25 MHz.<br /> <br /> Fixes the following warning with an UBSAN kernel:<br /> <br /> vmlinux.o: warning: objtool: cdns_mrvl_xspi_setup_clock: unexpected end of section .text.cdns_mrvl_xspi_setup_clock
Severity CVSS v4.0: Pending analysis
Last modification:
01/10/2025

CVE-2025-22066

Publication date:
16/04/2025
In the Linux kernel, the following vulnerability has been resolved:<br /> <br /> ASoC: imx-card: Add NULL check in imx_card_probe()<br /> <br /> devm_kasprintf() returns NULL when memory allocation fails. Currently,<br /> imx_card_probe() does not check for this case, which results in a NULL<br /> pointer dereference.<br /> <br /> Add NULL check after devm_kasprintf() to prevent this issue.
Severity CVSS v4.0: Pending analysis
Last modification:
03/11/2025

CVE-2025-22057

Publication date:
16/04/2025
In the Linux kernel, the following vulnerability has been resolved:<br /> <br /> net: decrease cached dst counters in dst_release<br /> <br /> Upstream fix ac888d58869b ("net: do not delay dst_entries_add() in<br /> dst_release()") moved decrementing the dst count from dst_destroy to<br /> dst_release to avoid accessing already freed data in case of netns<br /> dismantle. However in case CONFIG_DST_CACHE is enabled and OvS+tunnels<br /> are used, this fix is incomplete as the same issue will be seen for<br /> cached dsts:<br /> <br /> Unable to handle kernel paging request at virtual address ffff5aabf6b5c000<br /> Call trace:<br /> percpu_counter_add_batch+0x3c/0x160 (P)<br /> dst_release+0xec/0x108<br /> dst_cache_destroy+0x68/0xd8<br /> dst_destroy+0x13c/0x168<br /> dst_destroy_rcu+0x1c/0xb0<br /> rcu_do_batch+0x18c/0x7d0<br /> rcu_core+0x174/0x378<br /> rcu_core_si+0x18/0x30<br /> <br /> Fix this by invalidating the cache, and thus decrementing cached dst<br /> counters, in dst_release too.
Severity CVSS v4.0: Pending analysis
Last modification:
31/10/2025

CVE-2025-22061

Publication date:
16/04/2025
In the Linux kernel, the following vulnerability has been resolved:<br /> <br /> net: airoha: Fix qid report in airoha_tc_get_htb_get_leaf_queue()<br /> <br /> Fix the following kernel warning deleting HTB offloaded leafs and/or root<br /> HTB qdisc in airoha_eth driver properly reporting qid in<br /> airoha_tc_get_htb_get_leaf_queue routine.<br /> <br /> $tc qdisc replace dev eth1 root handle 10: htb offload<br /> $tc class add dev eth1 arent 10: classid 10:4 htb rate 100mbit ceil 100mbit<br /> $tc qdisc replace dev eth1 parent 10:4 handle 4: ets bands 8 \<br /> quanta 1514 3028 4542 6056 7570 9084 10598 12112<br /> $tc qdisc del dev eth1 root<br /> <br /> [ 55.827864] ------------[ cut here ]------------<br /> [ 55.832493] WARNING: CPU: 3 PID: 2678 at 0xffffffc0798695a4<br /> [ 55.956510] CPU: 3 PID: 2678 Comm: tc Tainted: G O 6.6.71 #0<br /> [ 55.963557] Hardware name: Airoha AN7581 Evaluation Board (DT)<br /> [ 55.969383] pstate: 20400005 (nzCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)<br /> [ 55.976344] pc : 0xffffffc0798695a4<br /> [ 55.979851] lr : 0xffffffc079869a20<br /> [ 55.983358] sp : ffffffc0850536a0<br /> [ 55.986665] x29: ffffffc0850536a0 x28: 0000000000000024 x27: 0000000000000001<br /> [ 55.993800] x26: 0000000000000000 x25: ffffff8008b19000 x24: ffffff800222e800<br /> [ 56.000935] x23: 0000000000000001 x22: 0000000000000000 x21: ffffff8008b19000<br /> [ 56.008071] x20: ffffff8002225800 x19: ffffff800379d000 x18: 0000000000000000<br /> [ 56.015206] x17: ffffffbf9ea59000 x16: ffffffc080018000 x15: 0000000000000000<br /> [ 56.022342] x14: 0000000000000000 x13: 0000000000000000 x12: 0000000000000001<br /> [ 56.029478] x11: ffffffc081471008 x10: ffffffc081575a98 x9 : 0000000000000000<br /> [ 56.036614] x8 : ffffffc08167fd40 x7 : ffffffc08069e104 x6 : ffffff8007f86000<br /> [ 56.043748] x5 : 0000000000000000 x4 : 0000000000000000 x3 : 0000000000000001<br /> [ 56.050884] x2 : 0000000000000000 x1 : 0000000000000250 x0 : ffffff800222c000<br /> [ 56.058020] Call trace:<br /> [ 56.060459] 0xffffffc0798695a4<br /> [ 56.063618] 0xffffffc079869a20<br /> [ 56.066777] __qdisc_destroy+0x40/0xa0<br /> [ 56.070528] qdisc_put+0x54/0x6c<br /> [ 56.073748] qdisc_graft+0x41c/0x648<br /> [ 56.077324] tc_get_qdisc+0x168/0x2f8<br /> [ 56.080978] rtnetlink_rcv_msg+0x230/0x330<br /> [ 56.085076] netlink_rcv_skb+0x5c/0x128<br /> [ 56.088913] rtnetlink_rcv+0x14/0x1c<br /> [ 56.092490] netlink_unicast+0x1e0/0x2c8<br /> [ 56.096413] netlink_sendmsg+0x198/0x3c8<br /> [ 56.100337] ____sys_sendmsg+0x1c4/0x274<br /> [ 56.104261] ___sys_sendmsg+0x7c/0xc0<br /> [ 56.107924] __sys_sendmsg+0x44/0x98<br /> [ 56.111492] __arm64_sys_sendmsg+0x20/0x28<br /> [ 56.115580] invoke_syscall.constprop.0+0x58/0xfc<br /> [ 56.120285] do_el0_svc+0x3c/0xbc<br /> [ 56.123592] el0_svc+0x18/0x4c<br /> [ 56.126647] el0t_64_sync_handler+0x118/0x124<br /> [ 56.131005] el0t_64_sync+0x150/0x154<br /> [ 56.134660] ---[ end trace 0000000000000000 ]---
Severity CVSS v4.0: Pending analysis
Last modification:
31/10/2025

CVE-2025-22059

Publication date:
16/04/2025
In the Linux kernel, the following vulnerability has been resolved:<br /> <br /> udp: Fix multiple wraparounds of sk-&gt;sk_rmem_alloc.<br /> <br /> __udp_enqueue_schedule_skb() has the following condition:<br /> <br /> if (atomic_read(&amp;sk-&gt;sk_rmem_alloc) &gt; sk-&gt;sk_rcvbuf)<br /> goto drop;<br /> <br /> sk-&gt;sk_rcvbuf is initialised by net.core.rmem_default and later can<br /> be configured by SO_RCVBUF, which is limited by net.core.rmem_max,<br /> or SO_RCVBUFFORCE.<br /> <br /> If we set INT_MAX to sk-&gt;sk_rcvbuf, the condition is always false<br /> as sk-&gt;sk_rmem_alloc is also signed int.<br /> <br /> Then, the size of the incoming skb is added to sk-&gt;sk_rmem_alloc<br /> unconditionally.<br /> <br /> This results in integer overflow (possibly multiple times) on<br /> sk-&gt;sk_rmem_alloc and allows a single socket to have skb up to<br /> net.core.udp_mem[1].<br /> <br /> For example, if we set a large value to udp_mem[1] and INT_MAX to<br /> sk-&gt;sk_rcvbuf and flood packets to the socket, we can see multiple<br /> overflows:<br /> <br /> # cat /proc/net/sockstat | grep UDP:<br /> UDP: inuse 3 mem 7956736 min(size + (unsigned int)sk-&gt;sk_rcvbuf, INT_MAX))<br /> goto uncharge_drop;<br /> <br /> but we do not want to add the expensive atomic_add_return() back just<br /> for the corner case.<br /> <br /> Casting rmem to unsigned int prevents multiple wraparounds, but we still<br /> allow a single wraparound.<br /> <br /> # cat /proc/net/sockstat | grep UDP:<br /> UDP: inuse 3 mem 524288 &gt; 12<br /> <br /> # ss -uam<br /> State Recv-Q ...<br /> UNCONN -2147482816 ... truesize<br /> only when rcvbuf is large enough to lower the overflow possibility.<br /> <br /> Note that we still have a small chance to see overflow if multiple skbs<br /> to the same socket are processed on different core at the same time and<br /> each size does not exceed the limit but the total size does.<br /> <br /> Note also that we must ignore skb-&gt;truesize for a small buffer as<br /> explained in commit 363dc73acacb ("udp: be less conservative with<br /> sock rmem accounting").
Severity CVSS v4.0: Pending analysis
Last modification:
01/10/2025

CVE-2025-22056

Publication date:
16/04/2025
In the Linux kernel, the following vulnerability has been resolved:<br /> <br /> netfilter: nft_tunnel: fix geneve_opt type confusion addition<br /> <br /> When handling multiple NFTA_TUNNEL_KEY_OPTS_GENEVE attributes, the<br /> parsing logic should place every geneve_opt structure one by one<br /> compactly. Hence, when deciding the next geneve_opt position, the<br /> pointer addition should be in units of char *.<br /> <br /> However, the current implementation erroneously does type conversion<br /> before the addition, which will lead to heap out-of-bounds write.<br /> <br /> [ 6.989857] ==================================================================<br /> [ 6.990293] BUG: KASAN: slab-out-of-bounds in nft_tunnel_obj_init+0x977/0xa70<br /> [ 6.990725] Write of size 124 at addr ffff888005f18974 by task poc/178<br /> [ 6.991162]<br /> [ 6.991259] CPU: 0 PID: 178 Comm: poc-oob-write Not tainted 6.1.132 #1<br /> [ 6.991655] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.0-0-gd239552ce722-prebuilt.qemu.org 04/01/2014<br /> [ 6.992281] Call Trace:<br /> [ 6.992423] <br /> [ 6.992586] dump_stack_lvl+0x44/0x5c<br /> [ 6.992801] print_report+0x184/0x4be<br /> [ 6.993790] kasan_report+0xc5/0x100<br /> [ 6.994252] kasan_check_range+0xf3/0x1a0<br /> [ 6.994486] memcpy+0x38/0x60<br /> [ 6.994692] nft_tunnel_obj_init+0x977/0xa70<br /> [ 6.995677] nft_obj_init+0x10c/0x1b0<br /> [ 6.995891] nf_tables_newobj+0x585/0x950<br /> [ 6.996922] nfnetlink_rcv_batch+0xdf9/0x1020<br /> [ 6.998997] nfnetlink_rcv+0x1df/0x220<br /> [ 6.999537] netlink_unicast+0x395/0x530<br /> [ 7.000771] netlink_sendmsg+0x3d0/0x6d0<br /> [ 7.001462] __sock_sendmsg+0x99/0xa0<br /> [ 7.001707] ____sys_sendmsg+0x409/0x450<br /> [ 7.002391] ___sys_sendmsg+0xfd/0x170<br /> [ 7.003145] __sys_sendmsg+0xea/0x170<br /> [ 7.004359] do_syscall_64+0x5e/0x90<br /> [ 7.005817] entry_SYSCALL_64_after_hwframe+0x6e/0xd8<br /> [ 7.006127] RIP: 0033:0x7ec756d4e407<br /> [ 7.006339] Code: 48 89 fa 4c 89 df e8 38 aa 00 00 8b 93 08 03 00 00 59 5e 48 83 f8 fc 74 1a 5b c3 0f 1f 84 00 00 00 00 00 48 8b 44 24 10 0f 05 c3 0f 1f 80 00 00 00 00 83 e2 39 83 faf<br /> [ 7.007364] RSP: 002b:00007ffed5d46760 EFLAGS: 00000202 ORIG_RAX: 000000000000002e<br /> [ 7.007827] RAX: ffffffffffffffda RBX: 00007ec756cc4740 RCX: 00007ec756d4e407<br /> [ 7.008223] RDX: 0000000000000000 RSI: 00007ffed5d467f0 RDI: 0000000000000003<br /> [ 7.008620] RBP: 00007ffed5d468a0 R08: 0000000000000000 R09: 0000000000000000<br /> [ 7.009039] R10: 0000000000000000 R11: 0000000000000202 R12: 0000000000000000<br /> [ 7.009429] R13: 00007ffed5d478b0 R14: 00007ec756ee5000 R15: 00005cbd4e655cb8<br /> <br /> Fix this bug with correct pointer addition and conversion in parse<br /> and dump code.
Severity CVSS v4.0: Pending analysis
Last modification:
03/11/2025

CVE-2025-22058

Publication date:
16/04/2025
In the Linux kernel, the following vulnerability has been resolved:<br /> <br /> udp: Fix memory accounting leak.<br /> <br /> Matt Dowling reported a weird UDP memory usage issue.<br /> <br /> Under normal operation, the UDP memory usage reported in /proc/net/sockstat<br /> remains close to zero. However, it occasionally spiked to 524,288 pages<br /> and never dropped. Moreover, the value doubled when the application was<br /> terminated. Finally, it caused intermittent packet drops.<br /> <br /> We can reproduce the issue with the script below [0]:<br /> <br /> 1. /proc/net/sockstat reports 0 pages<br /> <br /> # cat /proc/net/sockstat | grep UDP:<br /> UDP: inuse 1 mem 0<br /> <br /> 2. Run the script till the report reaches 524,288<br /> <br /> # python3 test.py &amp; sleep 5<br /> # cat /proc/net/sockstat | grep UDP:<br /> UDP: inuse 3 mem 524288 &gt; PAGE_SHIFT<br /> <br /> 3. Kill the socket and confirm the number never drops<br /> <br /> # pkill python3 &amp;&amp; sleep 5<br /> # cat /proc/net/sockstat | grep UDP:<br /> UDP: inuse 1 mem 524288<br /> <br /> 4. (necessary since v6.0) Trigger proto_memory_pcpu_drain()<br /> <br /> # python3 test.py &amp; sleep 1 &amp;&amp; pkill python3<br /> <br /> 5. The number doubles<br /> <br /> # cat /proc/net/sockstat | grep UDP:<br /> UDP: inuse 1 mem 1048577<br /> <br /> The application set INT_MAX to SO_RCVBUF, which triggered an integer<br /> overflow in udp_rmem_release().<br /> <br /> When a socket is close()d, udp_destruct_common() purges its receive<br /> queue and sums up skb-&gt;truesize in the queue. This total is calculated<br /> and stored in a local unsigned integer variable.<br /> <br /> The total size is then passed to udp_rmem_release() to adjust memory<br /> accounting. However, because the function takes a signed integer<br /> argument, the total size can wrap around, causing an overflow.<br /> <br /> Then, the released amount is calculated as follows:<br /> <br /> 1) Add size to sk-&gt;sk_forward_alloc.<br /> 2) Round down sk-&gt;sk_forward_alloc to the nearest lower multiple of<br /> PAGE_SIZE and assign it to amount.<br /> 3) Subtract amount from sk-&gt;sk_forward_alloc.<br /> 4) Pass amount &gt;&gt; PAGE_SHIFT to __sk_mem_reduce_allocated().<br /> <br /> When the issue occurred, the total in udp_destruct_common() was 2147484480<br /> (INT_MAX + 833), which was cast to -2147482816 in udp_rmem_release().<br /> <br /> At 1) sk-&gt;sk_forward_alloc is changed from 3264 to -2147479552, and<br /> 2) sets -2147479552 to amount. 3) reverts the wraparound, so we don&amp;#39;t<br /> see a warning in inet_sock_destruct(). However, udp_memory_allocated<br /> ends up doubling at 4).<br /> <br /> Since commit 3cd3399dd7a8 ("net: implement per-cpu reserves for<br /> memory_allocated"), memory usage no longer doubles immediately after<br /> a socket is close()d because __sk_mem_reduce_allocated() caches the<br /> amount in udp_memory_per_cpu_fw_alloc. However, the next time a UDP<br /> socket receives a packet, the subtraction takes effect, causing UDP<br /> memory usage to double.<br /> <br /> This issue makes further memory allocation fail once the socket&amp;#39;s<br /> sk-&gt;sk_rmem_alloc exceeds net.ipv4.udp_rmem_min, resulting in packet<br /> drops.<br /> <br /> To prevent this issue, let&amp;#39;s use unsigned int for the calculation and<br /> call sk_forward_alloc_add() only once for the small delta.<br /> <br /> Note that first_packet_length() also potentially has the same problem.<br /> <br /> [0]:<br /> from socket import *<br /> <br /> SO_RCVBUFFORCE = 33<br /> INT_MAX = (2 ** 31) - 1<br /> <br /> s = socket(AF_INET, SOCK_DGRAM)<br /> s.bind((&amp;#39;&amp;#39;, 0))<br /> s.setsockopt(SOL_SOCKET, SO_RCVBUFFORCE, INT_MAX)<br /> <br /> c = socket(AF_INET, SOCK_DGRAM)<br /> c.connect(s.getsockname())<br /> <br /> data = b&amp;#39;a&amp;#39; * 100<br /> <br /> while True:<br /> c.send(data)
Severity CVSS v4.0: Pending analysis
Last modification:
03/11/2025

CVE-2025-22060

Publication date:
16/04/2025
In the Linux kernel, the following vulnerability has been resolved:<br /> <br /> net: mvpp2: Prevent parser TCAM memory corruption<br /> <br /> Protect the parser TCAM/SRAM memory, and the cached (shadow) SRAM<br /> information, from concurrent modifications.<br /> <br /> Both the TCAM and SRAM tables are indirectly accessed by configuring<br /> an index register that selects the row to read or write to. This means<br /> that operations must be atomic in order to, e.g., avoid spreading<br /> writes across multiple rows. Since the shadow SRAM array is used to<br /> find free rows in the hardware table, it must also be protected in<br /> order to avoid TOCTOU errors where multiple cores allocate the same<br /> row.<br /> <br /> This issue was detected in a situation where `mvpp2_set_rx_mode()` ran<br /> concurrently on two CPUs. In this particular case the<br /> MVPP2_PE_MAC_UC_PROMISCUOUS entry was corrupted, causing the<br /> classifier unit to drop all incoming unicast - indicated by the<br /> `rx_classifier_drops` counter.
Severity CVSS v4.0: Pending analysis
Last modification:
03/11/2025