• Fuchsia OS глазами атакующего

    Fuchsia — это операционная система общего назначения с открытым исходным кодом, разрабатываемая компанией Google. Эта операционная система построена на базе микроядра Zircon, код которого написан на C++. При проектировании Fuchsia приоритет был отдан безопасности, обновляемости и быстродействию. Как исследователь безопасности ядра Linux я заинтересовался операционной системой Fuchsia и решил посмотреть на нее с точки зрения атакующего. В этой статье я поделюсь результатами своей работы.

  • A Kernel Hacker Meets Fuchsia OS

    Fuchsia is a general-purpose open-source operating system created by Google. It is based on the Zircon microkernel written in C++ and is currently under active development. The developers say that Fuchsia is designed with a focus on security, updatability, and performance. As a Linux kernel hacker, I decided to take a look at Fuchsia OS and assess it from the attacker's point of view. This article describes my experiments.

  • [ru] Исследование защиты LKRG с помощью уязвимости CVE-2021-26708 в ядре Linux

    В этой статье я расскажу о продолжении моего исследования уязвимости CVE-2021-26708 в ядре Linux. Я доработал свой прототип эксплоита и с помощью него исследовал средство защиты Linux Kernel Runtime Guard (LKRG) с позиции атакующего. Я расскажу, как мне удалось найти новый метод обхода защиты LKRG, и как я выполнил ответственное разглашение результатов своего исследования.

  • Improving the exploit for CVE-2021-26708 in the Linux kernel to bypass LKRG

    This is the follow-up to my research described in the article "Four Bytes of Power: Exploiting CVE-2021-26708 in the Linux kernel." My PoC exploit for CVE-2021-26708 had a very limited facility for privilege escalation, and I decided to continue my experiments with that vulnerability. This article describes how I improved the exploit, added a full-power ROP chain, and implemented a new method of bypassing the Linux Kernel Runtime Guard (LKRG).

  • [ru] Сила четырех байтов: эксплуатация уязвимости CVE-2021-26708 в ядре Linux

    В январе 2021 года я обнаружил и устранил пять уязвимостей в реализации виртуальных сокетов ядра Linux, которые получили идентификатор CVE-2021-26708. В этой статье я детально расскажу об эксплуатации одной из них с целью локального повышения привилегий на Fedora 33 Server для платформы x86_64. Я покажу, как с помощью небольшой ошибки доступа к памяти атакующий может получить контроль над всей операционной системой и при этом обойти средства обеспечения безопасности платформы. В заключение я расскажу про возможные средства предотвращения атаки.

  • Four Bytes of Power: Exploiting CVE-2021-26708 in the Linux kernel

    CVE-2021-26708 is assigned to five race condition bugs in the virtual socket implementation of the Linux kernel. I discovered and fixed them in January 2021. In this article I describe how to exploit them for local privilege escalation on Fedora 33 Server for x86_64, bypassing SMEP and SMAP.

  • [ru] Карантин для динамической памяти ядра Linux

    2020 год. Повсюду карантин. И эта статья тоже про карантин, но он другого рода. Я расскажу об экспериментах с карантином для динамической памяти ядра Linux.

  • Linux kernel heap quarantine versus use-after-free exploits

    It's 2020. Quarantines are everywhere – and here I'm writing about one, too. But this quarantine is of a different kind. In this article I'll describe the Linux Kernel Heap Quarantine that I developed for mitigating kernel use-after-free exploitation.

  • So near and yet so far: Cross compiler debugging war-story

    That is a short funny article that I decided to write after two days (and nights) of amazingly painful and hilarious debugging of a cross compiler.

  • [ru] Эксплуатация уязвимости CVE-2019-18683 в подсистеме V4L2 ядра Linux

    В данной статье описана эксплуатация уязвимостей CVE-2019-18683 в ядре Linux, которые я обнаружил и исправил в конце 2019 года. Я детально объясню, как мой прототип эксплойта для x86_64 выполняет локальное повышение привилегий из контекста ядерного потока и обходит средства защиты KASLR, SMEP и SMAP на Ubuntu Server 18.04 .

  • CVE-2019-18683: Exploiting a Linux kernel vulnerability in the V4L2 subsystem

    This article discloses exploitation of CVE-2019-18683, which refers to multiple five-year-old race conditions in the V4L2 subsystem of the Linux kernel. I found and fixed them at the end of 2019. Here I'm going to describe a PoC exploit for x86_64 that gains local privilege escalation from the kernel thread context (where the userspace is not mapped), bypassing KASLR, SMEP, and SMAP on Ubuntu Server 18.04.

  • [ru] Подборка классных технических докладов с конференции Chaos Communication Camp 2019

    С 21 по 25 августа в Германии проходил крупнейший хакерский фестиваль Chaos Communication Camp. Предлагаю вам обзор докладов CCCamp 2019, которые мне особенно понравились.

  • Case study: Searching for a vulnerability pattern in the Linux kernel

    This short article describes the investigation of one funny Linux kernel vulnerability and my experience with Semmle QL and Coccinelle, which I used to search for similar bugs.

  • Remarkable talks from 35C3

    The 35th Chaos Communication Congress was held at the end of December 2018 in Leipzig, Germany. I have attended a lot of interesting lectures. In this article I'll share the list of great technical talks which I liked the most.

  • [ru] Подборка интересных докладов с конференции 35C3

    В конце декабря 2018 года в Лейпциге прошел 35-й Chaos Communication Congress. В этом году конгресс порадовал большим количеством отличных технических докладов. Представляю вашему вниманию подборку самых интересных из них (в хронологическом порядке).

  • [ru] Подборка докладов по ядру Linux с Open Source Summit Europe 2018

    На прошлой неделе в Эдинбурге (Шотландия) прошел европейский Open Source Summit 2018. Представляю вашему вниманию подборку интересных докладов по ядру Linux, на которых мне удалось поприсутствовать.
  • [ru] Как STACKLEAK улучшает безопасность ядра Linux

    STACKLEAK - это функция безопасности ядра Linux, изначально разработанная создателями Grsecurity/PaX. Я довел STACKLEAK до официального ванильного ядра (Linux kernel mainline). В этой статье будет рассказано о внутреннем устройстве, свойствах данной функции безопасности и ее очень долгом непростом пути в mainline.
  • How STACKLEAK improves Linux kernel security

    STACKLEAK is a Linux kernel security feature initially developed by Grsecurity/PaX. I have introduced STACKLEAK into the Linux kernel mainline. This article describes the inner workings of this security feature and why the vanilla kernel needs it.
  • Kconfig hardened check for Linux kernel

    There are plenty of Linux kernel hardening config options. A lot of them are not enabled by the major distros. We have to enable these options ourselves to make our systems more secure. But nobody likes checking configs manually. So let the computers do their job!

  • Linux Kernel Defence Map

    Linux kernel security is a very complex area. It would be nice to have some graphical representation of its current state. So I've created a Linux Kernel Defence Map.

  • Blocking consecutive double-free in Linux kernel

    This short article describes how I improved the SLUB allocator in the Linux kernel.

  • [ru] Блокирование последовательного двойного освобождения ядерной памяти

    Эта небольшая статья про то, как я улучшил SLUB-аллокатор в ядре Linux.

  • 12 great technical talks at SHA2017

    SHA2017 is a large outdoor hacker camp, which took place in the Netherlands on August 4th to 8th. Despite the intensive preparation of my own talk at this event, I have attended a lot of interesting lectures. In this article I'll share my impressions and list 12 great technical talks which I liked the most.

  • [ru] Обзор лучших докладов конференции Still Hacking Anyway 2017

    С 4 по 8 августа в Нидерландах прошел крупный хакерский фестиваль SHA2017. Несмотря на интенсивную подготовку к своему выступлению, я посетил много интересных докладов. В этой заметке перечислю те из них, которые мне особенно понравились, и поделюсь впечатлениями.

  • [ru] Анализ и эксплуатация уязвимости CVE-2017-2636 в ядре Linux

    В данной статье я расскажу о прототипе эксплойта для уязвимости CVE-2017-2636 в ядре Linux. Он разработан для x86_64 и выполняет локальное повышение привилегий с обходом Supervisor Mode Execution Protection (SMEP).

  • CVE-2017-2636: Exploit the race condition in the n_hdlc Linux kernel driver

    This article discloses the exploitation of CVE-2017-2636, which is a race condition in the n_hdlc Linux kernel driver. My PoC exploit for x86_64 gains root privileges bypassing Supervisor Mode Execution Protection (SMEP).