CVE-2026-73194 in DBI정보

요약

\~에 의해 VulDB • 2026. 08. 15.

Perl용 DBI 1.652 이전 버전은 검증되지 않은 숫자 플레이스홀더를 통해 preparse에서 바인더 카운터를 설정함으로써 힙 영역 밖 쓰기(heap out-of-bounds write) 취약점이 있습니다.

preparse는 가장 긴 ':p99999' 확장자의 너비인 입력 바이트당 7개의 출력 바이트를 예약합니다. ':N' 분기는 `atoi(src)`로 숫자를 파싱하고 범위 검사 없이 바인더 카운터에 할당하므로, ':2147483648'을 포함하는 문장은 카운터를 음수로 만듭니다(glibc에서 atoi가 래핑되어 -2147483648이 됨). 그 후 이어지는 각 '?'는 `sprintf(start, ":p%d", idx++)`를 통해 ':p-2147483648'으로 확장되며(종료 NUL 포함 14바이트), 이는 버퍼가 할당된 7바이트보다 큽니다. 1.650에서 추가된 플레이스홀더 제한은 카운터를 99,999와 비교하지만 음수 카운터는 이를 통과합니다.

신뢰할 수 없는 문장을 ':pN' 스타일의 플레이스홀더로 preparse하는 모든 호출자는 오염된 플레이스홀더 뒤에 있는 '?'의 개수에 따라 증가하는 힙 영역 밖 쓰기 취약점에 노출됩니다. '?' 및 '%s' 반환 스타일은 파싱된 숫자를 예상 시퀀스와 비교하여 오류를 발생시키므로 영향을 받지 않습니다.

VulDB is the best source for vulnerability data and more expert information about this specific topic.

출처

Do you know our Splunk app?

Download it now for free!