A Netfilter, a Linux kernel subsystem used for filtering and modifying network packets, a vulnerability (CVE-2024-1086) has been identified that allows a local user to execute code at the kernel level and escalate their privileges in the system. The issue is caused by a double-free in the nf_tables module, which supports the functioning of the nftables packet filter. The security researcher who discovered the vulnerability has developed and published a working exploit prototype.
The exploit's operation has been demonstrated in recent releases of Debian and Ubuntu with Linux kernels 5.14 - 6.6, as well as in a KernelCTF (Capture the Flag) environment that includes additional patches to block typical exploit methods and is used by Google in its bug bounty program. The success rate of the exploit's operation is estimated at 99.4%. The accompanying article provides a detailed examination of the process of creating a complex multi-layer exploit and bypassing the protective and counteracting mechanisms present in the kernel against exploit operations.

The problem is associated with an error in the nft_verdict_init() function, which allows positive values to be used as error codes for packet dropping (DROP) in hooks, which can be exploited to call the nf_hook_slow() function for a buffer that has already had the free() function called on it. The issue arises when the NF_DROP operation is formed incorrectly, and the kernel initially interprets NF_DROP, but then frees the buffer and returns a status of NF_ACCEPT. This situation leads to the processing of the packet not being terminated, despite the associated buffer being freed, and instead passing to another handler, which then invokes the memory release function a second time.
The vulnerability has been present since Linux kernel version 3.15, but the exploit works with kernels starting from version 5.14. A fix for the vulnerability has been proposed in the Linux kernel release 6.8-rc1 and was backported to stable branches 5.15.149, 6.1.76, and 6.6.15 at the end of February. Users can track the vulnerability fix in distributions on the following pages: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Arch.
Additionally, a series of vulnerabilities in the ksmbd module, which provides an integrated file-sharing implementation within the Linux kernel, can be noted. a szerver SMB protokoll alapján: A CVE-2024-26592 sebezhetőség lehetővé teszi, hogy távolról, hitelesítés nélkül hajtsuk végre a kódot kernel jogokkal olyan rendszereken, ahol az ksmbd modul aktiválva van. A probléma a TCP-kapcsolat kezelésében fellépő versenyhelyzetből adódik, amely a megfelelő zárak hiányából ered, amikor az objektummal dolgozunk.
A CVE-2023-52440 sebezhetőség szintén lehetővé teszi, hogy távolról, kernel jogokkal hajtsuk végre a kódot, de a bűnözés a memória túlcsordulásából ered, amikor hibás munkamenetkulcsokat kezelünk a felhasználótól kapott adatok méretének megfelelő ellenőrzésének hiánya miatt a fix méretű pufferbe másolás előtt.
A CVE-2024-26594, CVE-2023-52442 és CVE-2023-52441 (1, 2, 3) sebezhetőségek az ksmbd-ben lehetővé teszik, hogy távolról, hitelesítés nélkül meghatározzuk a kernel memória tartalmát. A CVE-2024-26594 sebezhetőség az SMB2 Mech tokenek kezelésénél fellépő hibás adatok ellenőrzéséből adódik, ami a puffer területén kívüli adatok visszaadásához vezet. A CVE-2023-52442 sebezhetőség a kapcsolt (chained) kérések kezelésénél fellépő bejövő adatok megfelelő ellenőrzésének hiányából ered. A CVE-2023-52441 sebezhetőség a csatlakozási kérések kezelésénél fellépő bejövő adatok szükséges ellenőrzésének hiánya miatt lép fel.
A CVE-2024-26594 és CVE-2024-26592 sebezhetőségeket a 6.8-as kernell verzióban és a korábbi 6.1.75, 6.6.14, 6.7.2 stabil ágváltozataiban orvosolták. A többi sebezhetőséget a 6.5-ös kernellben és az 5.15.145, 6.1.53, 6.4.16 frissítésekben orvosolták.
Összességében említést érdemel a Linux kernel fejlesztő csapat új munkájának aktiválása, amely a sérülékenységek elemzésére és a kernelbe bevezetett javítások biztonsági problémákkal kapcsolatos összefüggéseinek értékelésére jött létre. Februárban a kernel fejlesztői létrehozták saját CNA (CVE Számozási Hatóság) szolgáltatásukat, amely önállóan jogosult a CVE-azonosítók hozzárendelésére a sérülékenységekhez. Eddig a CVE-k hozzárendelése és a javítások lehetséges sérülékenységekkel való összefüggése a disztribúciók fejlesztőinek feladata volt, míg a kernelben a potenciális sérülékenységek nem voltak kiemelve, és a szokásos javításokkal együtt szerepeltek. Az új szolgáltatás munkájának eredményei felülmúlták a várakozásokat — naponta a kernelben akár több tucat új sérülékenységet is megjelölnek, amelyeket korábban nem találtak biztonsági problémának. Például március 26-án 14 olyan sérülékenységhez rendeltek új CVE-azonosítókat, amelyek korábban nem voltak biztonsági problémaként kezelve, és március 25-én 41 sérülékenységet.
Forrás: opennet.ru
