CVE-2026-33186
gRPC-Go에서 :path의 누락된 선행 슬래시로 인한 인가 우회 취약점
- 게시됨
- 2026. 3. 20.
- 업데이트됨
- 2026. 9. 18.
- CNA 할당 중
- GitHub_M
- 증거 관찰됨
- 2026. 8. 17.
기본 CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N낮음 · 다음 30일
- 백분위수
- 73.7%
- 모델 날짜
- 2026. 9. 21.
EPSS는 통계적 추정치이지 확실성이나 영향의 척도가 아닙니다. 이를 CVSS, KEV 상태, 노출 및 환경과 결합하세요.
요약
gRPC-Go는 gRPC의 Go 언어 구현입니다. 1.79.3 이전 버전에는 HTTP/2 `:path` 의사 헤더의 부적절한 입력 검증으로 인한 인가 우회 취약점이 있습니다. gRPC-Go 서버는 라우팅 로직이 너무 관대하여 `:path`에 필수 선행 슬래시가 누락된 요청(예: `/Service/Method` 대신 `Service/Method`)을 수락했습니다. 서버는 이러한 요청을 올바른 핸들러로 성공적으로 라우팅했지만, 인가 인터셉터(공식 `grpc/authz` 패키지 포함)는 원본의 비정규화된 경로 문자열을 평가했습니다. 결과적으로 정규화된 경로(`/`로 시작)로 정의된 "deny" 규칙은 들어오는 요청과 일치하지 않아, 대체 "allow" 규칙이 존재할 경우 정책을 우회할 수 있었습니다. 이는 경로 기반 인가 인터셉터(예: `google.golang.org/grpc/authz`의 공식 RBAC 구현 또는 `info.FullMethod`나 `grpc.Method(ctx)`에 의존하는 사용자 정의 인터셉터)를 사용하는 gRPC-Go 서버에 영향을 미칩니다. 또한 보안 정책에 정규화된 경로에 대한 특정 "deny" 규칙이 있지만 기본적으로 다른 요청을 허용하는(대체 "allow" 규칙) 경우에 해당합니다. 이 취약점은 공격자가 잘못된 `:path` 헤더가 포함된 원시 HTTP/2 프레임을 gRPC 서버에 직접 전송하여 악용할 수 있습니다. 1.79.3 버전의 수정 사항은 선행 슬래시로 시작하지 않는 `:path`가 있는 모든 요청을 `codes.Unimplemented` 오류로 즉시 거부하여 비정규화된 경로 문자열이 인가 인터셉터나 핸들러에 도달하지 못하도록 합니다. 업그레이드가 가장 안전하고 권장되는 방법이지만, 사용자는 다음 방법 중 하나로 취약점을 완화할 수 있습니다: 검증 인터셉터 사용(권장 완화 조치), 인프라 수준 정규화, 및/또는 정책 강화.
소스
1gRPC-Go RBAC 권한 부여 정책 우회 (`:path` 슬래시 누락으로 인한) (인증 우회)
책임 있는 사용
귀하가 소유하고 있거나 테스트할 권한이 있는 시스템에 대해서만 취약점 정보를 사용하십시오. Kitploit은 공개 연구 메타데이터에 연결되며 익스플로잇 코드나 악성 페이로드를 저장하지 않습니다.