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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
tough-cookie-2.5.0-cve-2023-26136-fix — tough-cookie 2.5.0의 CVE-2023-26136 보안 패치 - 하위 호환성을 유지하는 프로토타입 오염 취약점 수정 | Kitploit
도구/GitHubGitHub/uriyahav/tough-cookie-2.5.0-cve-2023-26136-fix
Static AnalysisVulnerability AnalysisCode AnalysisWeb SecurityPapers & ResearchLearning & Education
GitHuburiyahav/tough-cookie-2.5.0-cve-2023-26136-fix

tough-cookie-2.5.0-cve-2023-26136-fix

tough-cookie 2.5.0의 CVE-2023-26136 보안 패치 - 하위 호환성을 유지하는 프로토타입 오염 취약점 수정

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기
1년 전아직 검토되지 않음

CVE-2023-26136 tough-cookie 2.5.0 수정

미션 개요

이 프로젝트는 tough-cookie 4.1.3 이전 버전에서 발생하는 심각한 프로토타입 오염(Prototype Pollution) 취약점인 CVE-2023-26136을 해결합니다. 이 취약점은 쿠키 처리에 [email protected]을 사용하는 Penguin Software Inc.의 웹 애플리케이션에 영향을 미칩니다.

취약점 설명

CVE-2023-26136은 CookieJar를 rejectPublicSuffixes=false와 함께 사용할 때 발생하는 프로토타입 오염 취약점입니다. 이 문제는 MemoryCookieStore 클래스의 부적절한 객체 초기화에서 비롯되며, 공격자가 악의적으로 조작된 쿠키 도메인을 통해 Object.prototype에 속성을 주입할 수 있게 합니다.

기술적 세부 사항

취약점은 lib/memstore.js에 존재하며, 여기서 쿠키는 일반 JavaScript 객체({})를 사용하여 저장됩니다. 이 객체들은 Object.prototype을 상속받기 때문에, 공격자는 __proto__, constructor, 또는 prototype과 같은 도메인으로 쿠키를 설정하여 이를 악용할 수 있으며, 이는 프로토타입 오염으로 이어집니다.

해결 방법

패치 구현

수정 사항은 MemoryCookieStore 클래스에서 모든 {} 인스턴스를 Object.create(null)로 대체합니다:

root@kitploit:~
// Before (vulnerable)
this.idx = {};

// After (fixed)
this.idx = Object.create(null);

이 변경은 프로토타입 체인이 없는 객체를 생성하여 의도하지 않은 상속으로부터 쿠키 저장소를 효과적으로 격리함으로써 프로토타입 오염을 방지합니다.

수정된 파일

  • lib/memstore.js: 객체 초기화를 Object.create(null)을 사용하도록 업데이트

프로젝트 구조

root@kitploit:~
├── README.md                    # This file
├── changes.diff                 # Git-compatible diff file
├── test-cve-2023-26136.js      # Unit test for the fix
├── tough-cookie/
│   ├── index.js                 # Exploit demonstration
│   ├── Original v2.5.0/         # Original vulnerable version
│   ├── v2.5.0-PATCHED/          # Patched version
│   │   └── tough-cookie-2.5.0.tgz  # Packed version
│   └── package.json
└── mission.txt                  # Original mission requirements

설치 및 테스트

1. 패키징된 버전 (.tgz)

패치된 버전은 tough-cookie/v2.5.0-PATCHED/tough-cookie-2.5.0.tgz로 제공됩니다.

설치 방법:

root@kitploit:~
npm install ./tough-cookie/v2.5.0-PATCHED/tough-cookie-2.5.0.tgz

2. 테스트 스위트 실행

원본 tough-cookie 테스트 스위트가 통과해야 합니다. 테스트 실행:

root@kitploit:~
cd tough-cookie/v2.5.0-PATCHED
npm install
npm test

참고: 원본 tough-cookie 2.5.0은 이 배포판에 테스트 디렉토리를 포함하지 않지만, 패치된 버전은 원본 API와 완전한 호환성을 유지합니다.

3. 취약점 수정을 위한 단위 테스트

사용자 정의 단위 테스트를 실행하여 수정 사항을 검증:

root@kitploit:~
node test-cve-2023-26136.js

예상 출력:

root@kitploit:~
Testing CVE-2023-26136 fix...
✅ CVE-2023-26136 fix verified: No prototype pollution detected
✅ Test passed: The vulnerability has been successfully patched

4. 익스플로잇 데모

프로젝트에는 tough-cookie/index.js에 익스플로잇 데모가 포함되어 있습니다:

root@kitploit:~
cd tough-cookie
node index.js

이 명령은 원본 취약 버전과 패치된 버전을 모두 테스트하며, 다음을 표시합니다:

  • 원본 버전: EXPLOITED SUCCESSFULLY
  • 패치된 버전: EXPLOIT FAILED

변경 사항 문서

changes.diff

changes.diff 파일은 Git 호환 diff 파일이며, 다음 명령으로 적용할 수 있습니다:

root@kitploit:~
git apply changes.diff

이 diff는 의도하지 않은 수정 없이 취약점을 해결하는 데 필요한 변경 사항만 포함합니다.

익스플로잇 세부 사항

익스플로잇은 다음 방식으로 작동합니다:

  1. rejectPublicSuffixes: false로 CookieJar 생성
  2. 도메인이 __proto__인 악성 쿠키 설정
  3. Object.prototype 체인을 오염시킴
  4. 새로운 객체가 오염된 속성을 상속받음

잠재적 피해:

  • 애플리케이션 동작 조작
  • 보안 우회
  • 서비스 거부(Denial of Service)
  • 데이터 손상

Node.js 호환성

✅ Node.js 20 (LTS) 에서 테스트 및 검증 완료

저장소 정보

GitHub 저장소: Forked tough-cookie repository

Git 태그: v2.5.0-patched-cve-2023-26136-fix

CI/CD 경험

사용된 지속적 통합 도구:

  1. GitHub Actions - 전문가 수준

    • 자동화된 테스트 및 배포
    • 보안 스캐닝 및 종속성 관리
    • 멀티 플랫폼 테스트
  2. Jenkins - 고급 수준

    • 파이프라인 개발 및 유지보수
    • Docker 컨테이너화
    • 다양한 도구와의 통합
  3. Travis CI - 중급 수준

    • 빌드 자동화
    • 테스트 실행
    • 배포 워크플로우
  4. CircleCI - 중급 수준

    • CI/CD 파이프라인 구성
    • Docker 지원
    • 병렬 작업 실행
  5. GitLab CI/CD - 고급 수준

    • 파이프라인 개발
    • Kubernetes 배포
    • 보안 스캐닝 통합

추가 도구:

  • Docker - 전문가 수준 (컨테이너화 및 오케스트레이션)
  • Kubernetes - 고급 수준 (배포 및 확장)
  • SonarQube - 중급 수준 (코드 품질 분석)
  • Snyk - 중급 수준 (보안 취약점 스캐닝)

참고 자료

  • CVE-2023-26136 - NVD
  • tough-cookie GitHub 저장소
  • 프로토타입 오염 보안 가이드

라이선스

이 프로젝트는 보안 수정을 추가하면서 원본 tough-cookie 라이선스(BSD-3-Clause)를 유지합니다.


참고: 이는 CVE-2023-26136 취약점을 제거하면서 완전한 하위 호환성을 유지하는 보안 중심 패치입니다.

도구 다운로드