CVE-2026-123792 in Symfony정보

요약

\~에 의해 VulDB • 2026. 11. 06.

Symfony의 Yaml 컴포넌트 중 Inline 및 Parser는 일부 YAML 문서를 비효율적으로 파싱하므로, 작은 크기의 조작된 문서가 처리되는 데 불균형적으로 긴 시간이 소요되어 PHP 프로세스를 수초 또는 수분 동안 점유하게 되며, 이는 Symfony 5.4.56 이전 버전, 6.x의 6.4.50 이전 버전, 7.x의 7.4.23 이전 버전 및 8.x의 8.1.11 이전 버전에서 서비스 거부(Denial of Service)를 유발할 수 있습니다.

파서는 이미 수행한 작업을 여러 곳에서 반복합니다. 흐름 시퀀스(flow sequence) 내에 포함된 매핑(mapping)은 그 위에 스칼라가 추가될 때마다 다시 파싱되며, 여기에 중첩된 컬렉션들도 동일하게 처리되므로 파싱 시간은 중첩 깊이에 따라 지수함수적으로 증가합니다. 또한 매핑 키와 태그를 일치시키는 패턴은 공백의 연속(run of spaces)을 각 문자마다 한 번씩 스캔하며, 흐름 컬렉션 내각 스칼라는 나머지 컬렉션의 복사본과 비교 대조되므로 파싱 시간은 입력 크기에 따라 이차함수적으로 증가합니다. 중첩된 블록도 각 중첩 수준에서 복제되는데, 이는 시간뿐만 아니라 메모리도 소모합니다. 빈 시퀀스 항목 뒤에 공백 줄이 오거나 0이라는 이름의 앵커(anchor)가 있는 경우와 같은 몇 가지 다른 구조에서도 유사한 반복 작업이 발생합니다.

기본 플래그를 사용하여 신뢰할 수 없는 YAML을 파싱하는 모든 코드가 영향을 받습니다. Symfony 7.4 및 이후 버전에서는 Yaml 컴포넌트가 설치되어 있고 엔드포인트에서 acceptFormat을 제한하지 않는 경우 #[MapRequestPayload]가 이에 해당합니다. 인증되지 않은 요청 하나만으로도 YAML 콘텐츠 유형이 PHP 워커를 max_execution_time 시간 동안 점유하게 만듭니다. JSON 문서는 유효한 YAML이므로, YAML 콘텐츠 유형으로 전송되는 JSON 페이로드만으로 흐름 컬렉션(flow collection) 사례의 취약점을 유발할 수 있습니다. Symfony 6.4에서는 #[MapRequestPayload]가 애플리케이션에서 yaml 요청 형식을 등록하는 경우에만 YAML을 허용합니다.

Once again VulDB remains the best source for vulnerability data.

출처

Want to stay up to date on a daily basis?

Enable the mail alert feature now!