Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
async-http-client-check — 에이전트, 스킬, 도구(Gmail, Calendar)를 갖춘 자체 호스팅 AI 워크스페이스로, 전적으로 자신의 프로바이더 API 키(BYOK)로 실행됩니다. 자신의 키를 가져오세요 — Groq, OpenRouter, NVIDIA, Hugging Face, Google AI. | Kitploit
도구/GitHubGitHub/xiaoqimikko/async-http-client-check
Defensive ToolsStatic AnalysisVulnerability ScannersVulnerability AnalysisDevSecOpsUtilities & FrameworksSupply Chain Security
GitHubxiaoqimikko/async-http-client-check

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

async-http-client-check

에이전트, 스킬, 도구(Gmail, Calendar)를 갖춘 자체 호스팅 AI 워크스페이스로, 전적으로 자신의 프로바이더 API 키(BYOK)로 실행됩니다. 자신의 키를 가져오세요 — Groq, OpenRouter, NVIDIA, Hugging Face, Google AI.

저장소 보기
10시간 23분 전아직 검토되지 않음

async-http-client-check

org.asynchttpclient:async-http-client(AsyncHttpClient, "AHC")의 저장소 수준 보안 권고 21건에 대한 오프라인 검사기. 사용 중인 jar가 실제로 어떤 권고에 노출되어 있는지 알려주고, Dependabot과 OSV가 볼 수 없는 권고를 표시하며, 한 줄에 하나의 답을 제시합니다: 3.0.13(3.x) / 2.16.1(2.x).

단일 jar, 런타임 의존성 없음, 완전 오프라인, Java 17+.


이 도구가 존재하는 이유

1. 2026-08-09에 17건의 권고가 게시되었지만, 전역 데이터베이스에는 4건만 있습니다

2026-08-09에 AsyncHttpClient 유지관리자들은 프로젝트 자체 저장소 (AsyncHttpClient/async-http-client → Security → Advisories)에 17건의 보안 권고를 게시했습니다.

Dependabot과 OSV는 그 페이지를 읽지 않습니다. 이들은 GitHub 전역 권고 데이터베이스를 읽습니다. 2026-09-19 기준으로 해당 데이터베이스에는 17건 중 4건만 들어 있습니다(CVE-2026-85716, CVE-2026-85717, CVE-2026-85720, CVE-2026-85721, 모두 2026-09-17에 추가됨). 나머지 13건은 GET /advisories/<GHSA>에서 404를 반환합니다. 그중 2건은 CVE ID까지 있습니다(CVE-2026-85718, CVE-2026-85719).

더 오래된 권고 4건(CVE-2024-53990, CVE-2026-40490, CVE-2026-45300, CVE-2026-55688)을 포함하면 저장소에는 21건이 나열되어 있고, 전역 데이터베이스에는 8건이 있습니다.

2. Dependabot이 설치하라고 알려주는 버전 자체가 그중 5건의 영향을 받습니다

전역 데이터베이스를 기준으로 "모든 것을 해결하는 버전"을 계산하면 3.x의 답은 **3.0.12**입니다. OSV도 동일합니다: 3.0.12에 대한 POST /v1/query는 취약점 0건을 반환합니다.

저장소 권고에 따르면 3.0.12는 여전히 다음 5건의 범위 안에 있습니다:

두 개의 high 등급 권고에 대해 정확히 말하자면: 이들은 자격 증명을 유출하지만, 자격 증명을 구성한 경우에만 (Realm, Digest/NTLM 또는 프록시) 해당되며, GHSA-jmqq는 추가로 다른 호스트로의 재전송이 필요합니다. 인증 없는 일반 GET만 수행하는 클라이언트는 이들에 노출되지 않습니다. 이 도구는 클라이언트를 어떻게 사용하는지 알지 못하며, 버전 범위가 말하는 바를 보고할 뿐 판단은 사용자에게 맡깁니다.

유지관리자들은 CVE-2026-85721의 본문에서 직접 이렇게 말합니다:

3.0.12 자체가 별도의 문제인 GHSA-rqf5-2wxv-rjf4의 영향을 받는다는 점에 유의하십시오 … 두 수정 사항을 모두 반영하려면 3.0.13으로 업그레이드하십시오.

따라서 3.x에서는: Dependabot은 3.0.12라고 말하고, 업그레이드 후에는 초록색으로 표시합니다. 실제 답은 3.0.13입니다. 2.x에서는 어느 쪽이든 답이 2.16.1이지만, 그 뒤에 있는 권고 13건은 여전히 스캐너에 보이지 않습니다.

3. 압축 폭탄은 구성이 필요 없습니다

CVE-2026-85721(high)은 기본 설정에 적용되는 항목입니다: 자동 응답 압축 해제가 기본으로 켜져 있고, 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에 나타나지 않을 수 있습니다. 이 도구는 실제로 배포되는 jar 내부의 META-INF/maven/org.asynchttpclient/async-http-client/pom.properties를 읽습니다 — Spring Boot fat-jar(BOOT-INF/lib)나 WAR(WEB-INF/lib)에 중첩된 jar도 포함합니다. 레거시 1.x 좌표 com.ning:async-http-client는 동일한 artifactId를 가지며, 나열되지만 판정되지는 않습니다.

사용법

root@kitploit:~
java -jar async-http-client-check.jar target/                 # 빌드 출력 스캔
java -jar async-http-client-check.jar myapp.jar               # fat-jar / war, 중첩 jar 포함
java -jar async-http-client-check.jar --version-of 3.0.12     # 버전을 직접 판정

각 적중은 ID(CVE가 있으면 CVE, 없으면 GHSA), 심각도, 제목, 수정 버전, 그리고 해당되는 경우 Dependabot/全局库:未收录("전역 데이터베이스에 없음")를 출력합니다. 출력은 중국어입니다.

종료 코드

코드의미

"읽을 수 없었다"와 "안전하다"는 서로 다른 문장이어야 합니다. 정당하게 비어 있는 jar (순수한 22바이트 EOCD 레코드)는 읽기 실패가 아닙니다. 어떤 파일이 영향을 받았고 동시에 다른 파일을 읽을 수 없다면, 종료 코드는 1로 유지됩니다.

이 도구가 알려주지 않는 것

  • 이 21건의 권고만, async-http-client만 해당합니다. AHC가 의존하는 Netty jar의 Netty CVE는 포함되지 않습니다.
  • 도달 가능성은 확인하지 않습니다. 2026-08-09 권고 대부분은 인증, 프록시, WebSocket, 쿠키 또는 이어받기 다운로드가 있어야 문제가 됩니다. 심각도는 게시된 그대로 출력됩니다.
  • 정보 격차는 일시적입니다. GitHub는 누락된 13건을 언제든 전역 데이터베이스에 추가할 수 있습니다. tools/recheck_before_publish.py가 그것이 여전히 존재하는지 확인합니다.

규칙 테이블이 만들어지는 방식

src/main/java/dev/mikko/ahccheck/RuleTable.java는 생성되며, 절대 손으로 편집하지 않습니다:

root@kitploit:~
python tools/gen_rules.py --dry   # 어서션만 실행
python tools/gen_rules.py         # 테이블 재생성

이 스크립트는 저장소 수준 권고(vulnerable_version_range, patched_versions)를 읽고, 각각을 전역 데이터베이스에서 조회하며, "Dependabot에 보임: 예/아니오"를 모든 규칙의 필드로 기록합니다. 일곱 개의 어서션이 통과해야 하며, 그렇지 않으면 아무것도 기록되지 않습니다: 권고 수와 전역 데이터베이스에서 누락된 정확히 13건의 집합이 여전히 기준선과 일치; 교집합이 여전히 3.0.13 / 2.16.1(그리고 전역 데이터베이스만으로 계산할 때는 3.0.12); 해당 버전들이 Maven Central에서 200을 반환하고 센티널 버전은 404를 반환; 3.0.12가 여전히 최소 하나의 high 권고에 해당하고 그중 어느 것도 전역 데이터베이스에 없음; 모든 연산자 스타일이 존재하고 경계 사례가 여전히 뒤집힘; 그리고 저장소/전역 불일치가 여전히 정확히 알려진 그 하나임.

실제 jar 엔드투엔드 검사는 tools/e2e_real_jars.py에 있습니다(Maven Central의 실제 jar, fat-jar와 WAR 포함). tools/recheck_before_publish.py는 격차를 재검증합니다 — 전역 데이터베이스, OSV, Maven Central 각각에 양성 대조와 센티널을 두고 — 무언가 바뀌면 비영(非零)으로 종료합니다.

라이선스

Apache License 2.0 — LICENSE 참조.

도구 다운로드
권고심각도내용필요 조건
GHSA-rqf5-2wxv-rjf4high사용 가능한 nonce가 없는 Digest challenge에 Authorization: Basic으로 응답, 즉 비밀번호가 base64로 전송됨Digest Realm(서버 또는 프록시 인증)
GHSA-jmqq-x5g9-9p2whigh요청이 다른 호스트로 재전송될 때, 첫 번째 호스트의 요청/자격 증명이 두 번째 호스트로 전달됨다른 호스트로의 재전송(장애 조치 ResponseFilter 또는 IOException 재시도 경로) 및 자격 증명 또는 프록시
GHSA-vvp4-63h8-v5pmmediumNTLM / Negotiate 연결이 주체(principal) 간에 재사용됨요청별 자격 증명을 사용하는 NTLM 또는 Negotiate
GHSA-f9m8-cv68-674wmedium쿠키 Domain이 공개 접미사 목록과 대조되지 않음(Domain=co.uk)출처 간 공유 CookieStore
GHSA-qhv6-3pmh-95q4lowqop="auth-int"가 Digest 상호 인증을 비활성화함(3.0.12에만 해당)Digest 인증
021건 중 어디에도 영향받지 않음, 그리고 모든 파일을 실제로 읽음
1영향받음
2판정할 수 없음 — 잘못된 인수, AHC jar를 찾지 못함, 인식할 수 없는 버전, 또는 게시된 범위를 벗어나는 사전 릴리스 버전
4일부 파일을 읽을 수 없음 — zip이 아니거나, 잘렸거나, I/O 실패