개요

pyLoad Old API의 getUserData 엔드포인트에 @permission(Perms.ANY) 데코레이터가 적용되어 있던 문제가 GHSA-68w4-83fh-f2w8로 대응되었고, 수정 커밋에서 해당 데코레이터가 제거되었습니다. 이 엔드포인트는 사용자 이름과 비밀번호를 인자로 받는 조회 경로입니다. 데코레이터의 권한 의미, 제거 후 적용되는 권한 요구 사항, 수정 포함 릴리스 버전 범위는 제공된 근거에 없어 이 기사는 확인 가능한 코드 변경을 기준으로 서술합니다.
사실관계
- pyload/pyload 리포지토리의 수정 커밋 b99d2a2(커밋 메시지
fix GHSA-68w4-83fh-f2w8 security advisory)에서 Old API 섹션의getUserData함수 정의부에서@permission(Perms.ANY)데코레이터가 제거된 것으로 확인됩니다. - 수정 전 코드에는
#: Old API섹션 아래@get메서드로 선언된getUserData(self, username, password) -> OldUserData정의가 있었고, 이 함수 위에@permission(Perms.ANY)데코레이터가 함께 적용되어 있었습니다. getUserData는 사용자 이름과 비밀번호를 인자로 받아 OldUserData를 반환하는 사용자 데이터 조회 엔드포인트입니다.- 인용된 근거에는
Perms.ANY가 의미하는 권한 수준과 데코레이터 제거 이후 적용되는 기본 권한 요구 사항이 포함되어 있지 않습니다.
확인되지 않은 부분(한계)
- 근거가 수정 커밋 하나로 한정되어 있어, 해당 수정이 포함된 정식 릴리스 버전 번호와 취약 버전 범위는 확인되지 않았습니다.
- CVE 식별자, CVSS 점수, 공급자가 공식적으로 명시한 취약점 유형(인증 우회, 정보 노출 등)은 제공된 근거에 포함되어 있지 않아 다루지 않았습니다.
- 실제 악용 사례, 공개된 개념 증명(PoC), CISA KEV 등재 여부는 확인되지 않았습니다.
실무 영향
- 사용자 이름과 비밀번호를 인자로 받는 조회 엔드포인트에
@permission(Perms.ANY)데코레이터가 적용되어 있던 상태는, 반복적인 자격 증명 대입(password guessing) 시도가 이루어질 수 있는 구조를 만들었을 수 있습니다.Perms.ANY의 권한 수준은 근거에 명시되어 있지 않아 이 해석은 코드 구조에 기반한 조건부 해석이며, 실제 악용 사례나 공개 PoC가 확인된 것은 아닙니다. - 수정 커밋에서 이 엔드포인트의
@permission(Perms.ANY)데코레이터가 제거된 사실은 확인되지만, 제거 후 이 엔드포인트에 적용되는 권한 조건은 제공된 근거만으로 확인할 수 없습니다.
권장 조치
즉시 확인
- 현재 실행 중인 pyLoad에 수정 커밋(b99d2a2)이 반영되었는지, 즉 Old API
getUserData함수에서@permission(Perms.ANY)데코레이터가 제거되었는지 먼저 확인하세요.
지속적 대응
- GHSA-68w4-83fh-f2w8 수정(권한 데코레이터 제거)이 포함된 pyLoad 버전으로 업그레이드하세요.
- 제공된 근거에는 수정이 포함된 정식 릴리스 버전 번호가 없어, 적용 대상 버전을 확정하려면 업스트림 리포지토리나 어드바이저리와 같은 공식 채널에서 확인하는 것이 필요합니다.
참고자료
함께 읽으면 좋은 글
- Vikunja WebSocket 세션 폐기 우회: 삭제된 세션 토큰의 실시간 알림 수신 조건 점검
- CVE-2026-108258: Shiny for Python 북마크 복원의 경로 순회 취약점, 1.6.4에서 수정
- CVE-2026-107844: Contao ImagesController 경로 순회와 프로젝트 디렉터리 이미지 파일 노출 조건 점검
본 콘텐츠는 AI 기술로 작성된 분석 리포트를 포함하고 있습니다. 내용 중 사실과 다르거나 보완이 필요한 정보를 발견하셨으면 댓글을 통해 의견을 부탁드립니다. 여러분의 피드백은 더 정확한 보안 정보 공유에 큰 도움이 됩니다.
댓글 (0)
댓글을 작성하려면 로그인이 필요합니다.
로그인아직 댓글이 없습니다.
첫 번째 댓글을 작성해보세요!