🇰🇷 한글 설명
Temporal Server가 내부 완료 콜백을 해당 네임스페이스에 바인딩하지 않아, 특정 권한을 가진 사용자가 다른 네임스페이스의 Scheduler V2 스케줄 상태를 조작할 수 있는 취약점입니다. 공격자는 예약된 콜백 주소를 악용하여 스케줄의 중복 방지 정책을 무력화하거나, 다음 워크플로에 조작된 데이터를 전달할 수 있습니다.
💡 쉬운 설명
권한이 있는 사용자가 다른 방(네임스페이스)에 있는 자동 실행 스케줄을 몰래 조작할 수 있는 보안 결함입니다. 이를 통해 예약된 작업이 규칙을 어기고 실행되게 하거나 잘못된 정보를 전달하게 만들 수 있습니다.
🇺🇸 원문 (English)
Temporal Server does not bind internal completion callbacks to the namespace that attached them, which allows an authenticated caller with write permission in one namespace to alter Scheduler V2 schedule state in another namespace. The callback address temporal://internal is reserved for callbacks that Scheduler V2 attaches to the Workflows it starts. In affected releases, any authenticated caller could attach a callback with that address to a Workflow start request, the address was exempt from the component.callbacks.allowedAddresses allowlist, and the History service delivered the callback to the component its token named, in whatever namespace that was, without authorizing the original caller there. When the forged completion matches an action a target schedule is running, the schedule records the action as completed while its Workflow still runs, which can defeat an overlap policy such as SKIP, and passes caller-controlled data to the next scheduled Workflow as its last completion result. A forged failure may also pause a schedule configured to pause on failure. A forgery requires the target namespace identifier, the schedule identifier, and the identity and timing of a running action. No disclosure of Workflow payloads or history was identified. Only namespaces that hold Scheduler V2 schedules can be targeted; Scheduler V2 is off by default, and existing Scheduler V2 schedules remain targets after the settings that create them are turned off.
📍 영향받는 시스템
Scheduler V2가 활성화된 Temporal Server (Scheduler V2가 기본적으로 꺼져 있어도 기존 스케줄은 영향받을 수 있음)
⚔️ 공격 벡터
인증된 사용자가 특정 네임스페이스에서 `temporal://internal` 주소를 사용하여 조작된 콜백을 워크플로 시작 요청에 포함시켜 전송
🛡️ 대응 방법
Temporal Server를 최신 보안 패치가 적용된 버전으로 업데이트하고, 사용하지 않는 경우 Scheduler V2 기능을 비활성화하십시오.
🔧 검증 코드
출력된 버전이 취약점이 해결된 최신 패치 버전인지 공식 보안 공지(Advisory)와 대조하여 확인하십시오.
temporal-server --version
💻 영향받는 소프트웨어
Windows iSCSI Target Service