perldelta - Perl v5.38.2 的新特性
本文档描述了 5.38.0 发行版和 5.38.2 发行版之间的差异。请注意:本文档忽略了 Perl 5.38.1,这是一个存在时间仅为几天的损坏版本。
如果您从早期版本(如 5.37.0)升级,请首先阅读 perl5380delta,该文档描述了 5.37.0 与 5.38.0 之间的差异。
此版本修复了以下安全问题。
此漏洞由Nathan Mills直接向Perl安全團隊報告 the.true.nathan.mills@gmail.com
。
在perl 5.30.0至5.38.0中編譯的精心製作的正則表達式可能導致在堆分配的緩衝區中發生一個字節的受攻擊者控制的緩衝區溢出。
此漏洞由GitHub用戶ycdxsb向英特爾產品安全事件響應團隊(PSIRT)報告 https://github.com/ycdxsb/WindowsPrivilegeEscalation。然後PSIRT向Perl安全團隊報告。
Perl for Windows依賴系統路徑環境變量來找到shell(cmd.exe
)。當執行使用Windows Perl解釋器的可執行文件時,Perl會嘗試找到並執行操作系統中的cmd.exe
。然而,由於路徑搜索順序問題,Perl最初會在當前工作目錄中尋找cmd.exe。
有限權限的攻擊者可以利用這種行為,將cmd.exe
放置在權限較弱的位置,例如C:\ProgramData
。這樣一來,當管理員試圖從這些受到侵害的位置使用此可執行文件時,可以執行任意代碼。
Perl 5.38.2相當於自Perl 5.38.0以來大約5個月的開發,跨越4位作者的34個文件中的約6100行更改。
不包括自動生成的文件、文檔和發布工具,約有1300行更改適用於9個.pm、.t、.c和.h文件。
Perl在其第四個十年中繼續蓬勃發展,這要歸功於一個充滿活力的用戶和開發人員社區。以下人員被認為是貢獻了成為Perl 5.38.2改進的人員:
Karl Williamson,Paul Evans,Steve Hay,Tony Cook。
上述名單幾乎肯定是不完整的,因為它是從版本控制歷史自動生成的。特別是,它不包括向Perl錯誤跟蹤器報告問題的(非常感謝的)貢獻者的名字。
此版本中包含的許多更改源於Perl核心中包含的CPAN模塊。我們感謝整個CPAN社區幫助Perl蓬勃發展。
若需查看更完整的 Perl 歷史貢獻者清單,請參閱 Perl 原始碼發佈中的 AUTHORS 檔案。
如果您發現可能是錯誤的情況,您可以查看 Perl 的錯誤資料庫,網址為 https://github.com/Perl/perl5/issues。您也可以在 Perl 官方網站 http://www.perl.org/ 上找到相關資訊。
如果您認為您發現了尚未報告的錯誤,請在 https://github.com/Perl/perl5/issues 開啟一個問題。請確保將您的問題縮小到一個足夠小但足夠完整的測試案例。
如果您所回報的錯誤具有安全問題,使得不適合公開在問題追踪器上報告,請參閱 "perlsec 中的安全漏洞聯絡資訊" 以了解如何報告問題。
如果您想感謝 Perl 5 Porters 在 Perl 5 中所做的工作,您可以執行 perlthanks
程式。
perlthanks
這將會向 Perl 5 Porters 列表發送一封包含您感謝的郵件。
關於如何查看詳盡變更資訊的說明,請參閱 Changes 檔案。
關於如何建構 Perl 的說明,請參閱 INSTALL 檔案。
關於一般事項的說明,請參閱 README 檔案。
有關版權資訊,請參閱 Artistic 和 Copying 檔案。