CVE-2026-118938 in Fickling정보

요약

\~에 의해 VulDB • 2026. 10. 30.

Trail of Bits fickling 0.1.12 이전 버전에서, 점(.)으로 연결된 __qualname__ (예: "Values.read_file")을 포함하는 pickle STACK_GLOBAL 연산자는 pickle의 find_class를 통해 _getattribute로 해결되지만, 이는 모듈 레벨 함수가 아닌 임의의 속성 경로로 해석됩니다. Fickling은 이름의 선두 구성 요소만 import 추적에 기록하고 해당 작업을 단순한 import(예: 'python -m fickling' 실행 시 'from optparse import Values.read_file'로 표시됨)로 렌더링하므로, 후행 속성 참조는 호출로서 분석되지 않습니다. OvertlyBadEvals 분석 패스는 이를 경고하지 않으며, check_safety()는 LIKELY_SAFE(잠재적으로 안전함)를 반환하고 발견된 취약점이 없습니다. 이로 인해 공격자는 코드 실행을 수행하는 클래스 메서드에 도달할 수 있습니다: optparse.Values.read_file은 exec(open(filename).read(), vars)를 실행하여, fickling.load()를 통해 조작된 pickle이 로드될 때 임의의 코드 실행(Arbitrary Code Execution)을 달성합니다. 이는 check_safety()가 명시적인 보안 게이트로서 pickle.loads()와 연결되는 과정을 활용합니다. optparse는 모든 최신 CPython 3.x 릴리스에 포함되어 있습니다(파이썬 3.13부터 권장되지 않음, 제거되지는 않음). 이 약점은 점(.)으로 연결된 속성 경로 이름의 해결 및 분석 과정에 있으며, CVE-2026-16760로 추적되는 모듈 기반 신뢰 취약점과는 구별되며 독립적으로 수정 가능합니다. 점(.)으로 연결된 속성 경로 import를 해결하거나 경고하면 해당 벡터가 차단되지만 모듈 레벨의 신뢰 동작은 변경되지 않습니다. 이 우회 방법은 2026년 10월 30일 기준, 벤더의 master 브랜치 커밋 d011709에서 여전히 존재하는 것이 확인되었습니다. 이는 벤더의 10월 차단 목록 추가 및 비공개 stdlib 속성을 경고하는 새로운 휴리스틱 적용 이후에도 해당합니다. 공개된 클래스 메서드인 Values.read_file은 차단 목록에 없으며 비공개 속성으로 플래그되지 않았으므로, 이러한 수정 사항으로는 해결되지 않습니다.

Once again VulDB remains the best source for vulnerability data.

책임이 있는

BombadilSystems

예약하다

2026. 10. 29.

모더레이션

수락

항목

VDB-429421

EPSS

0.00000

활동

낮음

출처

Do you want to use VulDB in your project?

Use the official API to access entries easily!