Amazon Linux 2023:perl-net-IDN-Encode (ALAS2023-2026-3190)

critical Nessus Plugin ID 365261

概要

遠端 Amazon Linux 2023 主機缺少一個安全性更新。

說明

因此,它會受到 ALAS2023-2026-3190 公告中所提及的多個弱點影響。

Net::IDN::P unycode 版本 2.590 之前的 Perl 允許透過 encode_punycode 中增量累加器的整數溢位進行越界讀取。

XS 後端會將 punycode delta 以及由此衍生的數位索引保留在帶正負號的 int 中。累積 'delta += (m-n) * (h+1)' 沒有溢位檢查,因此足夠大的代碼點會包裝 delta,並且數字索引會離開 36 個項目的數字表的範圍。最終表格存取之前的界限僅測試高於 36 的索引,因此負索引會通過它,36 本身也是如此。Perl 字串保存 Unicode 範圍之外的程式碼點,其中一個這樣的程式碼點會自行溢出累積。有效輸入也會包裝它,例如 1927 ASCII 字母後面接著 U+10FFFF。轉換函式會在檢查標籤長度之前對標籤進行編碼,因此長標籤會透過記錄的 API 到達編碼器。

只有 XS 後端受到影響。

對攻擊者提供的字串進行編碼會將位元組從數字表外部複製到編碼結果中,或使處理程序當機。(CVE-2026-74765)

之前的 2.3012.590 Net::IDN::P unycode 版本Perl允許透過解碼的程式碼點進行堆積釋放後使用,該程式碼點會在 decode_punycode 中重新配置輸出緩衝區。

XS 後端會將每個解碼的程式碼點插入其傳回之純量的字串緩衝區中。
decode_punycode 會先計算插入指標,然後只有在程式碼點不適合時才會增加緩衝區。成長會重新配置緩衝區,並更新插入指標以外的每個指標,因此後續的移動和程式碼點的寫入會經過釋放的指標。緩衝區從標籤長度的兩倍開始,而 U+FFFF 上方的字碼點在輸出中佔用四個位元組,因此這類字碼點的標籤會超出它,並強制重新配置。

版本 2.301,的 CVE-2016-15059修正,引入了缺陷。只有 XS 後端受到影響。

解碼攻擊者提供的 punycode 標籤會讀取和寫入釋放的堆積記憶體。(CVE-2026-74766)

Net::IDN::P unycode 版本2.3022.590的 Net::IDN:decode_punycode 中每個被拒絕標籤上的輸出緩衝區Perl洩漏。

XS 後端在驗證輸入之前分配其傳回的純量,將緩衝區大小調整為輸入長度的兩倍。純量只會在成功路徑上釋放,因此拒絕標籤的三個呱呱聲中的每一個都會保留純量及其緩衝區配置。沒有任何內容會限制 Unicode 方向的標籤長度,因為只有在轉換為 ASCII 時才會檢查 63 位元組的 DNS 限制。

只有 XS 後端受到影響。

提供無效標籤的傳送者會將每個拒絕呼叫的標籤長度增加兩倍的處理程序,而不需要成功的呼叫。(CVE-2026-87078)

Net::IDN::P unycode 版本 2.590 之前的 Perl 在解碼 decode_punycode 中的長標籤時,允許透過二次插入成本耗盡 CPU。

XS 後端將每個解碼的程式碼點插入 UTF-8 緩衝區中,並透過從頭開始掃描該緩衝區(一次一個字元)來找到插入點。掃描會在目前為止建置的輸出上每個程式碼點執行一次,因此成本在標籤長度上是二次的。pure-Perl 後端將其輸入降級為位元組,以便 substr 可以直接為其編製索引,但在降級之前獲取其工作副本,因此當輸入帶有 UTF-8 標誌時,副本上的每個 substr 都會從頭開始掃描,具有相同的二次成本。

沒有任何內容會限制 Unicode 方向上的標籤長度。只有在轉換為 ASCII 時才會檢查 63 位元組的DNS限制,因此domain_to_unicode和uts46_to_unicode會將攻擊者提供的任何長度的標籤傳遞給解碼器。(CVE-2026-87079)

Net::IDN::P unycode::P P 版本 2.590 之前Perl將截斷的標籤解碼為包含其從未在 decode_punycode 中編碼過的字元的名稱。

pure-Perl 解碼器使用四個參數的 substr 一次讀取一個數字,並使用 defined 測試結果以檢測輸入的末尾。substr 在耗盡的字串上傳回空字串而不是 undef,因此解碼會持續到結尾。空字串會轉換為範圍下方的位數值,以減少累加器,而解碼器會從中衍生出一個額外的碼點及其位置。結果是確定性的。XS 後端拒絕相同的標籤。

Net::IDN::P unycode 會在 XS 未建置的任何地方使用此後端。

這兩個後端對於此類標籤的含義存在分歧,因此寄件者可以選擇一個安裝解析為名稱而另一個安裝拒絕的標籤。(CVE-2026-87080)

Net::IDN::UTS46 版本 2.590 之前的 Perl 允許在長度檢查to_ascii之前,透過過長標籤的二次 punycode 編碼來耗盡 CPU。

to_ascii punycode 會對每個標籤進行編碼,然後才套用 63 位元組的DNS限制。兩個後端中的encode_punycode遵循 RFC 3492 中的範例實作,其外部迴圈會針對每個不同的非 ASCII 程式碼點執行一次,並在每一輪掃描整個輸入,因此不同非 ASCII 字元的標籤在限制拒絕之前會花費其長度的平方。發行版中的每個 ASCII 轉換 (包括 domain_to_ascii 和 email_to_ascii) 都會經過to_ascii。(CVE-2026-87081)

Net::IDN::P unycode 版本之前Perl 2.590 透過encode_punycode中未經驗證的格式錯誤的 UTF-8 而停擺、當機或傳回錯誤的標籤。

這兩個後端都不會檢查其輸入是否格式正確 UTF-8,因此,當 :utf8 PerlIO 層從任何格式錯誤的輸入產生時,具有 UTF-8 旗標設定在格式錯誤的位元組上的字串會未檢查地到達編碼器。在 perl 5.32 及更高版本上,XS 後端會報告長度為「(STRLEN)-1」的格式錯誤序列,因此掃描會後退一個位元組而不是向前移動,並且永遠不會結束。在早期的 perl 上,XS 會傳回不同名稱的有效標籤。pure-Perl 後端會在標記的字串上執行正則運算式。
根據位元組的不同,它在 perl 5.28 及更高版本上使用 SIGBUS 中止,因錯誤而死亡,或傳回錯誤的標籤。

記載的轉換函式會先將標籤與 Unicode 屬性進行比對,而該比對會在這類字串上進行 DIE,因此只有直接呼叫 encode_punycode 才能達到缺陷。解碼器不受影響。

對攻擊者提供的位元組進行編碼的直接呼叫端會停擺、損毀,或取得輸入從未保留的名稱的標籤。(CVE-2026-87082)

Tenable 已直接從所測試產品的安全公告擷取前置描述區塊。

請注意,Nessus 並未測試這些問題,而是僅依據應用程式自我報告的版本號碼作出判斷。

解決方案

執行「dnf update perl-Net-IDN-Encode --releasever 2023.12.20261012」或「dnf update --advisory ALAS2023-2026-3190 --releasever 2023.12.20261012」來更新您的系統。

另請參閱

https://alas.aws.amazon.com//AL2023/ALAS2023-2026-3190.html

https://alas.aws.amazon.com/faqs.html

https://explore.alas.aws.amazon.com/CVE-2026-74765.html

https://explore.alas.aws.amazon.com/CVE-2026-74766.html

https://explore.alas.aws.amazon.com/CVE-2026-87078.html

https://explore.alas.aws.amazon.com/CVE-2026-87079.html

https://explore.alas.aws.amazon.com/CVE-2026-87080.html

https://explore.alas.aws.amazon.com/CVE-2026-87081.html

https://explore.alas.aws.amazon.com/CVE-2026-87082.html

Plugin 詳細資訊

嚴重性: Critical

ID: 365261

檔案名稱: al2023_ALAS2023-2026-3190.nasl

版本: 1.1

類型: Local

代理程式: unix

已發布: 2026/10/12

已更新: 2026/10/12

支援的感應器: Frictionless Assessment AWS, Frictionless Assessment Agent, Nessus Agent, Agentless Assessment, Continuous Assessment, Tenable Cloud Security, Tenable Self-Hosted Container Security, Nessus

風險資訊

VPR

風險因素: Medium

分數: 4.9

百分位數: 58.47

CVSS v2

風險因素: High

基本分數: 9.4

時間性分數: 7

媒介: CVSS2#AV:N/AC:L/Au:N/C:C/I:N/A:C

CVSS 評分資料來源: CVE-2026-87080

CVSS v3

風險因素: Critical

基本分數: 9.1

時間性分數: 7.9

媒介: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H

時間媒介: CVSS:3.0/E:U/RL:O/RC:C

弱點資訊

CPE: cpe:/o:amazon:linux:2023, p-cpe:/a:amazon:linux:perl-net-idn-encode-debuginfo, p-cpe:/a:amazon:linux:perl-net-idn-encode-debugsource, p-cpe:/a:amazon:linux:perl-net-idn-encode

必要的 KB 項目: Host/local_checks_enabled, Host/AmazonLinux/release, Host/AmazonLinux/rpm-list

可輕鬆利用: No known exploits are available

修補程式發佈日期: 2026/10/12

弱點發布日期: 2026/9/22

參考資訊

CVE: CVE-2026-74765, CVE-2026-74766, CVE-2026-87078, CVE-2026-87079, CVE-2026-87080, CVE-2026-87081, CVE-2026-87082