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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-28318-check — SolarWinds Serv-U 호스트가 CVE-2026-28318에 취약한지 안전하게 탐지 | Kitploit
도구/GitHubGitHub/bishopfox/cve-2026-28318-check
ReconnaissanceVulnerability AnalysisExploitationInformation GatheringWeb SecurityPenetration Testing
GitHubbishopfox/cve-2026-28318-check

CVE-2026-28318-check

SolarWinds Serv-U 호스트가 CVE-2026-28318에 취약한지 안전하게 탐지

저장소 보기
222개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

SolarWinds Serv-U 인증되지 않은 DoS: 안전한 탐지 스크립트

안전하고 파괴적이지 않은 탐지기로 CVE-2026-28318에 대한 것입니다. **SolarWinds Serv-U <= 15.5.4.108**에서의 인증되지 않은 서비스 거부 취약점입니다. 본문과 함께 Content-Encoding: deflate를 전달하는 단일 POST가 해당 본문을 메모리 내 deflate 압축 해제기(CZLibCompression)에 공급하며, 그 버퍼 관리가 잘못된 free()를 수행하여 Serv-U 서비스 프로세스를 중단시킵니다. (CVSS 7.5, AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H, CWE-763.)

이 스크립트는 대상을 충돌시키지 않습니다. 호스트당 한 가지 질문에 답합니다: 15.5.4 HF1 수정이 누락되었습니까? 이것은 서버가 CVE-2026-28318에 취약한지 여부에 대한 정확한 대리자입니다.

실행해도 안전한가요?

예. 이것이 이 도구의 핵심이며, 프로덕션 환경에서 실행해도 안전합니다:

  • deflate를 절대 보내지 않습니다. deflate는 취약한 압축 해제기를 시작하는 유일한 Content-Encoding 값입니다. 스크립트는 무해한 Content-Encoding: identity와 짧은 본문을 가진 단일 POST를 보내며, 이는 충돌 코드 경로에 도달하지 않습니다.
  • 차등 검사이지 익스플로잇이 아닙니다. HF1 수정(빌드 15.5.4.125)은 본문과 비어 있지 않은 Content-Encoding을 가진 모든 요청을 **415 Unsupported Media Type**으로 거부합니다. 취약한 빌드는 그러한 게이트가 없으며 identity 프로브를 정상적으로 처리합니다. 따라서 판정은 순전히 상태 코드에 달려 있으며, 서비스는 절대 불안정해지지 않습니다.
  • 사전 인증 및 읽기 전용입니다. 하나의 요청, 로그인 없음, 대상 상태 변경 없음.

작동 방식

스크립트는 사이트 루트로 하나의 안전한 POST를 보내고 상태 코드를 읽습니다:

대상은 프로브 응답 자체의 Server 헤더에서 Serv-U로 식별되므로 별도의 식별 요청이 필요하지 않습니다.

수정이 누락되었음을 증명합니다; 확인을 위해 서비스를 충돌시키지 않습니다. VULNERABLE 판정은 HF1 입력 유효성 검사 게이트가 없음을 의미하며, 이는 이 CVE의 정확한 대리자입니다. 스크립트는 의도적으로 충돌하는 deflate 값을 보내지 않고 거기서 멈춥니다.

요구 사항

  • Python 3.7+, 표준 라이브러리만 사용, 타사 패키지 없음.

사용법

root@kitploit:~
# single host (scheme defaults to https://)
./cve_2026_28318_check.py 10.0.0.5

# explicit URL / port
./cve_2026_28318_check.py https://10.0.0.5:443

# several hosts at once
./cve_2026_28318_check.py host-a:443 host-b https://host-c

# scan a list, one target per line ('#' comments allowed), compact output
./cve_2026_28318_check.py -f targets.txt --brief

# machine-readable output for pipelines
./cve_2026_28318_check.py -f targets.txt --json > results.json

옵션

예제

취약한 Serv-U 서버 ([!] 표시와 VULNERABLE은 TTY에서 빨간색으로 표시됨):

root@kitploit:~
$ ./cve_2026_28318_check.py https://10.0.0.5
[!] https://10.0.0.5: VULNERABLE  [missing-415-gate]
      Serv-U returned 401 (not 415) to the identity probe, so the HF1 415 gate is ABSENT (build <= 15.5.4.108) and CVE-2026-28318 is unpatched. This proves the fix is missing; it does NOT crash the service. Apply 15.5.4 HF1 (build 15.5.4.125+).

패치된 서버는 PATCHED를 반환합니다 (HF1 415 게이트가 identity 프로브에 응답함):

root@kitploit:~
$ ./cve_2026_28318_check.py https://10.0.0.6
[+] https://10.0.0.6: PATCHED  [hf1-415-gate]
      Serv-U returned 415 to the identity probe, so the 15.5.4 HF1 input-validation gate is present (build >= 15.5.4.125). Not vulnerable to CVE-2026-28318.

목록 스캔, 호스트당 정렬된 한 줄 (--brief). 종료 상태는 호스트가 VULNERABLE이면 1, 그렇지 않으면 0이며, 스크립트에서 유용합니다:

root@kitploit:~
$ ./cve_2026_28318_check.py -f targets.txt --brief; echo "exit: $?"
VULNERABLE  https://10.0.0.5                 missing-415-gate
PATCHED     https://10.0.0.6                 hf1-415-gate
NOT-SERV-U  https://10.0.0.7                 not-servu
ERROR       https://10.0.0.8                 no-response
exit: 1

파이프라인을 위한 기계 판독 가능 출력 (--json):

root@kitploit:~
$ ./cve_2026_28318_check.py https://10.0.0.5 --json
[
  {
    "target": "https://10.0.0.5",
    "verdict": "VULNERABLE",
    "reason": "missing-415-gate",
    "detail": "Serv-U returned 401 (not 415) to the identity probe, so the HF1 415 gate is ABSENT (build <= 15.5.4.108) and CVE-2026-28318 is unpatched. This proves the fix is missing; it does NOT crash the service. Apply 15.5.4 HF1 (build 15.5.4.125+)."
  }
]

판정

종료 코드

코드의미
0VULNERABLE인 대상 없음
1하나 이상의 대상이 VULNERABLE임
2사용법 오류 (잘못된 인수 / 읽을 수 없는 대상 파일)

제한 사항

  • 프록시 / TLS 종료. Serv-U 앞의 리버스 프록시 또는 로드 밸런서가 Server 헤더를 제거하거나 (NOT-SERV-U로 보고) 자체 415로 응답할 수 있습니다 (가짜 PATCHED 가능). 가능하면 도구를 Serv-U 관리 인터페이스에 직접 지정하십시오.
  • 충돌 테스트가 아닙니다. VULNERABLE 판정은 HF1 입력 유효성 검사 수정이 없음을 증명합니다; 충돌을 입증하지는 않습니다 (의도적으로). 그 게이트는 이 CVE의 정확한 대리자입니다.
  • TLS가 검증되지 않습니다. Serv-U 관리 인터페이스는 일반적으로 자체 서명되어 있으므로 스크립트는 인증서를 검증하지 않습니다. 도달 가능성을 확인하고 상태를 읽을 뿐입니다.
  • 도달 가능성만. 결과는 서버가 실행하는 네트워크 위치에서 반환하는 내용을 반영합니다.

수정 조치

SolarWinds Serv-U 15.5.4 Hotfix 1 (빌드 15.5.4.125) 이상으로 업그레이드하십시오. 이는 본문과 비어 있지 않은 Content-Encoding을 모두 포함하는 요청을 거부하는 입력 유효성 검사 게이트를 추가합니다. 패치할 수 있을 때까지 Serv-U 서비스에 대한 네트워크 액세스를 신뢰할 수 있는 소스로 제한하십시오.

라이선스

이 코드는 MIT 라이선스에 따라 배포됩니다.

법적 고지

사전 상호 동의 없이 대상을 공격하기 위해 이 도구를 사용하는 것은 불법입니다. 모든 관련 지역, 주, 연방 법률을 준수하는 것은 최종 사용자의 책임입니다. 개발자는 어떠한 책임도 지지 않으며 이 프로그램으로 인한 오용이나 손해에 대해 책임을 지지 않습니다.

참고 자료

  • NVD: CVE-2026-28318
  • MITRE: CVE-2026-28318
도구 다운로드
identity 프로브 응답판정의미
Serv-U Server 헤더, 상태 ≠ 415 (예: 401 / 404 / 200 / 302)VULNERABLE [missing-415-gate]HF1 415 게이트가 없음, 따라서 빌드 <= 15.5.4.108, CVE-2026-28318 패치되지 않음.
Serv-U Server 헤더, 상태 = 415PATCHED [hf1-415-gate]HF1 입력 유효성 검사 게이트 있음, 따라서 빌드 >= 15.5.4.125. 취약하지 않음.
응답했지만 Serv-U Server 헤더 없음NOT-SERV-U [not-servu]Serv-U 서버가 아니거나 프록시가 헤더를 제거함.
사용 가능한 응답 없음 / 연결 실패ERROR [no-response]도달 가능한 HTTP 서비스 없음, 필터링됨, TLS 오류 또는 시간 초과.
플래그설명
targets하나 이상의 HOST[:PORT] 또는 URL (스킴 기본값은 https://)
-t, --target TARGET대상 추가 (반복 가능)
-f, --file FILE파일에서 대상 읽기 (한 줄에 하나; # 주석)
-b, --brief대상당 정렬된 한 줄, 많은 호스트 스캔에 이상적
--json구조화된 JSON 결과 출력
--no-color색상 출력 비활성화 (NO_COLOR 및 비-TTY도 준수)
--timeout SECS프로브당 시간 초과 (기본값: 10)
-v, --verbose보낸 프로브와 원시 응답 헤더 표시
판정이유 태그의미
VULNERABLEmissing-415-gateHF1 415 게이트가 없는 Serv-U 서버, 따라서 빌드 <= 15.5.4.108, CVE-2026-28318 패치되지 않음. 즉시 패치하십시오.
PATCHEDhf1-415-gateidentity 프로브에 415로 응답하는 Serv-U 서버, 따라서 HF1 수정이 있음 (빌드 >= 15.5.4.125).
NOT-SERV-Unot-servu응답했지만 Serv-U Server 헤더 없음; Serv-U가 아니거나 프록시가 제거함.
ERRORno-response사용 가능한 HTTP 응답 없음 (해당 포트에 서비스 없음, 필터링됨, TLS 오류 또는 시간 초과).
ERRORbad-target대상 인수를 구문 분석할 수 없음.