영향: 11.5.0 이하의 @fastify/http-proxy 버전에서는 접두사 세그먼트가 URL로 인코딩된 경우 요청 접두사를 다시 쓰지 못합니다. Fastify의 라우터는 경로 일치를 위해 경로를 URL 디코딩하지만 request.url은 원래 인코딩된 형식을 유지하며 접두사 다시 쓰기 단계에서는 디코딩된 접두사에 대해 리터럴 문자열 대체를 사용합니다. 구성된 접두사 중 하나 이상의 문자를 인코딩하는 요청은 경로와 일치하지만 다시 쓰기를 건너뛰므로 원시 인코딩된 경로가 ups로 전달됩니다.
영향: 11.5.0 이하의 @fastify/http-proxy 버전에서는 접두사 세그먼트가 URL로 인코딩된 경우 요청 접두사를 다시 쓰지 못합니다. Fastify의 라우터는 경로 일치를 위해 경로를 URL 디코딩하지만 request.url은 원래 인코딩된 형식을 유지하며 접두사 다시 쓰기 단계에서는 디코딩된 접두사에 대해 리터럴 문자열 대체를 사용합니다. 따라서 구성된 접두사 중 하나 이상의 문자를 인코딩하는 요청은 경로와 일치하지만 다시 쓰기를 건너뛰므로 원시 인코딩된 경로는 변경되지 않고 업스트림으로 전달됩니다. 그런 다음 업스트림은 경로를 디코딩하고 이를 제공하여 공격자가 내부 또는 관리 엔드포인트를 포함하여 rewritePrefix를 통해 숨기도록 프록시가 구성된 업스트림 경로에 도달할 수 있도록 합니다.
패치: @fastify/http-proxy 11.6.0으로 업그레이드하세요.
해결 방법: 없음.
왜 이 VPI인가 (설명가능 · 실험적)
VPI 산정 기준
| 영향도 | 100.00 |
| 악용 신호(추가 악용신호 없음) | ×1.00 |
| VPI | 100.00 |
VPI 공식 vpi-v1 기준