Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

Vulnerabilidades

Con el objetivo de informar, advertir y ayudar a los profesionales sobre las últimas vulnerabilidades de seguridad en sistemas tecnológicos, ponemos a disposición de los usuarios interesados en esta información una base de datos con información en castellano sobre cada una de las últimas vulnerabilidades documentadas y conocidas.

Este repositorio con más de 75.000 registros esta basado en la información de NVD (National Vulnerability Database) – en función de un acuerdo de colaboración – por el cual desde INCIBE realizamos la traducción al castellano de la información incluida. En ocasiones este listado mostrará vulnerabilidades que aún no han sido traducidas debido a que se recogen en el transcurso del tiempo en el que el equipo de INCIBE realiza el proceso de traducción.

Se emplea el estándar de nomenclatura de vulnerabilidades CVE (Common Vulnerabilities and Exposures), con el fin de facilitar el intercambio de información entre diferentes bases de datos y herramientas. Cada una de las vulnerabilidades recogidas enlaza a diversas fuentes de información así como a parches disponibles o soluciones aportadas por los fabricantes y desarrolladores. Es posible realizar búsquedas avanzadas teniendo la opción de seleccionar diferentes criterios como el tipo de vulnerabilidad, fabricante, tipo de impacto entre otros, con el fin de acortar los resultados.

Mediante suscripción RSS o Boletines podemos estar informados diariamente de las últimas vulnerabilidades incorporadas al repositorio.

CVE-2026-74616

Fecha de publicación:
22/08/2026
Idioma:
Inglés
*** Pendiente de traducción *** In the Linux kernel, the following vulnerability has been resolved:<br /> <br /> xdp: reject clones that overrun skb_shared_info tailroom<br /> <br /> xdpf_clone() clones broadcast copies into a single page and sets<br /> frame_sz to PAGE_SIZE. __xdp_build_skb_from_frame() later treats that<br /> page like a normal XDP frame and expects the usual skb_shared_info<br /> tailroom at the end of the buffer.<br /> <br /> The current check only rejects frames whose linear xdp_frame header,<br /> headroom, and packet data exceed PAGE_SIZE. A source frame backed by a<br /> larger allocation can still satisfy that check while extending into the<br /> clone&amp;#39;s required shared-info area. When such a clone is converted back<br /> into an skb, build_skb_around() places skb_shared_info over live packet<br /> bytes and later writes can corrupt XDP return metadata.<br /> <br /> Reject clones unless their linear area fits inside<br /> SKB_WITH_OVERHEAD(PAGE_SIZE), matching the tailroom requirement already<br /> enforced by the XDP-to-skb conversion path.
Gravedad: Pendiente de análisis
Última modificación:
22/08/2026

CVE-2026-74617

Fecha de publicación:
22/08/2026
Idioma:
Inglés
*** Pendiente de traducción *** In the Linux kernel, the following vulnerability has been resolved:<br /> <br /> dibs: initialise dibs-&gt;lock in dibs_dev_alloc()<br /> <br /> dibs-&gt;lock is initialised by dibs_dev_add(), but a dibs device can<br /> already take interrupts before that call: ism_probe() runs<br /> ism_dev_init(), and hence request_irq(), before it calls<br /> dibs_dev_add(). No client can have registered a dmb at that point, so<br /> no dmb interrupt can occur, but a GID event interrupt can, and<br /> ism_handle_irq() takes dibs-&gt;lock unconditionally on entry, before it<br /> inspects anything else.<br /> <br /> Initialise the lock in dibs_dev_alloc() instead, so that it is valid as<br /> soon as a driver can publish the device to its interrupt handler.
Gravedad: Pendiente de análisis
Última modificación:
22/08/2026

CVE-2026-74618

Fecha de publicación:
22/08/2026
Idioma:
Inglés
*** Pendiente de traducción *** In the Linux kernel, the following vulnerability has been resolved:<br /> <br /> binfmt_misc: don&amp;#39;t warn when the mount is completed from another user namespace<br /> <br /> fsopen() records the caller&amp;#39;s user namespace in fc-&gt;user_ns and hands<br /> back an ordinary file descriptor. Nothing ties the task that calls<br /> fsconfig(FSCONFIG_CMD_CREATE) to the task that created the context. The<br /> fd is inherited across fork() and exec() and it can be passed over a<br /> unix socket.<br /> <br /> Completing a context from another user namespace is allowed on purpose.<br /> vfs_cmd_create() authorizes the create with mount_capable(), which for<br /> FS_USERNS_MOUNT checks ns_capable(fc-&gt;user_ns, CAP_SYS_ADMIN), and that<br /> succeeds for a task holding CAP_SYS_ADMIN in an ancestor of fc-&gt;user_ns.<br /> So an unprivileged task can reach the WARN_ON() in bm_fill_super():<br /> create a user and a mount namespace in a child, call<br /> fsopen("binfmt_misc") there, send the fscontext fd to the parent and let<br /> the parent issue FSCONFIG_CMD_CREATE. Both namespaces come from a plain<br /> unshare(1) and no capability is needed anywhere:<br /> <br /> WARNING: fs/binfmt_misc.c:938 at bm_fill_super+0xa2/0xc0 [binfmt_misc]<br /> CPU: 15 UID: 1000 PID: 3243382 Comm: fswarn<br /> Call Trace:<br /> get_tree_keyed+0x7d/0xb0<br /> bm_get_tree+0x34/0x90 [binfmt_misc]<br /> vfs_get_tree+0x2a/0x100<br /> vfs_cmd_create+0x60/0xf0<br /> __do_sys_fsconfig+0x4b2/0x500<br /> <br /> The child needs the mount namespace because fsopen() itself gates on<br /> may_mount(), which asks for CAP_SYS_ADMIN in the user namespace owning<br /> the caller&amp;#39;s mount namespace. fsconfig() doesn&amp;#39;t repeat that check.<br /> <br /> It is a WARN_ON() and not a WARN_ON_ONCE(), so the condition can be<br /> raised in a loop to taint the kernel and flood the log, and it panics a<br /> kernel booted with panic_on_warn.<br /> <br /> Keep refusing the mount and stop warning about it. Nothing in<br /> bm_fill_super() depends on the two namespaces matching, it derives<br /> everything from sb-&gt;s_user_ns.
Gravedad: Pendiente de análisis
Última modificación:
22/08/2026

CVE-2026-74619

Fecha de publicación:
22/08/2026
Idioma:
Inglés
*** Pendiente de traducción *** In the Linux kernel, the following vulnerability has been resolved:<br /> <br /> ovl: don&amp;#39;t warn when the mount is completed from another user namespace<br /> <br /> fsopen() records the caller&amp;#39;s user namespace in fc-&gt;user_ns and hands<br /> back an ordinary file descriptor. Nothing ties the task that calls<br /> fsconfig(FSCONFIG_CMD_CREATE) to the task that created the context. The<br /> fd is inherited across fork() and exec() and it can be passed over a<br /> unix socket.<br /> <br /> Completing a context from another user namespace is allowed on purpose.<br /> vfs_cmd_create() authorizes the create with mount_capable(), which for<br /> FS_USERNS_MOUNT checks ns_capable(fc-&gt;user_ns, CAP_SYS_ADMIN), and that<br /> succeeds for a task holding CAP_SYS_ADMIN in an ancestor of fc-&gt;user_ns.<br /> So an unprivileged task can reach the WARN_ON() in ovl_fill_super():<br /> create a user and a mount namespace in a child, call fsopen("overlay")<br /> there, send the fscontext fd to the parent and let the parent issue<br /> FSCONFIG_CMD_CREATE. Both namespaces come from a plain unshare(1) and no<br /> capability is needed anywhere:<br /> <br /> WARNING: fs/overlayfs/super.c:1551 at ovl_fill_super+0x7b9/0x1e20 [overlay]<br /> CPU: 3 UID: 1000 PID: 3243376 Comm: fswarn<br /> Call Trace:<br /> get_tree_nodev+0x71/0xa0<br /> ovl_get_tree+0x15/0x20 [overlay]<br /> vfs_get_tree+0x2a/0x100<br /> vfs_cmd_create+0x60/0xf0<br /> __do_sys_fsconfig+0x4b2/0x500<br /> <br /> The child needs the mount namespace because fsopen() itself gates on<br /> may_mount(), which asks for CAP_SYS_ADMIN in the user namespace owning<br /> the caller&amp;#39;s mount namespace. fsconfig() doesn&amp;#39;t repeat that check.<br /> <br /> It is a WARN_ON() and not a WARN_ON_ONCE(), so the condition can be<br /> raised in a loop to taint the kernel and flood the log, and it panics a<br /> kernel booted with panic_on_warn.<br /> <br /> Keep refusing the mount and stop warning about it. ovl_parse_param()<br /> already spells a user namespace check this way for Opt_override_creds.
Gravedad: Pendiente de análisis
Última modificación:
22/08/2026

CVE-2026-74620

Fecha de publicación:
22/08/2026
Idioma:
Inglés
*** Pendiente de traducción *** In the Linux kernel, the following vulnerability has been resolved:<br /> <br /> net/sched: act_gact, act_police: range check the fallback control action<br /> <br /> tcf_action_check_ctrlact() range checks the primary control action:<br /> <br /> if (!opcode)<br /> ret = action &gt; TC_ACT_VALUE_MAX ? -EINVAL : 0;<br /> <br /> TC_ACT_VALUE_MAX is TC_ACT_TRAP, so kernel-internal verdicts above it<br /> cannot be set that way. But act_gact and act_police each carry a second,<br /> independent control action supplied by user space that never reaches that<br /> helper - TCA_GACT_PROB.paction and TCA_POLICE_RESULT. Both only reject<br /> TC_ACT_GOTO_CHAIN, so any other value is stored verbatim and returned<br /> verbatim from the action.<br /> <br /> In particular user space can store TC_ACT_CONSUMED, which is<br /> TC_ACT_VALUE_MAX + 1 and is deliberately not part of the UAPI value<br /> range. That verdict tells every caller the action took ownership of the<br /> skb, so nobody frees it: sch_handle_ingress(), sch_handle_egress() and<br /> tcf_qevent_handle() all deliberately skip the free for it. The result is<br /> one leaked sk_buff plus its data buffer per packet traversing the filter,<br /> unbounded, for all traffic on the chain including kernel-generated<br /> packets.<br /> <br /> Both are trivially deterministic. act_gact clamps tcfg_pval to &gt;= 1, so<br /> with pval = 1 gact_determ() returns the fallback for every packet.<br /> act_police has no mandatory rate, so rate = 0 leaves tcfp_mtu = ~0 and<br /> tcf_police_mtu_check() always passes.<br /> <br /> TC_ACT_CONSUMED was added by commit 720f22fed81b ("net: sched: refactor<br /> reinsert action"), after both goto-chain guards were written:<br /> commit 9469f375ab09 ("net/sched: act_gact: disallow &amp;#39;goto chain&amp;#39; on<br /> fallback control action") and<br /> commit c08f5ed5d625 ("net/sched: act_police: disallow &amp;#39;goto chain&amp;#39; on<br /> fallback control action"). Neither guard was widened when the new<br /> verdict appeared.<br /> <br /> Factor the existing range test out of tcf_action_check_ctrlact() as<br /> tcf_action_valid() and apply it to both fallbacks. The helper cannot call<br /> tcf_action_check_ctrlact() directly because that also allocates a<br /> goto_chain, which is exactly what these two sites must not do.<br /> <br /> Reproduced on v7.2-rc6: kmemleak reports one leaked 232-byte<br /> skbuff_head_cache object plus its 704-byte data buffer per packet. With<br /> this patch both configurations are rejected with -EINVAL and kmemleak<br /> reports none.
Gravedad: Pendiente de análisis
Última modificación:
22/08/2026

CVE-2026-74621

Fecha de publicación:
22/08/2026
Idioma:
Inglés
*** Pendiente de traducción *** In the Linux kernel, the following vulnerability has been resolved:<br /> <br /> net/sched: act_ct: fix sk_buff leak when the header checks reject a packet<br /> <br /> tcf_ct_handle_fragments() runs its header sanity checks before handing<br /> anything to the defragmentation engine:<br /> <br /> if (family == NFPROTO_IPV4)<br /> err = tcf_ct_ipv4_is_fragment(skb, &amp;frag);<br /> else<br /> err = tcf_ct_ipv6_is_fragment(skb, &amp;frag);<br /> if (err || !frag)<br /> return err;<br /> <br /> tcf_ct_ipv4_is_fragment() returns -EINVAL or -ENOMEM;<br /> tcf_ct_ipv6_is_fragment() adds -EPROTO when ipv6_find_hdr() fails. None of<br /> them frees or queues the skb, so on that path the caller still owns it.<br /> <br /> tcf_ct_act() however funnels every non-zero return into the<br /> ownership-transfer exit:<br /> <br /> err = tcf_ct_handle_fragments(net, skb, family, p-&gt;zone, &amp;defrag);<br /> if (err)<br /> goto out_frag;<br /> ...<br /> out_frag:<br /> if (err != -EINPROGRESS)<br /> tcf_action_inc_drop_qstats(&amp;c-&gt;common);<br /> return TC_ACT_CONSUMED;<br /> <br /> TC_ACT_CONSUMED means the action took ownership of the skb, so no caller<br /> frees it - sch_handle_ingress(), sch_handle_egress() and<br /> tcf_qevent_handle() all deliberately skip the free for that verdict. The<br /> skb is therefore orphaned: one sk_buff plus its data buffer is leaked per<br /> malformed packet, unbounded. Note the drop counter is already incremented<br /> for these errors, so the statistics claim a drop that never happens.<br /> <br /> Three different ownership states reach out_frag: today - the skb may be<br /> queued by the defrag engine (-EINPROGRESS), already freed by<br /> nf_ct_handle_fragments(), or still owned by us. Tell the caller which of<br /> those it is, and free the packet ourselves in the last case, which<br /> restores the TC_ACT_SHOT behaviour that predated the Fixes: commit.<br /> <br /> Reproduced on v7.2-rc6 with a 54-byte frame carrying a 40-byte IPv6<br /> header with nexthdr = 0 (hop-by-hop) and nothing after it, on a<br /> clsact ingress chain with "action ct". kmemleak reports one leaked<br /> 232-byte skbuff_head_cache object plus its 704-byte data buffer per<br /> packet; with this patch it reports none.
Gravedad: Pendiente de análisis
Última modificación:
22/08/2026

CVE-2026-74606

Fecha de publicación:
22/08/2026
Idioma:
Inglés
*** Pendiente de traducción *** In the Linux kernel, the following vulnerability has been resolved:<br /> <br /> eventfs: Fix use-after-free in eventfs_remove_rec()<br /> <br /> eventfs_remove_rec() recursively removes the child at the current loop<br /> position. After the recursive call returns, list_for_each_entry() advances<br /> by reading list.next from the removed child.<br /> <br /> If free_ei() drops the final reference, release_ei() reuses the list/rcu<br /> union to queue an SRCU callback. The child may be freed before that read.<br /> The eventfs_mutex serializes list updates, but it does not keep the removed<br /> child alive or prevent the SRCU callback from running.<br /> <br /> Use list_for_each_entry_safe() to save the next sibling before recursively<br /> removing the current child.
Gravedad: Pendiente de análisis
Última modificación:
22/08/2026

CVE-2026-74607

Fecha de publicación:
22/08/2026
Idioma:
Inglés
*** Pendiente de traducción *** In the Linux kernel, the following vulnerability has been resolved:<br /> <br /> KVM: SVM: Serialize accesses to the owner and mirror list with separate lock<br /> <br /> Interaction between KVM_CAP_VM_MOVE_ENC_CONTEXT_FROM and<br /> KVM_CAP_VM_COPY_ENC_CONTEXT_FROM can cause two separate issues:<br /> <br /> - in sev_migrate_from(), when the destination KVM is a mirror, the mirror<br /> entry is moved from the source&amp;#39;s list to the owner&amp;#39;s mirror_vms list,<br /> without holding the owner&amp;#39;s lock unlike other writers of the owner&amp;#39;s<br /> mirror list (sev_vm_copy_enc_context_from(), sev_vm_destroy()).<br /> A concurrent COPY or destroy can race with sev_migrate_from() and<br /> corrupt the list.<br /> <br /> - In sev_vm_destroy(), the *owner* is still active and could receive<br /> concurrently a KVM_CAP_VM_MOVE_ENC_CONTEXT_FROM that causes<br /> sev-&gt;enc_context_owner to change. In this case the incorrect VM<br /> receives kvm_put_kvm().<br /> <br /> The second issue needs particular care because the owner could disappear<br /> altogether (even though the race window is impossibly small) between<br /> reading it and locking it. There is thus no way to perform the checks<br /> under the owner lock without putting struct kvm under SLAB_TYPESAFE_BY_RCU<br /> (which would allow kvm_get_kvm_safe() under RCU critical section).<br /> <br /> It is much simpler to just use a global lock, since the critical<br /> sections are so small and the new lock is always a leaf lock.
Gravedad: Pendiente de análisis
Última modificación:
22/08/2026

CVE-2026-74608

Fecha de publicación:
22/08/2026
Idioma:
Inglés
*** Pendiente de traducción *** In the Linux kernel, the following vulnerability has been resolved:<br /> <br /> smb: client: Fix use-after-free in cifs_try_adding_channels()<br /> <br /> cifs_try_adding_channels() takes a temporary reference to an interface<br /> before dropping iface_lock. If cifs_ses_add_channel() fails, it drops<br /> that reference and then increments iface-&gt;weight_fulfilled.<br /> <br /> A concurrent interface list refresh can remove the list reference while<br /> channel creation is in progress. In that case, the failure-path<br /> kref_put() releases the last reference and frees iface. Updating<br /> weight_fulfilled afterward then accesses freed memory.<br /> <br /> Increment weight_fulfilled before dropping the temporary reference,<br /> keeping iface alive for the final access.
Gravedad: Pendiente de análisis
Última modificación:
22/08/2026

CVE-2026-74609

Fecha de publicación:
22/08/2026
Idioma:
Inglés
*** Pendiente de traducción *** In the Linux kernel, the following vulnerability has been resolved:<br /> <br /> tipc: read le-&gt;link under the node lock in tipc_node_link_down()<br /> <br /> tipc_node_link_down() caches the link pointer before taking n-&gt;lock:<br /> <br /> struct tipc_link *l = le-&gt;link; /* unlocked */<br /> <br /> if (!l)<br /> return;<br /> tipc_node_write_lock(n);<br /> if (!tipc_link_is_establishing(l)) { /* deref l */<br /> ...<br /> tipc_link_reset(l); /* write into l */<br /> if (delete) {<br /> kfree(l);<br /> le-&gt;link = NULL;<br /> <br /> The delete=true caller frees that very object under n-&gt;lock, so the lock<br /> does not protect the cached pointer against it:<br /> <br /> - CPU A, delete=false: tipc_rcv() on TIPC_LINK_DOWN_EVT, or the link<br /> supervision timer via tipc_node_timeout(), reads l unlocked and then<br /> dereferences it under n-&gt;lock;<br /> - CPU B, delete=true: netlink TIPC_NL_BEARER_DISABLE -&gt; bearer_disable()<br /> -&gt; tipc_node_delete_links() -&gt; tipc_node_link_down(n, bearer_id, true)<br /> -&gt; kfree(l).<br /> <br /> The link is freed with plain kfree(), not kfree_rcu(), and for UDP bearers<br /> disable_media() only schedules the asynchronous cleanup_bearer() work, so<br /> its synchronize_net() runs after the links are already gone. An in-flight<br /> CPU A that has read l therefore dereferences freed memory once B frees it:<br /> a use-after-free read in tipc_link_is_establishing(), and a use-after-free<br /> write via tipc_link_reset() on the establishing branch.<br /> <br /> The following trace was captured on 7.2.0-rc5-00284-gaf39eb111ce6:<br /> <br /> BUG: KASAN: slab-use-after-free in tipc_link_is_establishing (net/tipc/link.c:285)<br /> Read of size 4 at addr ffff88802e2aa068 by task swapper/2/0<br /> tipc_link_is_establishing (net/tipc/link.c:285)<br /> tipc_node_link_down (net/tipc/node.c:1076)<br /> tipc_node_timeout (net/tipc/node.c:843)<br /> Allocated by task 9549:<br /> tipc_link_create (net/tipc/link.c:490)<br /> tipc_node_check_dest (net/tipc/node.c:1279)<br /> tipc_disc_rcv (net/tipc/discover.c:252)<br /> tipc_udp_recv (net/tipc/udp_media.c:389)<br /> Freed by task 9549:<br /> tipc_node_link_down (net/tipc/node.c:1084)<br /> tipc_node_delete_links (net/tipc/node.c:1320)<br /> bearer_disable (net/tipc/bearer.c:414)<br /> __tipc_nl_bearer_disable (net/tipc/bearer.c:992)<br /> <br /> Move the le-&gt;link read inside tipc_node_write_lock(), so it is serialised<br /> against the kfree() in the delete path. A racing teardown now either has<br /> not run yet, and we see a valid link, or has already run, and we see NULL.
Gravedad: Pendiente de análisis
Última modificación:
22/08/2026

CVE-2026-74610

Fecha de publicación:
22/08/2026
Idioma:
Inglés
*** Pendiente de traducción *** In the Linux kernel, the following vulnerability has been resolved:<br /> <br /> tls: don&amp;#39;t leave a full plaintext sk_msg ring unpushed<br /> <br /> When the copy path in tls_sw_sendmsg_locked() adds the fragment that fills<br /> the plaintext sk_msg ring, it does not set full_record, so the record is<br /> left full and unpushed. A later splice() then adds to an already full<br /> ring: sk_msg_page_add() has no fullness check of its own, so sg.end wraps<br /> onto sg.start and the ring appears empty. Fragments added after that<br /> overwrite live entries, and sg.size no longer matches what is reachable<br /> between sg.start and sg.end, so pushing the record runs the scatterwalk off<br /> the end of the scatterlist.<br /> <br /> An unprivileged user can trigger this on a loopback TCP socket with the<br /> "tls" ULP attached:<br /> <br /> BUG: kernel NULL pointer dereference, address: 0000000000000008<br /> RIP: 0010:memcpy_from_scatterwalk+0x32/0xc0<br /> Call Trace:<br /> skcipher_walk_next+0x1d1/0x2c0<br /> gcm_encrypt_aesni_avx+0x1e9/0x220<br /> bpf_exec_tx_verdict+0x3bb/0x860<br /> tls_sw_sendmsg+0xa1a/0xca0<br /> __sys_sendto+0x1da/0x1f0<br /> <br /> Set full_record in the copy path when the ring becomes full, and push a<br /> record that is already full on entry to the sendmsg loop.
Gravedad: Pendiente de análisis
Última modificación:
22/08/2026

CVE-2026-74611

Fecha de publicación:
22/08/2026
Idioma:
Inglés
*** Pendiente de traducción *** In the Linux kernel, the following vulnerability has been resolved:<br /> <br /> tls: rx: restore msg_iter before TLS 1.3 optimistic retry<br /> <br /> tls_decrypt_sg() advances msg-&gt;msg_iter when it maps user pages for<br /> the optimistic TLS 1.3 zero-copy path. If the decrypted record turns<br /> out not to be unpadded application data, tls_decrypt_sw() retries into<br /> a kernel skb, but leaves the iterator advanced.<br /> <br /> The subsequent copy from the skb then writes decrypted bytes again at<br /> a later point in the caller iovecs while recvmsg() reports only the<br /> post-retry length. A TLS peer can trigger this after the receiver<br /> enables TLS_RX_EXPECT_NO_PAD.<br /> <br /> Revert the iterator by the number of bytes consumed by the optimistic<br /> mapping before retrying without zero-copy.<br /> <br /> Add a selftest which sends a TLS 1.3 control record with<br /> TLS_RX_EXPECT_NO_PAD enabled and verifies that recvmsg() does not<br /> overwrite later iovecs beyond the returned length.
Gravedad: Pendiente de análisis
Última modificación:
22/08/2026