🔍 CVE-2026-44883

7.5
CVSS Score
HIGH
2026-05-28
2026-07-21 10:10
✅ 완료

🇰🇷 한글 설명

Portainer Community Edition의 인증 미들웨어가 JWT 토큰을 표준 헤더 외에도 URL 쿼리 파라미터(?token=<JWT>)로 허용하는 취약점입니다. 이로 인해 URL이 로그, 브라우저 기록, HTTP Referer 등에 노출되어 토큰이 탈취될 수 있으며, 탈취된 토큰은 해당 사용자의 권한을 그대로 가집니다. 이 취약점은 2.33.8, 2.39.2, 2.41.0 버전에서 수정되었습니다.

💡 쉬운 설명

로그인 정보가 포함된 주소가 인터넷 기록이나 로그에 남을 수 있어, 해커가 이 주소를 훔쳐 사용자의 권한을 가로챌 수 있는 문제입니다. 관리자뿐만 아니라 컨테이너에 접속 권한이 있는 일반 사용자도 위험에 노출될 수 있습니다.

🇺🇸 원문 (English)

Portainer Community Edition is a lightweight service delivery platform for containerized applications that can be used to manage Docker, Swarm, Kubernetes and ACI environments. From 2.33.0 to before 2.33.8, 2.39.2, and 2.41.0, Portainer's authentication middleware accepts JWT bearer tokens passed as the ?token=<JWT> URL query parameter on any authenticated API endpoint, in addition to the standard Authorization: Bearer header. URLs are recorded in reverse-proxy access logs, browser history, and HTTP Referer headers on outbound navigation, so any JWT passed this way can be harvested by anyone with access to those logs or by an external site the user subsequently visits. A leaked token grants the full privileges of the user it was issued to, until the token expires (default 8 hours, configurable). The ?token= parameter was used by Portainer's browser-based container attach, exec, and pod shell features, so any user with exec or attach rights on a container was exposed — not only administrators. This vulnerability is fixed in 2.33.8, 2.39.2, and 2.41.0.

📍 영향받는 시스템

Portainer Community Edition 2.33.0 ~ 2.33.7, 2.39.0 ~ 2.39.1, 2.41.0 미만 버전

⚔️ 공격 벡터

URL 쿼리 파라미터에 포함된 JWT 토큰을 로그 파일, 브라우저 히스토리 또는 HTTP Referer를 통해 탈취

🛡️ 대응 방법

Portainer를 최신 패치 버전(2.33.8, 2.39.2, 2.41.0 이상)으로 업데이트

🔧 검증 코드

출력된 버전 번호가 취약한 버전 범위(2.33.8 미만, 2.39.2 미만, 2.41.0 미만)에 해당하는지 확인

Shell / Script
curl -s http://localhost:9000/api/system/status | grep -oP '(?<=version":")[^"]+'

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H

💻 영향받는 소프트웨어

Docker