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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-26717 — # CVE-2026-26717 기술 분석: OpenFUN Richie LMS 웹훅 인증의 HMAC 타이밍 공격 취약한 코드, 영향, 그리고 `hmac.compare_digest`를 사용한 수정 사항을 포함한 OpenFUN Richie LMS 웹훅 인증의 HMAC 타이밍 공격에 대한 기술 분석입니다. | Kitploit
도구/GitHubGitHub/rickidevs/cve-2026-26717
Vulnerability AnalysisCode AnalysisExploitationWeb SecurityAuthentication
GitHubrickidevs/cve-2026-26717

CVE-2026-26717

# CVE-2026-26717 기술 분석: OpenFUN Richie LMS 웹훅 인증의 HMAC 타이밍 공격 취약한 코드, 영향, 그리고 `hmac.compare_digest`를 사용한 수정 사항을 포함한 OpenFUN Richie LMS 웹훅 인증의 HMAC 타이밍 공격에 대한 기술 분석입니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-26717: OpenFUN Richie LMS의 HMAC 타이밍 공격

작성자: Elvin Latifli
CVE ID: CVE-2026-26717
심각도: 중간 (CVSS 3.1: 4.8 — AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N)
영향을 받는 제품: OpenFUN Richie (커밋 a1b5bbd 이전의 모든 버전)
영향을 받는 구성 요소: src/richie/apps/courses/api.py — sync_course_runs_from_request
수정 커밋: a1b5bbda


프로젝트 소개

Richie는 France Université Numérique(OpenFUN)이 개발한 오픈소스 CMS로, DjangoCMS 기반으로 구축되었습니다. 이 프로젝트는 조직이 OpenEdX와 같은 학습 관리 시스템(LMS)에서 동기화된 강좌 카탈로그를 갖춘 완전한 기능의 온라인 교육 포털을 구축할 수 있도록 설계되었습니다. Richie는 인증된 웹훅을 통해 강좌 데이터 동기화를 처리하며, 그중 하나에 이 보고서에서 설명된 취약점이 포함되어 있습니다.


취약점

sync_course_runs_from_request 웹훅 엔드포인트는 수신된 Authorization 헤더를 예상 HMAC 서명과 비교할 때 표준 연산자를 사용했습니다:

==
root@kitploit:~
# 취약한 코드
signature_is_valid = any(
    authorization_header == get_signature(message, secret)
    for secret in getattr(settings, "RICHIE_COURSE_RUN_SYNC_SECRETS", [])
)

== 연산자는 비상수 시간 비교를 수행합니다 — 첫 번째 불일치 문자가 발견되는 즉시 단락(short-circuit)됩니다. 원격 공격자는 많은 조작된 요청을 보내고 응답 시간 차이를 측정하여 올바른 서명을 한 문자씩 추론할 수 있으며, 궁극적으로 유효한 인증 토큰을 위조하고 웹훅의 인증을 완전히 우회할 수 있습니다.


영향

성공적인 공격을 통해 인증되지 않은 원격 공격자는 다음을 수행할 수 있습니다:

  • 플랫폼에 임의의 강좌 실행 데이터 주입
  • 공개 강좌 페이지 조작
  • 검색 인덱스 및 캐시 손상

수정

수정 사항은 ==를 상수 시간 문자열 비교를 위해 설계되어 타이밍 부채널을 제거하는 Python의 hmac.compare_digest()로 대체합니다:

root@kitploit:~
# 수정된 코드
signature_is_valid = any(
    hmac.compare_digest(authorization_header, get_signature(message, secret))
    for secret in getattr(settings, "RICHIE_COURSE_RUN_SYNC_SECRETS", [])
)

참고 자료

  • CVE 레코드: https://www.cve.org/CVERecord?id=CVE-2026-26717
  • 수정 커밋: https://github.com/openfun/richie/commit/a1b5bbda3403d7debb466c303a32852925fcba5f

도구 다운로드