Нова уязвимост в ядрото на Linux, наречена ZcopyReaper, позволява на непривилегирован локален атакуващ да ескалира привилегии и потенциално да придобие контрол на ниво root.
Проследявана като CVE-2026-43502, уязвимостта беше демонстрирана чрез експлойт, наречен ZcopyReaper, от изследователи по сигурността в NebuSec. Тази уязвимост засяга пътя за изпращане с zero-copy в Reliable Datagram Sockets (RDS) и съществува в ядрото от Linux версия 4.17.
Уязвимостта произтича от неправилно почистване на паметта, когато RDS операция за изпращане с zero-copy се провали, след като страниците в потребителското пространство са били фиксирани (pinned), но преди съответното съобщение да бъде прикачено към изпращащия сокет.
Засегнатият път за изчистване определя метода за почистване въз основа на асоциацията на съобщението със сокета, въпреки че собствеността върху zero-copy трябва вместо това да се определя от наличието на структурата op_mmp_znotifier.
В резултат на това съобщение, което все още не е влязло на опашката на сокета, може да бъде почистено така, сякаш съдържа обикновени страници със зловреден код. Тази грешка в управлението на жизнения цикъл може да поврежда паметта на ядрото и да създаде условията, необходими за локална ескалация на привилегии.
ZcopyReaper уязвимост в ядрото на Linux
NebuSec успешно демонстрира ZcopyReaper върху инсталация на openSUSE, работеща с версия на ядрото 6.4.0-150600.23.100, както е подробно описано в техническото разкритие, публикувано в Openwall, показвайки, че проблемът има практически последици за сигурността извън отказ от услуга.
Експлоатацията не изисква възможности на Linux (capabilities) или достъп до непривилегировани потребителски пространства от имена (user namespaces). Следователно забраната за създаване на непривилегировани потребителски пространства от имена не блокира демонстрираната атака – важен детайл за организации, които разчитат на ограниченията на пространствата от имена като част от своята стратегия за укрепване на Linux.
Уязвимата система трябва да има активирани CONFIG_INET и CONFIG_AIO, заедно с CONFIG_RDS и CONFIG_RDS_TCP, компилирани в ядрото или налични като зареждащи се модули.
Когато поддръжката на RDS е модулна, модулите rds.ko и rds_tcp.ko трябва вече да са заредени или достъпни чрез автоматично зареждане на модули, за да може киберпрестъпник да достигне до засегнатия код.
| Параметър на уязвимостта | Техническа спецификация и механизъм | Оперативно въздействие и смекчаване |
|---|---|---|
| CVE идентификатор / експлойт | CVE-2026-43502 / ZcopyReaper | Локална ескалация на привилегии до контрол на ниво root |
| Подсистема и произход | Reliable Datagram Sockets (RDS) zero-copy път | Присъства от Linux 4.17; засяга rds_message_purge() |
| Първопричина | Неправилно почистване на паметта преди прикачване към сокет | Заобикаля проверките на op_mmp_znotifier, повреждайки паметта на ядрото |
| Независимост от пространствата от имена | Не изисква непривилегировани потребителски пространства от имена | Укрепването чрез ограничения на потребителските пространства от имена е неефективно |
| Изисквания към ядрото | CONFIG_INET, CONFIG_AIO, CONFIG_RDS, CONFIG_RDS_TCP | Модулните настройки изискват зареждане на rds.ko и rds_tcp.ko |
| Официална корекция (Upstream) | Commit 44b550d88b26 (mainline Linux 7.1-rc3) | Пренесена (backported) към Ubuntu (7.0.0, 6.8.0, 5.15.0) и клонове на Debian |
Официалната корекция променя rds_message_purge(), така че да прихваща op_mmp_znotifier, преди да извърши почистване, и използва този известител, за да идентифицира собствеността върху zero-copy.
Ако съобщението не е достигнало опашката на сокета, коригираният код директно коригира отчитането на фиксираните страници и освобождава известителя, преди да освободи страниците с код, запазвайки нормалния път за завършване за съобщения, които вече са асоциирани със сокет.
Уязвимостта беше отстранена чрез официален commit 44b550d88b26, като Linux 7.1-rc3 беше идентифициран като първата официална версия, съдържаща корекцията.
Стабилните дистрибуции също започнаха да пренасят корекцията за сигурност; Ubuntu изброява корекции за поддържани ядра, включително 7.0.0-28, 6.8.0-136 и 5.15.0-186, докато Debian отчита коригирани пакети в няколко поддържани клона.
NebuSec съобщи, че нейната автоматизирана система за генериране на експлойти също е потвърдила възможността за експлоатация и е произвела публични експлойти за още 20 уязвимости в ядрото на Linux.
Материалът е достъпен чрез хранилището за изследвания на сигурността CyberMeowfia на компанията, което увеличава спешността администраторите да прегледат засегнатите среди.
Администраторите на Linux трябва да инсталират предоставените от доставчиците актуализации на ядрото, да рестартират системите с коригираното ядро и след това да потвърдят работещата версия.
Когато незабавното инсталиране на корекции за сигурност е невъзможно, защитниците трябва да определят дали RDS и RDS-over-TCP са необходими и да предотвратят зареждането на ненужни модули; самото деактивиране на потребителските пространства от имена не е ефективна мярка за смекчаване на ZcopyReaper.