perl5381delta - Perl v5.38.1 的新功能
本文描述了 5.38.0 版本與 5.38.1 版本之間的差異。
如果您從較早的版本升級,如 5.37.0,請先閱讀 perl5380delta,其中描述了 5.37.0 與 5.38.0 之間的差異。
此版本修復了以下安全問題。
此漏洞由 Nathan Mills the.true.nathan.mills@gmail.com
直接向 Perl 安全團隊報告。
當由 perl 5.30.0 至 5.38.0 編譯時,一個精心製作的正則表達式可以導致在一個堆分配的緩衝區中發生一字節的受攻擊者控制的緩衝區溢出。
這個漏洞是由 GitHub 使用者 ycdxsb https://github.com/ycdxsb/WindowsPrivilegeEscalation 向 Intel 產品安全事件響應團隊 (PSIRT) 報告的。PSIRT 隨後將其報告給了 Perl 安全團隊。
Windows 版本的 Perl 依賴系統路徑環境變量來尋找 shell (cmd.exe
)。當執行一個使用 Windows Perl 解釋器的可執行文件時,Perl 嘗試在操作系統中找到並執行 cmd.exe
。然而,由於路徑搜索順序問題,Perl 首先會在當前工作目錄中尋找 cmd.exe。
擁有有限權限的攻擊者可以利用這種行為,將 cmd.exe
放置在具有弱權限的位置,例如 C:\ProgramData
。這樣一來,當管理員嘗試從這些受影響的位置使用此可執行文件時,將執行任意代碼。
Perl 5.38.1 的開發約為 5 個月,包含來自 4 位作者的約 6,100 行更改跨越 34 個文件。
除了自動生成的文件、文檔和發布工具外,還有大約 1,300 行更改應用於 9 個 .pm、.t、.c 和 .h 文件。
Perl 在其第四個十年中持續蓬勃發展,這要歸功於一個充滿活力的用戶和開發者社區。以下人員被認為是貢獻了 Perl 5.38.1 的改進的人。
Karl Williamson、Paul Evans、Steve Hay、Tony Cook。
上述名單幾乎肯定是不完整的,因為它是從版本控制歷史自動生成的。特別是,它不包括向 Perl Bug 追踪器報告問題的(非常感謝的)貢獻者的名字。
這個版本中包含的許多變更源於 Perl 核心中包含的 CPAN 模塊。我們感謝整個 CPAN 社區對 Perl 的蓬勃發展所做的貢獻。
欲了解所有 Perl 歷史貢獻者的更完整列表,請參閱 Perl 源代碼分發中的 AUTHORS 文件。
如果您發現了您認為是一個 Bug,您可以查看 Perl Bug 數據庫,網址為 https://github.com/Perl/perl5/issues。也可能會在 Perl 官方網站 http://www.perl.org/ 找到相關信息。
如果您認為您發現了一個未報告的 Bug,請在 https://github.com/Perl/perl5/issues 上開啟一個問題。請確保將您的 Bug 縮小到一個足夠小但完整的測試案例。
如果您報告的錯誤具有安全性影響,使其不適合發送到公共問題跟蹤器,請參見"perlsec 中的安全漏洞聯絡資訊",了解如何報告問題的詳細信息。
如果您希望感謝 Perl 5 Porters 在 Perl 5 中所做的工作,您可以運行perlthanks
程式。
perlthanks
這將向 Perl 5 Porters 清單發送一封電子郵件,表達您的謝意。
詳細變更資訊的解釋,請參閱Changes檔案。
如何建構 Perl 的INSTALL檔案。
一般內容的README檔案。
版權信息的Artistic和Copying檔案。