🇰🇷 한글 설명
Goobi viewer는 디지털화된 자료를 웹 브라우저에서 보여주는 웹 애플리케이션입니다. 버전 23.03부터 26.05 이전까지 SolrTools.cleanUpQuery()가 사용자 입력 쿼리에서 Solr 로컬 파라미터 문법({!...})을 제거하지만, 이중 중괄호({{!...}})로 감싸면 우회되어 유효한 Solr 로컬 파라미터가 전달될 수 있습니다. 이 결함은 공유 sanitizer에 있어 cleanUpQuery를 거치는 모든 엔드포인트에 영향을 줍니다. 26.05 버전에서 수정되었습니다.
💡 쉬운 설명
Goobi viewer는 디지털 자료를 웹에서 보여주는 프로그램입니다. 입력값의 특정 기호를 막는 필터가 특정 형태의 기호 조합으로 우회될 수 있는 문제가 있었습니다.
🇺🇸 원문 (English)
The Goobi viewer is a web application that allows digitised material to be displayed in a web browser. From version 23.03 to before version 26.05, SolrTools.cleanUpQuery() strips Solr local-parameter syntax ({!...}) from user-supplied query strings before they reach Solr. Its regex can be bypassed by wrapping the local parameter in a second pair of curly braces ({{!...}}): the outer braces are stripped, the inner {!...} survives intact, and a valid Solr local parameter is forwarded. The flaw is in the shared sanitizer, so it affects any endpoint that routes user input through cleanUpQuery. The double-brace bypass applies from v23.10 (the greedy \{(.+)\} regex); a related bare-!join rewrap path is present. This issue has been patched in version 26.05.
📍 영향받는 시스템
Goobi viewer 23.03 이상 26.05 미만 버전
⚔️ 공격 벡터
사용자 검색 입력을 이중 중괄호({{!...}})로 감싸 sanitizer를 우회해 Solr 로컬 파라미터를 전달
🛡️ 대응 방법
Goobi viewer를 26.05 이상 버전으로 업데이트
🔧 검증 코드
출력된 버전 정보를 확인하여 23.03 이상 26.05 미만이면 취약, 26.05 이상이면 패치 적용됨으로 판단합니다.
grep -ri 'goobi' /opt /var/lib/tomcat* /usr/local 2>/dev/null | grep -iE 'version|goobi-viewer' | head -5