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

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

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

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

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

Категории

Все категории
Loading categories
async-http-client-check — Самостоятельно размещаемое рабочее пространство ИИ с агентами, навыками и инструментами (Gmail, Calendar), которое полностью работает на ваших собственных API-ключах провайдера (BYOK). Используйте свои ключи — Groq, OpenRouter, NVIDIA, Hugging Face, Google AI. | Kitploit
Инструменты/GitHubGitHub/xiaoqimikko/async-http-client-check
Оборонительные ИнструментыСтатический анализСканеры уязвимостейАнализ уязвимостейDevSecOpsУтилиты и фреймворкиБезопасность Цепочки Поставок
GitHubxiaoqimikko/async-http-client-check

Популярное

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

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

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

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

Смотреть все инструменты →

async-http-client-check

Самостоятельно размещаемое рабочее пространство ИИ с агентами, навыками и инструментами (Gmail, Calendar), которое полностью работает на ваших собственных API-ключах провайдера (BYOK). Используйте свои ключи — Groq, OpenRouter, NVIDIA, Hugging Face, Google AI.

Репозиторий
11 ч 11 мин назадЕщё не проверено
Поделиться

async-http-client-check

Автономный офлайн-сканер для 21 рекомендации по безопасности уровня репозитория org.asynchttpclient:async-http-client (AsyncHttpClient, "AHC"). Он сообщает, каким из них реально подвержен ваш jar, отмечает те, которые Dependabot и OSV не видят, и даёт один ответ на строку: 3.0.13 (3.x) / 2.16.1 (2.x).

Один jar, ноль runtime-зависимостей, полностью офлайн, Java 17+.


Зачем это нужно

1. 17 рекомендаций были опубликованы 2026-08-09 — в глобальной базе есть 4 из них

2026-08-09 сопровождающие AsyncHttpClient опубликовали 17 рекомендаций по безопасности в собственном репозитории проекта (AsyncHttpClient/async-http-client → Security → Advisories).

Dependabot и OSV не читают эту страницу. Они читают глобальную базу рекомендаций GitHub. По состоянию на 2026-09-19 в этой базе содержится только из 17 (, , , , все добавлены 2026-09-17). Остальные возвращают на ; у двух из этих 13 даже есть CVE-идентификаторы (, ).

4
CVE-2026-85716
CVE-2026-85717
CVE-2026-85720
CVE-2026-85721
13
404
GET /advisories/<GHSA>
CVE-2026-85718
CVE-2026-85719

Включая четыре более старые рекомендации (CVE-2024-53990, CVE-2026-40490, CVE-2026-45300, CVE-2026-55688), репозиторий перечисляет 21; в глобальной базе есть 8.

2. Версия, которую Dependabot советует установить, сама подвержена 5 из них

Вычислите "версию, которая закрывает всё" по глобальной базе, и ответ для 3.x будет 3.0.12. OSV соглашается: POST /v1/query для 3.0.12 возвращает ноль уязвимостей.

Рекомендации репозитория говорят, что 3.0.12 всё ещё входит в диапазон пяти:

РекомендацияКритичностьЧтоТребуется
GHSA-rqf5-2wxv-rjf4высокаяНа Digest-запрос без пригодного nonce отвечают Authorization: Basic, то есть пароль в base64Digest Realm (аутентификация сервера или прокси)
GHSA-jmqq-x5g9-9p2wвысокаяКогда запрос повторяется к другому хосту, запрос / учётные данные первого хоста уходят второму хостуПовтор к другому хосту (failover ResponseFilter или путь повторной попытки при IOException) и учётные данные или прокси
GHSA-vvp4-63h8-v5pmсредняяСоединения NTLM / Negotiate переиспользуются между разными принципаламиNTLM или Negotiate с учётными данными на каждый запрос
GHSA-f9m8-cv68-674wсредняяCookie Domain не проверяется по списку публичных суффиксов (Domain=co.uk)Общий CookieStore между источниками
GHSA-qhv6-3pmh-95q4низкаяqop="auth-int" отключает взаимную аутентификацию Digest (только 3.0.12)Digest-аутентификация

Будьте точны насчёт двух высоких: они утекают учётные данные, но только если вы настроили учётные данные (Realm, Digest/NTLM или прокси) — а GHSA-jmqq дополнительно требует повтора к другому хосту. Клиент, выполняющий обычные неаутентифицированные GET-запросы, им не подвержен. Этот инструмент не знает, как вы используете клиент; он сообщает то, что говорит диапазон версий, и оставляет решение за вами.

Сопровождающие сами говорят это в тексте CVE-2026-85721:

Note that 3.0.12 is itself affected by a separate issue, GHSA-rqf5-2wxv-rjf4 … Upgrade to 3.0.13 to pick up both fixes.

Итак, для 3.x: Dependabot говорит 3.0.12, и после обновления он показывает зелёный. Реальный ответ — 3.0.13. Для 2.x ответ в любом случае 2.16.1 — но 13 рекомендаций за ним всё ещё невидимы для вашего сканера.

3. Бомба декомпрессии не требует настройки

CVE-2026-85721 (высокая) — та, что применяется к настройкам по умолчанию: автоматическая декомпрессия ответа включена по умолчанию, а путь HTTP/1.1 раздувает тело без ограничения общего размера. Вредоносный или скомпрометированный сервер — или любой, кто способен изменить ответ в пути, — может отправить небольшое тело gzip/deflate, которое исчерпает кучу. Затронуты: <= 3.0.11 и <= 2.16.0. Эта есть в глобальной базе, поэтому Dependabot о ней предупреждает.

Границы записаны непоследовательно

Диапазоны смешивают >=, <=, <, явное = 3.0.12 и голое 3.0.0. Одна и та же 3.0.11 безопасна для CVE-2026-55688 (< 3.0.11) и затронута для GHSA-v9f2-7rw2-gr2x (<= 3.0.11). Таблица правил сохраняет каждый оператор точно как написано; утверждение в tools/gen_rules.py и модульный тест падают, если граница перестаёт вести себя так. Любой фрагмент диапазона, который не распознаёт парсер, — это ошибка, а не "не затронуто".

Там, где репозиторий и глобальная база оба содержат рекомендацию, но расходятся, таблица правил берёт объединение. Сегодня это один случай: CVE-2024-53990 — репозиторий перечисляет только версию 3.x 3.0.0, глобальная база также перечисляет 2.x >= 2.1.0, < 2.12.4. Доверие только одной стороне привело бы к неполному отчёту.

И он не сканирует pom.xml — намеренно

AHC обычно является транзитивной зависимостью, подтягиваемой SDK или клиентской библиотекой. artifactId может вообще не появляться в вашем pom.xml. Этот инструмент читает META-INF/maven/org.asynchttpclient/async-http-client/pom.properties внутри jar-файлов, которые фактически поставляются — включая jar-файлы, вложенные в Spring Boot fat-jar (BOOT-INF/lib) или WAR (WEB-INF/lib). Устаревшая координата 1.x com.ning:async-http-client имеет тот же artifactId; она перечислена, но не оценивается.

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

root@kitploit:~
java -jar async-http-client-check.jar target/                 # scan build output
java -jar async-http-client-check.jar myapp.jar               # fat-jar / war, nested jars included
java -jar async-http-client-check.jar --version-of 3.0.12     # judge a version directly

Каждое попадание выводит ID (CVE, если есть, иначе GHSA), критичность, заголовок, исправленную версию и Dependabot/全局库:未收录 ("не в глобальной базе"), где применимо. Вывод на китайском языке.

Коды выхода

КодЗначение
0Не затронут ни одной из 21, и каждый файл действительно был прочитан
1Затронут
2Не удалось оценить — неверные аргументы, AHC jar не найден, нераспознанная версия или предрелизная версия, выходящая за пределы опубликованных диапазонов
4Некоторый файл не удалось прочитать — не zip, усечён или сбой ввода-вывода

"Я не смог прочитать" и "вы в безопасности" должны быть двумя разными предложениями. Законно пустой jar (голая 22-байтовая запись EOCD) не является ошибкой чтения. Если один файл затронут и другой нечитаем, код выхода остаётся 1.

Чего он вам не сообщает

  • Только эти 21 рекомендация, только async-http-client. CVE в Netty, от которых зависят jar-файлы Netty, используемые AHC, не покрываются.
  • Достижимость не проверяется. Большинство рекомендаций от 2026-08-09 требуют аутентификации, прокси, WebSocket, cookie или возобновляемых загрузок, чтобы иметь значение. Критичность выводится как опубликована.
  • Информационный пробел временный. GitHub может добавить недостающие 13 в глобальную базу в любой момент. tools/recheck_before_publish.py проверяет, существует ли он ещё.

Как строится таблица правил

src/main/java/dev/mikko/ahccheck/RuleTable.java генерируется, никогда не редактируется вручную:

root@kitploit:~
python tools/gen_rules.py --dry   # run the assertions only
python tools/gen_rules.py         # regenerate the table

Он читает рекомендации уровня репозитория (vulnerable_version_range, patched_versions), ищет каждую в глобальной базе и записывает "видно Dependabot: да/нет" как поле каждой правила. Семь утверждений должны пройти, иначе ничего не записывается: количество рекомендаций и точный набор 13 отсутствующих в глобальной базе всё ещё совпадают с базовым; пересечения всё ещё 3.0.13 / 2.16.1 (и 3.0.12 при вычислении только по глобальной базе); эти версии возвращают 200 из Maven Central, тогда как контрольная версия возвращает 404; 3.0.12 всё ещё попадает как минимум в одну высокую рекомендацию, и ни одна из них не в глобальной базе; все стили операторов присутствуют, и пограничный случай всё ещё переключается; и расхождение репозитория/глобальной базы всё ещё точно известное.

Сквозные проверки на реальных jar-файлах находятся в tools/e2e_real_jars.py (настоящие jar-файлы из Maven Central, включая fat-jar и WAR). tools/recheck_before_publish.py повторно проверяет пробел — глобальную базу, OSV и Maven Central, каждую с положительным контролем и контрольной версией — и завершается с ненулевым кодом, если что-то изменилось.

Лицензия

Apache License 2.0 — см. LICENSE.

Скачать инструмент