{ "id": "CVE-2023-52924", "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "published": "2025-02-05T10:15:21.073", "lastModified": "2025-02-05T10:15:21.073", "vulnStatus": "Awaiting Analysis", "cveTags": [], "descriptions": [ { "lang": "en", "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnetfilter: nf_tables: don't skip expired elements during walk\n\nThere is an asymmetry between commit/abort and preparation phase if the\nfollowing conditions are met:\n\n1. set is a verdict map (\"1.2.3.4 : jump foo\")\n2. timeouts are enabled\n\nIn this case, following sequence is problematic:\n\n1. element E in set S refers to chain C\n2. userspace requests removal of set S\n3. kernel does a set walk to decrement chain->use count for all elements\n from preparation phase\n4. kernel does another set walk to remove elements from the commit phase\n (or another walk to do a chain->use increment for all elements from\n abort phase)\n\nIf E has already expired in 1), it will be ignored during list walk, so its use count\nwon't have been changed.\n\nThen, when set is culled, ->destroy callback will zap the element via\nnf_tables_set_elem_destroy(), but this function is only safe for\nelements that have been deactivated earlier from the preparation phase:\nlack of earlier deactivate removes the element but leaks the chain use\ncount, which results in a WARN splat when the chain gets removed later,\nplus a leak of the nft_chain structure.\n\nUpdate pipapo_get() not to skip expired elements, otherwise flush\ncommand reports bogus ENOENT errors." }, { "lang": "es", "value": "En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: netfilter: nf_tables: no omitir elementos expirados durante el recorrido hay una asimetr\u00eda entre la fase de confirmaci\u00f3n/aborto y la de preparaci\u00f3n si se cumplen las siguientes condiciones: 1. el conjunto es un mapa de veredicto (\"1.2.3.4: saltar foo\") 2. los tiempos de espera est\u00e1n habilitados en este caso, la siguiente secuencia es problem\u00e1tica: 1. el elemento E en el conjunto S se refiere a la cadena C 2. el espacio de usuario solicita la eliminaci\u00f3n del conjunto S 3. el kernel realiza un recorrido de conjuntos para decrementar el recuento de cadena->uso para todos los elementos de la fase de preparaci\u00f3n 4. el kernel realiza otro recorrido de conjuntos para eliminar elementos de la fase de confirmaci\u00f3n (u otro recorrido para hacer un incremento de cadena->uso para todos los elementos de la fase de aborto) Si E ya expir\u00f3 en 1), se ignorar\u00e1 durante el recorrido de lista, por lo que su recuento de uso no se habr\u00e1 modificado. Luego, cuando se elimina el conjunto, la devoluci\u00f3n de llamada ->destroy eliminar\u00e1 el elemento a trav\u00e9s de nf_tables_set_elem_destroy(), pero esta funci\u00f3n solo es segura para los elementos que se han desactivado antes de la fase de preparaci\u00f3n: la falta de una desactivaci\u00f3n anterior elimina el elemento pero filtra el recuento de uso de la cadena, lo que da como resultado un splat WARN cuando la cadena se elimina m\u00e1s tarde, adem\u00e1s de una fuga de la estructura nft_chain. Actualice pipapo_get() para no omitir los elementos vencidos, de lo contrario, el comando flush informa errores ENOENT falsos." } ], "metrics": {}, "references": [ { "url": "https://git.kernel.org/stable/c/1da4874d05da1526b11b82fc7f3c7ac38749ddf8", "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67" }, { "url": "https://git.kernel.org/stable/c/24138933b97b055d486e8064b4a1721702442a9b", "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67" }, { "url": "https://git.kernel.org/stable/c/59dab3bf0b8fc08eb802721c0532f13dd89209b8", "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67" }, { "url": "https://git.kernel.org/stable/c/7c7e658a36f8b1522bd3586d8137e5f93a25ddc5", "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67" }, { "url": "https://git.kernel.org/stable/c/94313a196b44184b5b52c1876da6a537701b425a", "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67" }, { "url": "https://git.kernel.org/stable/c/b15ea4017af82011dd55225ce77cce3d4dfc169c", "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67" }, { "url": "https://git.kernel.org/stable/c/bd156ce9553dcaf2d6ee2c825d1a5a1718e86524", "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67" } ] }