출시일: 2024-08-08
이 릴리스에는 12.19의 다양한 수정 사항이 포함되어 있습니다. 주요 릴리스 12의 새로운 기능에 대한 자세한 내용은 다음을 참조하세요.토토 사이트 PostgreSQL : 문서 : 12 : E.23. 릴리스 12.
그포스트그레SQL커뮤니티는 2024년 11월에 12.X 릴리스 시리즈에 대한 업데이트 출시를 중단합니다. 사용자는 곧 최신 릴리스 브랜치로 업데이트하는 것이 좋습니다.
12.X를 실행하는 경우 덤프/복원이 필요하지 않습니다.
그러나 12.18 이전 버전에서 업그레이드하는 경우 참조PostgreSQL : 문서 : 12 : E.5. 토토 사이트 12.18.
중 무단 코드 실행 방지pg_dump(사와다 마사히코)§
임시가 아닌 객체를 생성하고 삭제할 수 있는 공격자는 동시 실행으로 실행될 SQL 코드를 삽입할 수 롤 토토.pg_dump실행 중인 역할의 권한이 있는 세션pg_dump(종종 슈퍼유저임). 공격에는 시퀀스 또는 유사한 개체를 악성 코드를 실행하는 뷰 또는 외부 테이블로 바꾸는 것이 포함됩니다. 이를 방지하려면 새로운 서버 매개변수를 도입하세요.restrict_nonsystem_relation_kind기본 제공되지 않은 뷰의 확장과 외부 테이블에 대한 액세스를 비활성화하고 가르칠 수 있음pg_dump가능한 경우 설정합니다. 공격은 둘 다인 경우에만 방지됩니다.pg_dump그리고 그것이 덤프되는 서버는 이 수정 사항을 적용할 만큼 충분히 새로운 서버입니다.
그포스트그레SQL프로젝트는 이 문제를 보고한 Noah Misch에게 감사드립니다. (CVE-2024-7348)
테이블에 이전에 상속 하위 항목이 있었던 경우 테이블을 파티션으로 연결한 후 오류 수정 (Álvaro Herrera)§
수정테이블 분리 파티션 변경일관되지 않은 색인 기반 제약 조건과 관련된 경우(Álvaro Herrera, Tender Wang)§ §
분할된 테이블에 제약 조건과 연결되지 않은 인덱스가 있지만 파티션에 동등한 인덱스가 있는 경우 파티션을 분리하면 오작동하여 이전 파티션의 제약 조건이 잘못된 상태로 남게 됩니다.coninhcount값. 이로 인해 해당 제약 조건을 추가로 조작하는 동안 문제가 발생할 수 롤 토토.
프로시저에 대한 다형성 출력 인수 처리 문제 수정(Tom Lane)§ §
SQL전화문이 해당 인수에 대한 올바른 데이터 유형을 확인하지 못하여 다음과 같은 오류가 발생했습니다.“anyelement 유형의 값을 표시할 수 없습니다.”또는 완전히 충돌할 수도 롤 토토. (그러나전화inPL/pgSQL올바르게 작동했습니다.)
a에서 호출된 안정적인 함수의 동작 수정전화문의 인수 목록(Tom Lane)§
만약에전화원자적 컨텍스트(예: 외부 트랜잭션 블록이 있음) 내에 있는 경우 이러한 함수에 잘못된 스냅샷이 전달되어 외부 트랜잭션 시작 이후 수정된 행의 오래된 값을 보게 됩니다.
정수 오버플로 감지돈계산(Joseph Koshakow)§
다음에 대한 산술 함수가 없습니다.돈이전에 오버플로를 검사한 유형이므로 오버플로된 경우에 자동으로 잘못된 답변을 제공했습니다.
크기 조정 인수의 과도한 클램핑 수정라운드(숫자)그리고trunc(숫자)(딘 라시드)§
이 함수는 스케일 인수를 +/-2000으로 고정했지만 더 큰 유효한 사용 사례가 있습니다. 이러한 경우 함수는 잘못된 결과를 반환했습니다. 대신 실제 허용되는 유형 범위로 고정합니다.숫자.
방지pg_sequence_last_value()대기 서버의 기록되지 않은 시퀀스 및 다른 세션의 임시 시퀀스에서 실패(Nathan Bossart)§
이런 경우 오류를 발생시키는 대신 NULL을 반환하도록 만드세요.
에서 무시된 연산자 구문 분석 수정websearch_to_tsquery()(톰 레인)§
설명서에 따르면 입력 시 구두점websearch_to_tsquery()대시와 따옴표 등 특별한 경우를 제외하고는 무시됩니다. 그러나  바로 앞에는 괄호와 기타 몇 가지 문자가 나타납니다.또는원인이 될 수 롤 토토또는데이터 단어가 아닌 데이터 단어로 취급됩니다.또는연산자는 예상대로입니다.
새로운 배열 차원을 계산하는 동안 또 다른 정수 오버플로 사례 감지(Joseph Koshakow)§
배열 차원 적용 거부[-2147483648:2147483647]빈 배열로. 이는 CVE-2023-5869와 밀접하게 관련되어 있지만 배열이 여전히 비어 있기 때문에 무해해 보입니다.
해당 필드를 삭제하는 동안 새 카탈로그 캐시 항목이 오래되는 또 다른 사례 감지(Noah Misch)§
카탈로그 튜플의 라인 외부 필드를 확장하는 동안 발생하는 내부 업데이트가 누락되어 내부 변경이 부족하지만 오래된 것으로 알려지지 않은 카탈로그 캐시 항목이 발생할 수 롤 토토. 이는에서만 가능합니다.pg_database카탈로그이므로 효과는 좁지만 잘못된 동작이 가능합니다.
대상 보기 열의 업데이트 가능성을 올바르게 확인삽입 ... 기본값(톰 레인)§
이러한 열이 업데이트할 수 없는 경우 이를 보고하는 오류가 발생해야 합니다. 그러나 검사가 누락되어 나중에 코드에서 다음과 같은 도움이 되지 않는 오류를 보고하게 됩니다.“속성 번호N보기 대상 목록에서 찾을 수 없음”.
잘못된 재귀 쿼리에 대해 도움이 되지 않는 내부 오류 보고를 피하세요(Tom Lane)§
오류 검사 순서를 재정렬하여 다음과 같은 경우 현장 오류를 발생시킵니다.재귀적 사용쿼리는 두 번째 부분에 자체 참조가 없습니다.유니언, 그러나 다음과 같은 다른 위치에는 하나의 자기 참조가 있습니다.주문 기준.
대기 중인 경우 오류를 발생시키지 마십시오이후트리거가 더 이상 존재하지 않습니다(Tom Lane)§
트랜잭션이 지연된 작업을 대기열에 넣는 작업을 실행할 수 롤 토토.이후나중에 실행하기 위해 트리거한 다음 그 일이 발생하기 전에 트리거를 삭제합니다. 이전에는 다음과 같은 이상한 오류가 발생했습니다.“트리거를 찾을 수 없음NNNN”. 트리거가 실행되었을 시점에 더 이상 존재하지 않는다면 조용히 아무것도 하지 않는 것이 더 나은 것 같습니다.
제거 실패 수정pg_init_privs테이블 삭제 시 열 수준 권한에 대한 항목(Tom Lane)§
확장 프로그램이 자신이 생성한 테이블에 일부 열 수준 권한을 부여하는 경우 확장 프로그램이 삭제된 후에도 관련 카탈로그 항목이 뒤에 남아 롤 토토. 이는 테이블의 OID가 무엇을 방해할 수 있는지 다른 관계에 재사용하기 전까지는 무해했습니다.pg_dump해당 관계에 대한 덤프입니다.
다음에 대한 중재자 색인 선택 수정충돌 중원하는 색인에 표현식이나 술어가 있는 경우(Tom Lane)§
쿼리를 사용하는 경우충돌 중업데이트 가능한 뷰를 통해 대상 테이블에 액세스합니다. 다음과 같이 실패할 수 있습니다.“ON CONFLICT 사양과 일치하는 고유 또는 제외 제약 조건이 없습니다”, 일치하는 색인이 존재하더라도.
다른 세션의 임시 테이블 수정을 거부테이블 변경(톰 레인)§
권한 확인은 일반적으로 이러한 상황이 발생하는 것을 방지하지만, 하위 항목이 다른 세션의 임시 테이블인 상위 테이블을 변경하면 이러한 상황에 도달할 수 있습니다. 그러한 하위 테이블이 다른 세션에 속해 있음을 발견하면 오류가 발생합니다.
다음에서 생성된 하위 쿼리를 다시 계산하지 못하는 문제 수정MIN()또는MAX()집계(톰 레인)§
어떤 경우에는 외부 쿼리의 한 행에서 계산된 집계 결과가 이후 행에서 재사용되어서는 안 되지만 재사용될 수 있습니다. 이는 외부 쿼리가 다음을 사용할 때만 발생하는 것으로 나타났습니다.독특해시 집계로 구현되지만 다른 경우도 있을 수 롤 토토.
JIT 인라인 백엔드 함수에서 오류가 발생할 때 충돌 방지(Tom Lane)§
오류 상태에는 JIT 컴파일 코드(오류 위치 문자열용)를 보유하고 있는 동적으로 로드된 모듈에 대한 포인터가 포함될 수 롤 토토. 일부 코드 경로에서는 오류 보고서가 처리되기 전에 모듈이 언로드되어 위치 문자열에 액세스할 때 SIGSEGV가 발생할 수 롤 토토.
행동 변화에 대처libxml2버전 2.13.x (Erik Wienhold, Tom Lane)§
특히, 우리는 이제 억제합니다“청크의 균형이 잘 맞지 않습니다.”오류 발생libxml2(이것이 보고된 유일한 오류가 아닌 이상) 이는 2.13.x와 이전 버전 간에 오류 보고서를 일관되게 만들기 위한 것입니다.libxml2버전. 이전 버전에서는 해당 메시지가 거의 항상 중복되거나 완전히 부정확했기 때문에 2.13.x에서는 보고되는 사례 수가 크게 줄었습니다.
상시 대기 서버를 시작할 때 준비된 트랜잭션의 하위 트랜잭션 처리 문제 수정(Heikki Linnakangas)§
종료 체크포인트 WAL 레코드에서 대기 재생을 시작할 때 준비되었지만 기본에서 아직 커밋되지 않은 트랜잭션은 아직 진행 중인 것으로 올바르게 이해됩니다. 그러나 준비된 트랜잭션의 하위 트랜잭션(저장점 또는PL/pgSQL예외 블록)은 고려되지 않았으며 중단된 것으로 처리됩니다. 준비된 트랜잭션이 나중에 커밋되면 불일치가 발생했습니다.
논리 복제 슬롯의 잘못된 초기화 방지(사와다 마사히코)§
어떤 경우에는 WAL 스트림 내 복제 슬롯의 시작 지점이 트랜잭션 내 지점으로 설정되어 어설션 실패 또는 잘못된 디코딩 결과가 발생할 수 있습니다.
알림 또는 sinval 인터럽트 서비스 후 메모리 누수 방지(Tom Lane)§
이러한 이벤트에 대한 처리 기능은 현재 메모리 컨텍스트를 TopMemoryContext로 전환하여 잘못된 설정이 대체되기 전에 할당된 모든 데이터의 세션 수명 누출을 초래할 수 있습니다. 바인딩 메시지에 첨부된 매개변수 및 수신 쿼리의 인코딩 변환과 관련하여 관찰 가능한 누출이 있었습니다.
Windows 소켓에서 입력 종료 이벤트 누락 가능성 방지(Thomas Munro)§
Windows는 원격 연결 종료 후 단 한 번만 FD_CLOSE 이벤트를 보고합니다. 불운한 타이밍으로 인해 해당 보고서를 놓치고 무한정 기다리거나 적어도 제한 시간이 경과할 때까지 더 많은 입력을 기대하게 될 수 있습니다.
OpenSSL에 의한 상태 저장 TLS 세션 티켓 생성 비활성화(Daniel Gustafsson)§ § §
이것은 세션 티켓 수신이 TLS 세션 재개가 지원된다는 것을 의미한다고 생각하는 클라이언트의 실패 가능성을 방지합니다.
재계획할 때 aPL/pgSQL “간단한 표현”, 여전히 간단한지 확인하세요(Tom Lane)§
참조된 함수를 삭제하고 이를 집합으로 다시 생성하는 등 상당히 인위적인 특정 사례는 다음과 같은 놀라운 실패로 이어질 수 있습니다.“예기치 않은 계획 노드 유형”.
사이의 비호환성 수정PL/펄및 Perl 5.40(앤드류 던스턴)§
재귀 문제 수정기록-반환PL/파이썬함수 (톰 레인)§
다른 열 정의 목록을 전달하는 동일한 함수의 새로운 호출을 반복하는 경우(AS절), 내부 호출이 반환할 행 유형에 대한 외부 호출의 아이디어를 덮어쓰므로 실패합니다.
부패하지 마세요PL/파이썬'sTD재귀 트리거 호출 중 사전(Tom Lane)§
만약에PL/파이썬-언어 트리거로 인해 또 다른 트리거가 호출되었습니다.TD내부 사전을 위해 생성된 사전은 외부 사전을 덮어쓰게 됩니다.TD사전.
수정PL/Tcl튜플을 반환하는 함수의 결과에서 잘못된 목록 구문에 대한 보고(Erik Wienhold, Tom Lane)§
이러한 경우 충돌이 발생하거나 실제로 이전 Tcl 오류를 참조하는 오해의 소지가 있는 컨텍스트 정보가 방출될 수 있습니다.
스레드에 안전하지 않은 사용을 피하세요strerror()에libpq(피터 아이젠트라우트)§
OpenSSL에서 반환된 특정 오류 메시지는 다중 스레드 응용프로그램에서 깨질 수 롤 토토.
다음을 확인하세요pg_restore -l종속 목차 항목을 올바르게 보고합니다(Tom Lane)§
만약-l다음과 같은 선택적 복원 옵션과 함께 지정되었습니다.-n또는-N, 설명과 같은 종속 TOC 항목은 실제 복원에서 선택한 경우에도 목록에서 생략됩니다.
시스템 제공과의 충돌을 피하세요<regex.h헤더(토마스 먼로)§
이것은 macOS 버전 15 이상에서의 컴파일 실패를 수정합니다.
다음에서 무해한 어설션 실패 수정동시에 REINDEXSP-GiST 인덱스에 적용됨(Tom Lane)§