🇰🇷 한글 설명
Pulsar Functions Worker에서 인증된 사용자가 URL을 통해 함수 구현을 참조할 때 발생하는 취약점입니다. 공격자는 'file' 스킴을 사용하여 프로세스 환경 변수와 같은 민감한 파일을 읽거나, HTTP/HTTPS 프록시로 활용하여 원격 엔드포인트에 접근하거나 DoS 공격을 수행할 수 있습니다.
💡 쉬운 설명
해커가 특수한 주소를 이용해 서버 내부의 비밀번호나 중요한 파일을 몰래 읽어갈 수 있는 보안 구멍입니다. 또한 서버를 중간 통로로 삼아 다른 사이트에 공격을 가하는 용도로 악용될 수도 있습니다.
🇺🇸 원문 (English)
The Pulsar Functions Worker includes a capability that permits authenticated users to create functions where the function's implementation is referenced by a URL. The supported URL schemes include "file", "http", and "https". When a function is created using this method, the Functions Worker will retrieve the implementation from the URL provided by the user. However, this feature introduces a vulnerability that can be exploited by an attacker to gain unauthorized access to any file that the Pulsar Functions Worker process has permissions to read. This includes reading the process environment which potentially includes sensitive information, such as secrets. Furthermore, an attacker could leverage this vulnerability to use the Pulsar Functions Worker as a proxy to access the content of remote HTTP and HTTPS endpoint URLs. This could also be used to carry out denial of service attacks.
This vulnerability also applies to the Pulsar Broker when it is configured with "functionsWorkerEnabled=true".
This issue affects Apache Pulsar versions from 2.4.0 to 2.10.5, from 2.11.0 to 2.11.3, from 3.0.0 to 3.0.2, from 3.1.0 to 3.1.2, and 3.2.0.
2.10 Pulsar Function Worker users should upgrade to at least 2.10.6.
2.11 Pulsar Function Worker users should upgrade to at least 2.11.4.
3.0 Pulsar Function Worker users should upgrade to at least 3.0.3.
3.1 Pulsar Function Worker users should upgrade to at least 3.1.3.
3.2 Pulsar Function Worker users should upgrade to at least 3.2.1.
Users operating versions prior to those listed above should upgrade to the aforementioned patched versions or newer versions.
The updated versions of Pulsar Functions Worker will, by default, impose restrictions on the creation of functions using URLs. For users who rely on this functionality, the Function Worker configuration provides two configuration keys: "additionalEnabledConnectorUrlPatterns" and "additionalEnabledFunctionsUrlPatterns". These keys allow users to specify a set of URL patterns that are permitted, enabling the creation of functions using URLs that match the defined patterns. This approach ensures that the feature remains available to those who require it, while limiting the potential for unauthorized access and exploitation.
📍 영향받는 시스템
Apache Pulsar 2.4.0~2.10.5, 2.11.0~2.11.3, 3.0.0~3.0.2, 3.1.0~3.1.2, 3.2.0
⚔️ 공격 벡터
인증된 사용자가 함수 생성 시 'file://' 또는 외부 URL 스킴을 포함한 구현체 주소를 제공하여 공격
🛡️ 대응 방법
Pulsar 버전을 2.10.6, 2.11.4, 3.0.3, 3.1.3, 3.2.1 이상으로 업그레이드하거나 URL 패턴 제한 설정을 적용
🔧 검증 코드
출력된 버전이 취약한 버전 범위에 해당하면 보안 업데이트가 필요한 상태입니다.
pulsar-admin --version | grep -E '2\.(4\.|10\.[0-5]|11\.[0-3])|3\.(0\.[0-2]|1\.[0-2]|2\.0)'