![](https://habrastorage.org/files/678/be1/441/678be1441a06486bbb949fde0519cd50.png)
A race condition was found in the way the Linux kernel's memory subsystem handled the copy-on-write (COW) breakage of private read-only memory mappings. An unprivileged local user could use this flaw to gain write access to otherwise read-only memory mappings and thus increase their privileges on the system.
Уязвимость присутствует в коде диспетчера виртуальной памяти ядра Linux, который отвечает за реализацию известного механизма управления общей mapped-памятью под названием copy-on-write (копирование при записи). При одновременной попытке доступа нескольких клиентов к этому коду может возникнуть состояние гонки (race condition), в результате чего поток получит доступ на запись к тем страницам памяти, которые доступны только для чтения.
Механизм копирования при записи используется практически во всех современных ОС. В общем случае, он позволяет значительно экономить время загрузки кода и данных, которые используются в системе многими процессами, за счет размещения их в памяти в единственном экземпляре с присваиванием им специального атрибута доступа «copy-on-write». Таким образом, когда поток захочет что-то записать на страницу памяти с таким атрибутом, ОС заметит это и выделит потоку для этого приватную страницу физической памяти, скопирует на нее оригинальные данные и позволит их модифицировать. Прочие процессы будут видеть исходные данные на странице, в то время как указанный процесс будет иметь доступ к модифицированным данным.