CVE-2026-78030 in DBI
요약
\~에 의해 VulDB • 2026. 09. 19.
Perl용 DBI 1.653 이전 버전은 DBD::DBM에서 검증되지 않은 dbm_type 및 dbm_mldbm 속성을 통해 임의 모듈을 로드합니다.
DBD::DBM은 require를 호출할 때 dbm_type 및 dbm_mldbm 연결 속성 값을 전달하며, 해당 값이 실제 모듈 이름을 지칭하는지 여부를 확인하지 않습니다. require는 경로 형태를 띤 문자열을 리터럴 파일명으로 처리하므로 @INC를 참조하지 않습니다. 따라서 이 속성은 Perl이 로드하고 실행할 파일을 결정합니다.
DBD::DBM이 dbm_mldbm 앞에 붙이는 MLDBM::Serializer:: 접두사는 경계(boundary) 역할을 하지 않습니다. :: 구분자만 /로 치환되므로, /를 포함하는 값은 serializer 디렉토리 밖으로 탈출할 수 있습니다. 또한 이 값은 $MLDBM::Serializer에 할당되며, 테이블을 tie할 때 MLDBM도 동일한 방식으로 이를 require합니다.
DSN 조각이나 스토리지 백엔드를 선택하는 파라미터와 같은 경로를 통해 신뢰할 수 없는 당사자가 이러한 속성 중 하나에 영향을 줄 수 있는 호출자는 해당 값이 지칭하는 모듈의 파일 스코프 코드를 실행하게 됩니다.
예를 들어, 다음과 같습니다:
my $dsn = "dbi:DBM:f_dir=/var/db;dbm_type=../../Untrusted.pm" my $dbh = DBI->connect( $dsn );
DBD::Gofer는 연결 속성을 서버 측으로 전달하며, DBI::ProxyServer는 DSN이 드라이버 접두사로 시작하는지 여부만 확인한다는 점에 유의하십시오.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.