🇰🇷 한글 설명
canto-saas-api PHP 라이브러리 3.0.0 미만 버전에서 Request::buildRequestUrl() 함수가 경로 변수를 인코딩 없이 결합하는 취약점이 발견되었습니다. 공격자가 신뢰할 수 없는 경로 변수 값을 입력할 경우, 경로 탐색이나 쿼리/프래그먼트 구분자를 사용하여 인증 토큰이 붙기 전 목적지 엔드포인트를 변경할 수 있습니다. 이를 통해 공격자는 해당 애플리케이션의 권한으로 Canto 인스턴스 내에서 의도하지 않은 읽기 또는 쓰기 작업을 수행할 수 있습니다.
💡 쉬운 설명
프로그램이 주소를 만들 때 입력된 값을 제대로 검사하지 않아, 공격자가 주소를 마음대로 조작할 수 있는 문제입니다. 이를 통해 공격자는 원래 접근해서는 안 되는 데이터에 접근하거나 데이터를 수정할 수 있습니다.
🇺🇸 원문 (English)
canto-saas-api is a PHP library for interacting with the Canto SaaS API. Prior to version 3.0.0, Request::buildRequestUrl() joins values returned by Request::getPathVariables() without encoding individual path segments, including the scheme and contentId values used by GetContentDetailsRequest. When a consuming application supplies an untrusted path variable value, path traversal sequences, query delimiters, or fragment delimiters can change the destination endpoint before AbstractEndpoint::sendRequest() attaches the configured authentication token. An attacker who controls that path variable value through the consuming application can cause unintended reads or writes with the configured application's privileges on the same Canto instance, but applications that pass only trusted and validated identifiers are not exploitable. This issue is fixed in version 3.0.0.
📍 영향받는 시스템
canto-saas-api PHP library version < 3.0.0
⚔️ 공격 벡터
신뢰할 수 없는 경로 변수(path variable)를 통한 경로 탐색 및 엔드포인트 조작
🛡️ 대응 방법
canto-saas-api 라이브러리를 버전 3.0.0 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 버전 정보가 3.0.0 미만인지 확인하십시오.
composer show canto-saas-api | grep 'versions'