Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2026-3909 — Доказательство концепции эксплуатации для CVE-2026-3909, уязвимости выхода за границы буфера в Skia (Chromium), с патчами и анализом сбоев для надёжного срабатывания в реальных браузерных средах. | Kitploit
Инструменты/GitHubGitHub/jaf0rk/cve-2026-3909
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийФаззингАнализ Бинарных Файлов
GitHubjaf0rk/cve-2026-3909

CVE-2026-3909

Доказательство концепции эксплуатации для CVE-2026-3909, уязвимости выхода за границы буфера в Skia (Chromium), с патчами и анализом сбоев для надёжного срабатывания в реальных браузерных средах.

Репозиторий
2175 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2026-3909 Chromium Browser PoC

Этот репозиторий содержит proof-of-concept (PoC) для CVE-2026-3909, который можно надежно воспроизвести в браузере Chromium.

Предыстория

Официальное исправление Skia для этой уязвимости включало только упрощенный демонстрационный тестовый пример:

  • Официальное демо: AtlasOobTest.cpp

Оно не может работать в реальной среде Chromium. Официальное демо было намеренно ограничено и не содержало ключевых условий срабатывания.
Этот PoC построен на основе официального демо и был изменен для надежного срабатывания уязвимости в реальной среде браузера Chromium.

Включенные патчи

Этот PoC состоит из изменений в следующих файлах:

1. raster_implementation.cc.patch

Путь: <корневой каталог Chromium>/src/gpu/command_buffer/client/raster_implementation.cc

2. SkChromeRemoteGlyphCache.cpp.patch

Путь: <корневой каталог Chromium>/src/third_party/skia/src/text/gpu/SkChromeRemoteGlyphCache.cpp

3. Прочее

В дополнение к двум существующим файлам патчей вы также можете добавить отладочный код внутри функции DrawAtlas::hasID(). Это позволит вам проанализировать и наблюдать, почему срабатывает прерывание (abort).``` bool hasID(const skgpu::PlotLocator& plotLocator) { if (!plotLocator.isValid()) { return false; }

    uint32_t plot = plotLocator.plotIndex();
    uint32_t page = plotLocator.pageIndex();
    // patch code
    printf("[*] POC plot idx: %x fNumPlots: %x\n", plot, fNumPlots);
    // origin code
    uint64_t plotGeneration = fPages[page].fPlotArray[plot]->genID();
    uint64_t locatorGeneration = plotLocator.genID();
    return plot < fNumPlots && page < fNumActivePages && plotGeneration == locatorGeneration;
}
```markdown
output:

[*] POC plot idx: 1f fNumPlots: 10

## Git log
Chromium:```
commit e00a64ead1abef9447943efede7bc26362ac3797 (HEAD -> 146.0.7680.71, tag: 146.0.7680.71)
Author: Roger McFarlane <[email protected]>
Date:   Mon Mar 9 12:52:01 2026 -0700

    [M146-desktop-respin] Make LimitedLayerEntropyCostTracker time-aware.
    
    This change modifies the LimitedLayerEntropyCostTracker to account for
    the entropy cost of studies that are active at a specific evaluation
    time. The evaluation time is passed to the tracker's constructor and is
    used to check against the study's filter dates and Google web visibility
    dates.
    
    The current time for entropy evaluation is sourced from
    VariationsIdsProvider.
    
    (cherry picked from commit 2ec2c50b47686def251947a2675a207863803cac)
    
    Bug: 490248046, 490432663
    Change-Id: I3174730f35b037d533bf10b2b1d0531e3781acfe
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7639358
    Reviewed-by: Alexei Svitkine <[email protected]>
    Commit-Queue: Alexei Svitkine <[email protected]>
    Cr-Original-Commit-Position: refs/heads/main@{#1595543}
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7637760
    Bot-Commit: Rubber Stamper <[email protected]>
    Cr-Commit-Position: refs/branch-heads/7680_65@{#23}
    Cr-Branched-From: efe36a9d42443b4091a5be1be21e93ceff9b7a5e-refs/branch-heads/7680@{#1898}
    Cr-Branched-From: 76b7d80e5cda23fe6537eed26d68c92e995c7f39-refs/heads/main@{#1582197}

Аргументы сборки```

Set build arguments here. See gn help buildargs.

is_official_build = false is_debug = true
symbol_level = 2 v8_symbol_level = 2 blink_symbol_level = 2 is_component_build = false
proprietary_codecs = true
ffmpeg_branding = "Chrome"
v8_enable_sandbox = true dcheck_always_on = true optimize_webui = true target_os = "linux" target_cpu = "x64"

## Использование

1. Примените два файла патчей к уязвимой версии Chromium.
2. Откройте браузер `chrome <path>/trigger.html`

## Прерывание```
gen/third_party/libc++/src/include/__memory/unique_ptr.h:578: libc++ Hardening assertion __checker_.__in_bounds<deleter_type>(std::__to_address(__ptr_), __i) failed: unique_ptr<T[]>::operator[](https://github.com/jaf0rk/cve-2026-3909/blob/main/index): index out of range
Received signal 6
Скачать инструмент