Skip to content

[Argus] CVE-2026-32274: Black: 사용자 입력값 미정제 캐시 파일 이름으로 인한 임의 파일 쓰기 취약점 #222

@LEEKIYOON-SEC

Description

@LEEKIYOON-SEC

🛡️ Black: 사용자 입력값 미정제 캐시 파일 이름으로 인한 임의 파일 쓰기 취약점

탐지 일시: 2026-03-13 04:56:16 (KST)
탐지 사유: 신규 취약점

CVSS EPSS KEV
취약점 유형 (CWE): CWE-22

📦 영향 받는 자산

벤더 제품 버전
psf black < 26.3.1 (단일 버전)

🔍 AI 심층 분석

항목 내용
기술적 원인 Black가 캐시 파일 이름을 생성할 때 --python-cell-magics 옵션 값을 파일명에 그대로 사용하고 이를 정규화하거나 필터링하지 않아 경로 탐색(Directory Traversal) 취약점이 발생한다. 이로 인해 공격자가 임의의 파일 시스템 위치에 파일을 쓸 수 있다. (CWE-22)
비즈니스 영향 CVSS 벡터에 의해 무결성(Integrity) 손상이 고위험(H)으로 확인되며, 기밀성(Confidentiality)과 가용성(Availability)은 영향을 받지 않는다. 또한 공격자는 네트워크를 통해 직접 접근 가능하고(AV:N), 공격 난이도가 낮으며(AC:L), 권한이 필요 없고(PR:N), 사용자 상호작용이 필요하지 않다(UI:N)로 명시되어 있다. 이는 시스템 파일을 임의로 수정하거나 악성 코드를 삽입해 무결성을 훼손할 위험이 있음을 의미한다. [추정]

🏹 공격 벡터 상세

항목 내용
공식 벡터 CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N
상세 분석 • CVSS:4.0
• 공격 경로: 네트워크 (Network)
• 복잡성: 낮음
• 공격 기술: 없음
• 필요 권한: 없음
• 사용자 관여: 없음
• 취약시스템 기밀성: 없음
• 취약시스템 무결성: 높음
• 취약시스템 가용성: 없음
• 후속시스템 기밀성: 없음
• 후속시스템 무결성: 없음
• 후속시스템 가용성: 없음

🏹 AI 예상 공격 시나리오

MITRE ATT&CK 기반 공격 흐름:
초기 접근(Initial Access) – 공격자는 Black 포맷터가 외부 입력을 받아 실행되는 서비스나 CI 파이프라인에 네트워크를 통해 접근하고, 악의적인 --python-cell-magics 값을 전달한다. (T1190: Exploit Public-Facing Application) [추정]
실행(Execution) – 공격자는 Black 실행 시 악의적인 --python-cell-magics 옵션 값을 포함시켜 명령줄을 실행한다. Black은 해당 값을 파일명에 그대로 사용해 캐시 파일을 생성한다. (T1059: Command-Line Interface) [추정]
영향(Impact) – Black이 생성한 캐시 파일이 임의 경로에 기록되면서 시스템의 중요한 파일이 덮어쓰기되거나 악성 코드가 삽입되어 무결성이 손상된다. (T1565.001: Stored Data Manipulation) [추정]

🛡️ AI 권고 대응 방안

  • Black 26.3.1 버전 이상으로 업데이트하여 취약점을 해결한다.
  • 공격자가 제어할 수 있는 입력을 --python-cell-magics 옵션에 전달하지 않도록 입력 검증 및 정규화를 적용한다.
  • Black이 실행되는 환경의 파일 시스템 권한을 최소 권한 원칙에 따라 제한하고, 캐시 디렉터리 경로를 신뢰된 위치로 제한한다.
  • 공식 보안 권고(https://github.com/psf/black/security/advisories/GHSA-3936-cmfr-pm3m)를 참고하여 최신 보안 패치를 적용한다.

📋 탐지 룰 현황

Sigma Rule ❌ 미생성

사유: 공개 룰 미발견, AI가 근거 부족으로 생성 거부

Snort/Suricata Rule ❌ 미생성

사유: 공개 룰 미발견, 구체적 탐지 지표 부족 (구체적 지표 부족)

Yara Rule ❌ 미생성

사유: 공격벡터 NETWORK — YARA 룰 부적합 (Snort/Suricata 우선)

🔗 참고 자료

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions