🇰🇷 한글 설명
읽기 전용으로 설계된 배포 모드에서 API 경로의 요청 메서드 제한이 누락되어 발생합니다. 인증된 사용자가 애플리케이션의 권한을 악용하여 저장된 레코드를 생성하거나 임의의 식별자로 덮어쓸 수 있습니다.
💡 쉬운 설명
읽기만 가능해야 하는 설정에서 실수로 쓰기 권한이 열려 있는 상태입니다. 이를 통해 공격자는 원래 수정할 수 없는 데이터를 마음대로 바꾸거나 새로 만들 수 있습니다.
🇺🇸 원문 (English)
A deployment mode intended to expose only read access to stored data proxies a set of application programming interface routes without restricting which request methods are allowed. One such route accepts a request that creates or overwrites a stored record, including an attacker-chosen identifier, using the application's own elevated backend credentials. This allows an authenticated user on a deployment intended to be read-only to forge or overwrite stored records that should not be modifiable in that deployment mode.
📍 영향받는 시스템
API 경로의 HTTP 메서드 제한이 없는 특정 애플리케이션 배포 모드
⚔️ 공격 벡터
인증된 사용자가 제한되지 않은 API 경로로 쓰기 요청(POST/PUT 등)을 전송
🛡️ 대응 방법
읽기 전용 배포 모드에서 허용되지 않는 HTTP 메서드(POST, PUT, DELETE 등)를 차단하도록 API 경로 권한 설정 강화
🔧 검증 코드
읽기 전용 모드임에도 불구하고 200 OK 또는 201 Created 응답과 함께 데이터가 생성/수정되면 취약한 상태입니다.
curl -X POST -i -H 'Authorization: Bearer <token>' <target_api_endpoint> -d '{"id":"test"}'