W3Cschool
恭喜您成為首批注冊(cè)用戶(hù)
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
發(fā)行日期: 2020-11-12
這個(gè)版本包含了13.0的各種修復(fù)。 有關(guān)第13版的新功能的信息, 詳見(jiàn) 第 E.2 節(jié).
運(yùn)行13.X版本的用戶(hù)不需要轉(zhuǎn)儲(chǔ)/恢復(fù)。
塊DECLARE CURSOR ... WITH HOLD
以及在索引表達(dá)式和物化視圖查詢(xún)中觸發(fā)延遲觸發(fā)器(Noah Misch)。
這實(shí)質(zhì)上是“安全限制操作”沙箱機(jī)制的一個(gè)漏洞。 擁有創(chuàng)建非臨時(shí)SQL對(duì)象權(quán)限的攻擊者可以利用這一漏洞,以超級(jí)用戶(hù)身份執(zhí)行任意SQL代碼。
PostgreSQL項(xiàng)目感謝Etienne Stalmans報(bào)告這個(gè)問(wèn)題。 (CVE-2020-25695)
修正在 pg_dump, pg_restore, clusterdb, reindexdb, 和 vacuumdb 中復(fù)雜連接字符串參數(shù)的使用。(Tom Lane)
pg_dump和pg_restore的-d
參數(shù), 或者提到的其他程序的--maintenance-db
參數(shù),可以是一個(gè)“連接字符串”,包含多個(gè)連接參數(shù)而不僅僅是一個(gè)數(shù)據(jù)庫(kù)名稱(chēng)。
在這些程序需要啟動(dòng)額外連接的情況下,例如并行處理或處理多個(gè)數(shù)據(jù)庫(kù),連接字符串被遺忘了,只有基本的連接參數(shù)(數(shù)據(jù)庫(kù)名稱(chēng)、主機(jī)、端口和用戶(hù)名)被用于額外連接。 如果連接字符串包括任何其他重要信息,如非默認(rèn)的SSL或GSS參數(shù),這可能導(dǎo)致連接失敗。更糟糕的是,連接可能會(huì)成功,但沒(méi)有按照預(yù)期進(jìn)行加密 ,或者容易受到中間人攻擊,而預(yù)期的連接參數(shù)本可以防止這種攻擊。 (CVE-2020-25694)
當(dāng)psql的connect
命令重新使用連接參數(shù)時(shí),確保以前的連接字符串中所有未被覆蓋的參數(shù)被重新使用。(Tom Lane)
這就避免了由于遺漏相關(guān)參數(shù)(如非默認(rèn)的SSL或GSS選項(xiàng))而導(dǎo)致重新連接失敗的情況。 更糟糕的是,重新連接可能會(huì)成功,但沒(méi)有按照預(yù)期進(jìn)行加密,或者容易受到中間人攻擊,而預(yù)期的連接參數(shù)本可以防止這種攻擊。 這與剛才提到的pg_dump等的問(wèn)題基本相同,盡管psql的行為更加復(fù)雜, 因?yàn)橛脩?hù)可能有意覆蓋一些連接參數(shù)。 (CVE-2020-25694)
防止psql的\gset
命令修改特別處理的變量 (Noah Misch)
沒(méi)有前綴的\gset
會(huì)覆蓋服務(wù)器告訴它的任何變量。 因此,被攻擊的服務(wù)器可以設(shè)置特殊處理的變量,如PROMPT1
,從而有能力在用戶(hù)會(huì)話中執(zhí)行任意的shell代碼。
PostgreSQL 項(xiàng)目感謝 Nick Cleaton 報(bào)告這個(gè)問(wèn)題。 (CVE-2020-25696)
修復(fù)復(fù)制協(xié)議的意外中斷 (álvaro Herrera)
一個(gè)wal發(fā)送者報(bào)告了START_REPLICATION
的兩個(gè)命令完成事件。 這是沒(méi)有記錄的,而且顯然是無(wú)意的;所以我們沒(méi)有注意到,13.0后的一個(gè)變化刪除了重復(fù)的事件。 然而事實(shí)證明,wal接收者在一些代碼路徑中需要額外的事件。最實(shí)用的修復(fù)方法是宣布額外的事件是協(xié)議的一部分并恢復(fù)生成它。
確保SLRU目錄在檢查點(diǎn)期間被正確地同步。 (Thomas Munro)
這可以防止在隨后的操作系統(tǒng)崩潰中可能出現(xiàn)的數(shù)據(jù)丟失。
為具有BYPASSRLS
屬性的用戶(hù)修復(fù)ALTER ROLE
。(Tom Lane, Stephen Frost)
BYPASSRLS
屬性只允許由超級(jí)用戶(hù)更改,但其他ALTER ROLE
操作, 如密碼更改,應(yīng)該只允許普通的權(quán)限檢查。 以前的編碼錯(cuò)誤地將這種角色的所有更改都限制在超級(jí)用戶(hù)身上。
當(dāng)有子表時(shí),禁用ALTER TABLE ONLY ... DROP EXPRESSION
(Peter Eisentraut)
目前的實(shí)現(xiàn)無(wú)法正確處理這種情況,所以暫時(shí)禁止它。
確保ALTER TABLE ONLY ... ENABLE/DISABLE TRIGGER
不會(huì)遞歸到子表。 (álvaro Herrera)
以前,ONLY
標(biāo)志被忽略。
允許LOCK TABLE
在一個(gè)自引用的視圖上成功。(Tom Lane)
它之前拋出了一個(gè)無(wú)限遞歸錯(cuò)誤,但似乎沒(méi)有必要禁止這種情況。
在整個(gè)REINDEX CONCURRENTLY
中保留關(guān)于一個(gè)索引的統(tǒng)計(jì)數(shù)據(jù)。(Michael Paquier, Fabrízio de Royes Mello)
非并發(fā)重建索引一直保留著這樣的統(tǒng)計(jì)數(shù)據(jù)。
修正REINDEX CONCURRENTLY
的不正確進(jìn)度報(bào)告 (Matthias van de Meent, Michael Paquier)
確保GENERATED
列在它們所依賴(lài)的列通過(guò)規(guī)則或可更新的視圖被更新時(shí)被更新。(Tom Lane)
這個(gè)修正也解決了在這種情況下可能無(wú)法觸發(fā)特定列的觸發(fā)器的問(wèn)題。
修復(fù)依賴(lài)排序的分區(qū)綁定表達(dá)的故障 (Tom Lane)
支持text數(shù)組的散列 (Peter Eisentraut)
如果數(shù)組元素類(lèi)型是可整理的,數(shù)組散列就會(huì)失敗。值得注意的是,這妨礙了使用以文本數(shù)組列作為分區(qū)鍵的哈希分區(qū)。
防止跨類(lèi)型日期時(shí)間比較中的內(nèi)部溢出 (Nikita Glukhov, Alexander Korotkov, Tom Lane)
以前,如果日期超過(guò)了時(shí)間戳的有效范圍,比較日期和時(shí)間戳?xí)?。在時(shí)區(qū)旋轉(zhuǎn)過(guò)程中,也有涉及接近極限的時(shí)間戳值溢出的邊界情況。
在函數(shù) to_date()
和 to_timestamp()
中修正負(fù)數(shù)年份向公元前的日期逐一轉(zhuǎn)換的問(wèn)題(Dar Alathar-Yemen, Tom Lane)
另外,分配負(fù)數(shù)年和明確的“BC”標(biāo)記的組合來(lái)抵消并產(chǎn)生AD。
允許jsonpath
.datetime()
方法接受ISO 8601格式的時(shí)間戳。(Nikita Glukhov)
這不是SQL所要求的,但它似乎是合適的,因?yàn)槲覀兊?code class="function">to_json()函數(shù)為Javascript的兼容性生成了該時(shí)間戳格式。
確保當(dāng)archive_mode
被設(shè)置為always
時(shí),備用服務(wù)器將歸檔WAL時(shí)間線歷史文件。(Grigory Smolkin, Fujii Masao)
這種疏忽可能會(huì)導(dǎo)致隨后的PITR恢復(fù)嘗試失敗。
修復(fù)在使用kqueue()
的平臺(tái)上檢測(cè)postmaster過(guò)早死亡的邊緣情況。 (Thomas Munro)
避免在排序鍵為volatile表達(dá)式時(shí)產(chǎn)生不正確的增量排序計(jì)劃 (James Coleman)
修正在GEQO規(guī)劃過(guò)程中考慮分區(qū)連接時(shí)可能出現(xiàn)的崩潰。(Tom Lane)
修復(fù)TOAST解壓中可能出現(xiàn)的無(wú)限循環(huán)或損壞的輸出數(shù)據(jù) (Tom Lane)
在只清理VACUUM
s時(shí),修正對(duì)B樹(shù)索引中條目數(shù)量的計(jì)數(shù)。 (Peter Geoghegan)
確保在將數(shù)據(jù)插入BRIN索引之前,對(duì)其進(jìn)行清空處理。 (Tomas Vondra)
索引條目不應(yīng)該包含行外的TOAST指針,但BRIN沒(méi)有收到這個(gè)備忘錄。 這可能會(huì)導(dǎo)致諸如“missing chunk number 0 for toast value NNN”的錯(cuò)誤。(如果你在現(xiàn)有的索引中遇到這樣的錯(cuò)誤,REINDEX
應(yīng)該足以解決它)。
修正緩沖的GiST索引構(gòu)建,以便在索引包含列的情況下工作 (Pavel Borisov)
修正在pg_hba_file_rules
視圖中使用getnameinfo()
的不方便性。 (Tom Lane)
在FreeBSD 11上,可能還有其他平臺(tái),視圖的address
和netmask
列由于這個(gè)錯(cuò)誤而總是為空。
避免debug_query_string
為NULL,啟動(dòng)一個(gè)并行worker時(shí)崩潰。 (Noah Misch)
避免在BEFORE ROW UPDATE
觸發(fā)器返回已刪除或“缺失”列的表的“舊”行時(shí)出現(xiàn)失敗。 (Amit Langote, Tom Lane)
這種抑制更新的方法可能導(dǎo)致崩潰。 意外的CHECK
約束失敗,或者不正確的RETURNING
輸出,因?yàn)?span id="uhnbpsn" class="quote">“missing”列在這些方面會(huì)被讀作NULL。 (如果一個(gè)列是由ALTER TABLE ADD COLUMN
添加的,而且有一個(gè)非NULL,帶有常量的默認(rèn)值,那么這個(gè)列就是
“missing”)。 被刪除的列也會(huì)造成麻煩。
修正EXPLAIN
對(duì)增量排序計(jì)劃的輸出,以便在XML輸出模式下有正確的標(biāo)簽嵌套。(Daniel Gustafsson)
在通過(guò)共享內(nèi)存隊(duì)列傳輸非常大的有效載荷時(shí),避免不必要的失敗 (Markus Wanner)
修正在SQL語(yǔ)言函數(shù)中某些情況下遺漏結(jié)果數(shù)據(jù)類(lèi)型的強(qiáng)制性問(wèn)題 (Tom Lane)
這可能導(dǎo)致錯(cuò)誤的結(jié)果或崩潰,這取決于所涉及的數(shù)據(jù)類(lèi)型。
修正JIT代碼生成中對(duì)模板函數(shù)屬性的不正確處理 (Andres Freund)
這已被證明在s390x
上導(dǎo)致崩潰,而且很可能在其他平臺(tái)上也有其他情況。
改進(jìn)為PPC上的compare_exchange和fetch_add操作生成的代碼 (Noah Misch)
修復(fù)RLS策略下的relation緩存內(nèi)存泄漏問(wèn)題 (Tom Lane)
修復(fù)函數(shù)index_get_partition()
中的邊緣案例內(nèi)存泄露。 (Justin Pryzby)
當(dāng)SIGHUP處理決定不重啟就不能應(yīng)用新的GUC變量值時(shí),修復(fù)小的內(nèi)存泄漏。 (Tom Lane)
修復(fù)PL/pgsql的CALL
處理中的內(nèi)存泄漏。(Pavel Stehule, Tom Lane)
在Windows的libpq中,每個(gè)進(jìn)程調(diào)用WSAStartup()
一次,WSACleanup()
完全不調(diào)用。 (Tom Lane, Alexander Lakhin)
以前,libpq在連接開(kāi)始時(shí)調(diào)用WSAStartup()
,在連接清理時(shí)調(diào)用WSACleanup()
。然而,調(diào)用WSACleanup()
似乎會(huì)干擾其他的程序操作;特別是,我們觀察到很少的失敗,無(wú)法向stdout發(fā)出預(yù)期的輸出。 省略這個(gè)調(diào)用似乎沒(méi)有什么不好的影響,所以就這么做吧。這也消除了程序執(zhí)行一系列數(shù)據(jù)庫(kù)連接時(shí)重復(fù)加載和卸載DLL的性能問(wèn)題)。
修復(fù)ecpg庫(kù)在Windows下的per-thread初始化邏輯 (Tom Lane, Alexander Lakhin)
多線程ecpg應(yīng)用程序可能由于不正確的鎖定而出現(xiàn)罕見(jiàn)的錯(cuò)誤行為。
修正ecpg對(duì)B'...'
和X'...'
字樣的錯(cuò)誤處理。 (Shenhao Wang)
在Windows上,使psql以文本模式而不是二進(jìn)制模式讀取回車(chē)鍵命令的輸出。 (Tom Lane)
這確保了對(duì)換行的正確處理。
確保pg_dump收集擴(kuò)展配置表的每列信息 (Fabrízio de Royes Mello, Tom Lane)
如果不這樣做,在指定--inserts
時(shí),會(huì)導(dǎo)致崩潰,或者在使用COPY
重新加載表的數(shù)據(jù)時(shí),未指定的(盡管通常是正確的)COPY
命令。
使pg_upgrade檢查目標(biāo)集群中的表空間目錄是否預(yù)先存在 (Bruce Momjian)
修復(fù)contrib/pgcrypto
中潛在的內(nèi)存泄漏。 (Michael Paquier)
在contrib/pgcrypto
中增加對(duì)一種不太可能的失敗情況的檢查。 (Daniel Gustafsson)
修正最近添加的timetz
測(cè)試案例,使其在美國(guó)不遵守夏令時(shí)的情況下發(fā)揮作用。 (Tom Lane)
根據(jù)斐濟(jì)、摩洛哥、巴勒斯坦、加拿大育空地區(qū)、麥夸里島和凱西站(南極洲)的夏令時(shí)法律變化,更新時(shí)區(qū)數(shù)據(jù)文件至tzdata2020d版本;以及法國(guó)、匈牙利、摩納哥和巴勒斯坦的歷史修正。
將我們的時(shí)區(qū)庫(kù)副本與IANA的tzcode版本2020d同步。 (Tom Lane)
這吸收了上游對(duì)zic的默認(rèn)輸出選項(xiàng)從“fat”到“slim”的改變。 這對(duì)我們來(lái)說(shuō)只是表面現(xiàn)象,因?yàn)槲覀冊(cè)趘13之前的分支中繼續(xù)選擇“fat”模式。
這一改變也確保了strftime()
不會(huì)改變errno
,除非它失敗。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: