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 ultimas 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 ultimas 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 ultimas vulnerabilidades incorporadas al repositorio.

Vulnerabilidad en kernel de Linux (CVE-2024-49851)

Fecha de publicación:
21/10/2024
Idioma:
Español
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: tpm: Limpiar el espacio TPM después de un error de comando tpm_dev_transmit prepara el espacio TPM antes de intentar la transmisión del comando. Sin embargo, si el comando falla, no se realiza ninguna reversión de esta preparación. Esto puede provocar que se filtren los identificadores transitorios si el dispositivo se cierra posteriormente sin que se realicen más comandos. Solucione esto vaciando el espacio en caso de que falle la transmisión del comando.
Gravedad CVSS v3.1: MEDIA
Última modificación:
03/11/2025

Vulnerabilidad en kernel de Linux (CVE-2024-49852)

Fecha de publicación:
21/10/2024
Idioma:
Español
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: scsi: elx: libefc: Se corrige el potencial use after freea nport->release si el recuento de referencias cae a cero. La función de liberación nport->release es _efc_nport_free() que libera "nport". Pero luego desreferenciamos "nport" en la siguiente línea que es un use after free. Reordena estas líneas para evitar el use after free.
Gravedad CVSS v3.1: ALTA
Última modificación:
03/11/2025

Vulnerabilidad en kernel de Linux (CVE-2024-47750)

Fecha de publicación:
21/10/2024
Idioma:
Español
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: RDMA/hns: Se corrige el use after free de rsv_qp en HIP08 Actualmente, rsv_qp se libera antes de que se llame a ib_unregister_device() en HIP08. Durante el intervalo de tiempo, los usuarios aún pueden anular la regulación de MR y rsv_qp se usará en este proceso, lo que genera un UAF. Mueva la liberación de rsv_qp después de llamar a ib_unregister_device() para solucionarlo.
Gravedad CVSS v3.1: ALTA
Última modificación:
03/11/2025

Vulnerabilidad en kernel de Linux (CVE-2024-47751)

Fecha de publicación:
21/10/2024
Idioma:
Español
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: PCI: kirin: Se ha corregido el desbordamiento de búfer en kirin_pcie_parse_port(). En kirin_pcie_parse_port(), el tamaño de pcie->num_slots se compara con el tamaño de pcie->gpio_id_reset (MAX_PCI_SLOTS), que es correcto y provocaría un desbordamiento. Por lo tanto, se ha corregido la condición a pcie->num_slots + 1 >= MAX_PCI_SLOTS y se ha movido el incremento de pcie->num_slots por debajo de la instrucción if para evitar el acceso a la matriz fuera de los límites. Encontrado por Linux Verification Center (linuxtesting.org) con SVACE. [kwilczynski: registro de confirmaciones]
Gravedad CVSS v3.1: ALTA
Última modificación:
03/11/2025

Vulnerabilidad en kernel de Linux (CVE-2024-47756)

Fecha de publicación:
21/10/2024
Idioma:
Español
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: PCI: keystone: Arreglar la expresión de la declaración if en ks_pcie_quirk() Este código usa accidentalmente && donde se pretendía ||. Esto potencialmente resulta en una desreferencia NULL. Por lo tanto, corrija la expresión de la declaración if para usar la condición correcta. [kwilczynski: registro de confirmaciones]
Gravedad CVSS v3.1: MEDIA
Última modificación:
03/11/2025

Vulnerabilidad en kernel de Linux (CVE-2024-47757)

Fecha de publicación:
21/10/2024
Idioma:
Español
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: nilfs2: se corrige una posible lectura fuera de línea en nilfs_btree_check_delete() La función nilfs_btree_check_delete(), que comprueba si se produce una degeneración en el mapeo directo antes de eliminar una entrada del árbol b, provoca un acceso a la memoria fuera del búfer de bloque al recuperar la clave máxima si el nodo raíz no tiene entradas. Esto no suele ocurrir porque los mapeos de árboles b con 0 nodos secundarios nunca son creados por mkfs.nilfs2 o nilfs2 en sí. Sin embargo, puede ocurrir si el nodo raíz del árbol b que lee desde un dispositivo está configurado de esa manera, así que solucione este posible problema añadiendo una comprobación para ese caso.
Gravedad CVSS v3.1: ALTA
Última modificación:
03/11/2025

Vulnerabilidad en kernel de Linux (CVE-2024-47741)

Fecha de publicación:
21/10/2024
Idioma:
Español
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: btrfs: arreglo de ejecución que establece el archivo privado en lseek concurrente usando el mismo fd Al realizar llamadas al sistema lseek(2) concurrentes contra el mismo descriptor de archivo, usando múltiples subprocesos que pertenecen al mismo proceso, tenemos una ventana de tiempo corta donde ocurre una ejecución y puede resultar en una pérdida de memoria. La ejecución ocurre así: 1) Un programa abre un descriptor de archivo para un archivo y luego genera dos subprocesos (con la librería pthreads por ejemplo), llamémoslos tarea A y tarea B; 2) La tarea A llama a lseek con SEEK_DATA o SEEK_HOLE y termina en file.c:find_desired_extent() mientras mantiene un bloqueo de lectura en el inodo; 3) Al comienzo de find_desired_extent(), extrae el puntero private_data del archivo en una variable local llamada 'private', que tiene un valor de NULL; 4) La tarea B también llama a lseek con SEEK_DATA o SEEK_HOLE, bloquea el inodo en modo compartido e ingresa a file.c:find_desired_extent(), donde también extrae file->private_data en su variable local 'private', que tiene un valor NULL; 5) Debido a que vio un archivo privado NULL, la tarea A asigna una estructura privada y la asigna a la estructura de archivo; 6) La tarea B también vio un archivo privado NULL, por lo que también asigna su propio archivo privado y luego lo asigna a la misma estructura de archivo, ya que ambas tareas están usando el mismo descriptor de archivo. En este punto filtramos la estructura privada asignada por la tarea A. Además de la fuga de memoria, también está el detalle de que ambas tareas terminan usando el mismo registro de estado en caché en la estructura privada (struct btrfs_file_private::llseek_cached_state), lo que puede resultar en un problema de use after free, ya que una tarea puede liberarlo mientras la otra todavía lo está usando (solo una tarea tomó un recuento de referencia en él). Además, compartir el estado en caché no es una buena idea, ya que podría resultar en resultados incorrectos en el futuro; en este momento no debería ser un problema porque termina siendo utilizado solo en extended-io-tree.c:count_range_bits() donde realizamos la validación de rango antes de usar el estado en caché. Solucione esto protegiendo la asignación privada y la verificación de un archivo mientras mantiene el spinlock del inodo y realice un seguimiento de la tarea que asignó el privado, de modo que solo lo use esa tarea para evitar problemas de use after free con el registro de estado en caché, así como potencialmente usarlo incorrectamente en el futuro.
Gravedad CVSS v3.1: ALTA
Última modificación:
23/10/2024

Vulnerabilidad en kernel de Linux (CVE-2024-47744)

Fecha de publicación:
21/10/2024
Idioma:
Español
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: KVM: usar mutex dedicado para proteger kvm_usage_count para evitar un bloqueo Use un mutex dedicado para proteger kvm_usage_count para reparar un posible bloqueo en x86 debido a una cadena de bloqueos y sincronizaciones SRCU. Traduciendo el siguiente splat lockdep, CPU1 #6 esperará a CPU0 #1, CPU0 #8 esperará a CPU2 #3 y CPU2 #7 esperará a CPU1 #4 (si hay un escritor, debido a la imparcialidad de los semáforos de lectura/escritura). CPU0 CPU1 CPU2 1 lock(&kvm->slots_lock); 2 lock(&vcpu->mutex); 3 lock(&kvm->srcu); 4 lock(cpu_hotplug_lock); 5 lock(kvm_lock); 6 lock(&kvm->slots_lock); 7 lock(cpu_hotplug_lock); 8 sync(&kvm->srcu); Tenga en cuenta que es probable que haya más bloqueos potenciales en KVM x86, por ejemplo, el mismo patrón de tomar cpu_hotplug_lock fuera de kvm_lock probablemente exista con __kvmclock_cpufreq_notifier(): cpuhp_cpufreq_online() | -> cpufreq_online() | -> cpufreq_gov_performance_limits() | -> __cpufreq_driver_target() | -> __target_index() | -> cpufreq_freq_transition_begin() | -> cpufreq_notify_transition() | -> ... __kvmclock_cpufreq_notifier() Pero, en realidad, activar dichos bloqueos es más que raro debido a la combinación de dependencias y tiempos involucrados. Por ejemplo, el notificador cpufreq solo se usa en CPU más antiguas sin un TSC constante, es muy poco común alterar la mitigación de páginas enormes de NX mientras las máquinas virtuales se están ejecutando, y hacerlo mientras también se conecta o desconecta una CPU (necesario para generar contención en cpu_hotplug_lock) sería aún más inusual. La solución más sólida para el problema general de cpu_hotplug_lock es probablemente cambiar vm_list para que sea una lista protegida por RCU, por ejemplo, para que el notificador cpufreq de x86 no tome kvm_lock. Por ahora, conformémonos con arreglar el bloqueo más evidente, ya que cambiar a una lista protegida por RCU es un cambio mucho más complejo, pero agregue un comentario en locking.rst para indicar que se debe tener cuidado al recorrer manteniendo kvm_lock y recorrer vm_list. ======================================================== ADVERTENCIA: posible dependencia de bloqueo circular detectada 6.10.0-smp--c257535a0c9d-pip #330 Tainted: GSO ------------------------------------------------------ tee/35048 está intentando adquirir el bloqueo: ff6a80eced71e0a8 (&kvm->slots_lock){+.+.}-{3:3}, en: set_nx_huge_pages+0x179/0x1e0 [kvm] pero la tarea ya tiene el bloqueo: ffffffffc07abb08 (kvm_lock){+.+.}-{3:3}, en: set_nx_huge_pages+0x14a/0x1e0 [kvm] cuyo bloqueo ya depende del nuevo bloqueo. la cadena de dependencia existente (en orden inverso) es: -> #3 (kvm_lock){+.+.}-{3:3}: __mutex_lock+0x6a/0xb40 mutex_lock_nested+0x1f/0x30 kvm_dev_ioctl+0x4fb/0xe50 [kvm] __se_sys_ioctl+0x7b/0xd0 __x64_sys_ioctl+0x21/0x30 x64_sys_call+0x15d0/0x2e60 do_syscall_64+0x83/0x160 entry_SYSCALL_64_after_hwframe+0x76/0x7e -> #2 (cpu_hotplug_lock){++++}-{0:0}: Bloqueo de lectura de CPU + 0x2e/0xb0 Clave estática lenta Inc + 0x16/0x30 Base de configuración de lapic Lapic + 0x6a/0x1c0 [kvm] Base de configuración de apic Lapic + 0x8f/0xe0 [kvm] MSR común Lapic + 0x9ae/0xf80 [kvm] MSR vmx + 0xa54/0xbe0 [kvm_intel] MSR + 0xb6/0x1a0 [kvm] VCPUE ioctl + 0xeca/0x10c0 [kvm] VCPUE ioctl + 0x485/0x5b0 [kvm] SYS ioctl + 0x7b/0xd0 __x64_sys_ioctl+0x21/0x30 x64_sys_call+0x15d0/0x2e60 do_syscall_64+0x83/0x160 entry_SYSCALL_64_after_hwframe+0x76/0x7e -> #1 (&kvm->srcu){.+.+}-{0:0}: __synchronize_srcu+0x44/0x1a0 ---truncado---
Gravedad CVSS v3.1: MEDIA
Última modificación:
22/10/2024

Vulnerabilidad en kernel de Linux (CVE-2024-47746)

Fecha de publicación:
21/10/2024
Idioma:
Español
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: fuse: use un bloqueo exclusivo cuando FUSE_I_CACHE_IO_MODE está configurado. Esto puede ser un error tipográfico. El comentario decía que no se permiten bloqueos compartidos cuando este bit está configurado. Si se usa un bloqueo compartido, la espera en `fuse_file_cached_io_open` puede ser eterna.
Gravedad CVSS v3.1: MEDIA
Última modificación:
22/10/2024

Vulnerabilidad en kernel de Linux (CVE-2024-47745)

Fecha de publicación:
21/10/2024
Idioma:
Español
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: mm: llamar al gancho LSM security_mmap_file() en remap_file_pages() El controlador de llamadas al sistema remap_file_pages llama a do_mmap() directamente, que no contiene la comprobación de seguridad LSM. Y si el proceso ha llamado a personality(READ_IMPLIES_EXEC) antes y se llama a remap_file_pages() para páginas RW, esto realmente dará como resultado la reasignación de las páginas a RWX, omitiendo una política W^X aplicada por SELinux. Por lo tanto, deberíamos comprobar prot mediante el gancho LSM security_mmap_file en el controlador de llamadas al sistema remap_file_pages antes de que se llame a do_mmap(). De lo contrario, potencialmente permite que un atacante omita una política W^X aplicada por SELinux. La omisión es similar a CVE-2016-10044, que omite lo mismo a través de AIO y se puede encontrar en [1]. La PoC: $ cat > test.c int main(void) { size_t pagesz = sysconf(_SC_PAGE_SIZE); int mfd = syscall(SYS_memfd_create, "test", 0); const char *buf = mmap(NULL, 4 * pagesz, PROT_READ | PROT_WRITE, MAP_SHARED, mfd, 0); unsigned int old = syscall(SYS_personality, 0xffffffff); syscall(SYS_personality, READ_IMPLIES_EXEC | old); syscall(SYS_remap_file_pages, buf, pagesz, 0, 2, 0); syscall(SYS_personality, old); // muestra que la página RWX existe incluso si se aplica la política W^X int fd = open("/proc/self/maps", O_RDONLY); unsigned char buf2[1024]; while (1) { int ret = read(fd, buf2, 1024); if (ret <= 0) break; write(1, buf2, ret); } close(fd); } $ gcc test.c -o test $ ./test | grep rwx 7f1836c34000-7f1836c35000 rwxs 00002000 00:01 2050 /memfd:test (eliminado) [MP: ajustes en la línea de asunto]
Gravedad CVSS v3.1: ALTA
Última modificación:
03/11/2025

Vulnerabilidad en kernel de Linux (CVE-2024-47739)

Fecha de publicación:
21/10/2024
Idioma:
Español
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: padata: usar un envoltorio de enteros para evitar un bloqueo en el desbordamiento de seq_nr Al enviar más de 2^32 objetos padata a padata_do_serial, la implementación de clasificación actual ordena incorrectamente los objetos padata con seq_nr desbordado, lo que hace que se coloquen antes de los objetos existentes en la lista de reordenamiento. Esto conduce a un bloqueo en el proceso de serialización ya que padata_find_next no puede coincidir con padata->seq_nr y pd->processed porque la instancia de padata con seq_nr desbordado se seleccionará a continuación. Para solucionar esto, usamos un envoltorio de enteros sin signo para ordenar correctamente los objetos padata en escenarios con desbordamiento de enteros.
Gravedad CVSS v3.1: MEDIA
Última modificación:
03/11/2025

Vulnerabilidad en kernel de Linux (CVE-2024-47740)

Fecha de publicación:
21/10/2024
Idioma:
Español
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: f2fs: Requerir FMODE_WRITE para ioctls de escritura atómica Los ioctls de F2FS para iniciar y confirmar escrituras atómicas comprueban inode_owner_or_capable(), pero esto no da a los LSM como SELinux o Landlock la oportunidad de denegar el acceso de escritura: si el FSUID del llamador coincide con el UID del inodo, inode_owner_or_capable() devuelve verdadero inmediatamente. Hay escenarios en los que los LSM quieren denegar a un proceso la capacidad de escribir archivos particulares, incluso archivos que el FSUID del proceso posee; pero esto actualmente se puede omitir parcialmente usando ioctls de escritura atómica de dos maneras: - F2FS_IOC_START_ATOMIC_REPLACE + F2FS_IOC_COMMIT_ATOMIC_WRITE puede truncar un inodo a tamaño 0 - F2FS_IOC_START_ATOMIC_WRITE + F2FS_IOC_ABORT_ATOMIC_WRITE puede revertir los cambios que otro proceso realizó simultáneamente en un archivo Arréglelo requiriendo FMODE_WRITE para estas operaciones, al igual que para F2FS_IOC_MOVE_RANGE. Dado que cualquier llamador legítimo solo debe usar estos ioctls cuando tenga la intención de escribir en el archivo, parece poco probable que eso rompa algo.
Gravedad CVSS v3.1: MEDIA
Última modificación:
03/11/2025