🇰🇷 한글 설명
FreeScout의 `getQueryParam` 함수에서 프로토타입 오염(Prototype Pollution) 취약점이 발견되었습니다. 기존의 `__proto__` 키 필터링 방식이 중첩된 형태의 공격(예: `b[__proto__][polluted]=PWNED`)을 차단하지 못해 발생하며, 이를 통해 `Object.prototype`을 조작할 수 있습니다.
💡 쉬운 설명
웹사이트의 주소창에 특수한 코드를 입력하여 웹사이트의 기본 동작 방식을 마음대로 바꿀 수 있는 결함입니다. 공격자가 이 취약점을 이용하면 웹사이트의 보안 설정을 무력화하거나 잘못된 동작을 유도할 수 있습니다.
🇺🇸 원문 (English)
FreeScout is a free help desk and shared inbox built with PHP's Laravel framework. A Prototype Pollution condition in the `getQueryParam` function `/public/js/main.js` and was addressed in version 1.8.139 by blocking URL query keys matching the pattern `__proto__`. However, this mitigation is incomplete: it only filters top-level `__proto__` keys and fails to sanitize nested forms such as `b[__proto__][polluted]=PWNED`. As a result, an attacker-controlled URL query string can still write into `Object.prototype` on any page that loads `main.js`. Version 1.8.223 contains a updated fix.
📍 영향받는 시스템
FreeScout 1.8.139 미만 버전 (1.8.223 미만 버전 포함)
⚔️ 공격 벡터
조작된 URL 쿼리 스트링을 통해 중첩된 프로토타입 키를 전달하는 방식
🛡️ 대응 방법
FreeScout를 최신 보안 패치가 적용된 버전인 1.8.223 이상으로 업데이트하십시오.
🔧 검증 코드
출력 결과에 1.8.139에서 1.8.222 사이의 버전이 나타나면 취약한 상태입니다.
curl -s https://[YOUR_FREESCOUT_URL]/version | grep -E '1.8\[(1[3-9][0-9]|2[0-2][0-9])\]'