Debian dla-4821 : libperl-dev - セキュリティ更新

critical Nessus プラグイン ID 362949

概要

リモートの Debian ホストに 1 つ以上のセキュリティ関連の更新プログラムがありません。

説明

リモートの Debian 12 ホストには、dla-4821 のアドバイザリに記載された複数の脆弱性の影響を受けるパッケージがインストールされています。

- ------------------------------------------------------------------------- Debian LTS アドバイザリ DLA-4821-1 [email protected] https://www.debian.org/lts/security/Arnaud Rebillout 2026 年 10 月 5 日 https://wiki.debian.org/LTS
- -------------------------------------------------------------------------

パッケージ:perl バージョン:5.36.0-7+deb12u4 CVE ID: CVE-2025-15649 CVE-2026-7010 CVE-2026-7017 CVE-2026-8376 CVE-2026-12087 CVE-2026-13221 CVE-2026-19487 CVE-2026-42496 CVE-2026-42497 CVE-2026-48959 CVE-2026-48962 CVE-2026-57432 CVE-2026-57433 Debian バグ:1137345 1138854 1138856 1138858 1138859 1138860 1138863 1138905 1138906 1140152 1141639 1142037 1144668

Perl プログラミング言語に複数の脆弱性が発見されました。

CVE-2025-15649

IO::Uncompress::Unzip でのヘッダー解析

2.215 より前の Perl 用 IO::Uncompress::Unzip では、不適切 DOS 日付を含む ZIP ヘッダーを解析すると、捕捉されていない例外が伝播します。
_dosToUnixTime() はローカルファイルヘッダーの最終更新日時フィールドをデコードし、eval ガードなしで Time::Local::timelocal() を呼び出します。ヘッダーの日付フィールドが範囲外の月、日、または時間にデコードされると、timelocal() が停止します。例外が IO::Uncompress::Unzip->new($file) の外部に伝播します。この箇所では、呼び出し元は undef と $UnzipError が返されることを想定しています。

CVE-2026-7010

HTTP::Tiny における CRLF 検証

0.093 より前の Perl 用 HTTP::Tiny では、HTTP リクエスト行またはヘッダーフィールドの値に含まれる CRLF が検証されません。検証されない入力は、リクエスト行のメソッドと URI、「Host:」ヘッダーになる URL のホスト、および HTTP/1.1 の制御データフィールドの値です。
これらの入力のいずれかを制御できる攻撃者は、例えば Webhook または URL 取得エンドポイントに渡されるユーザー提供の URL を利用して、追加のヘッダーを挿入し、アップストリームサーバーにリクエストを密かに送信できます。

CVE-2026-7017

HTTP::Tiny におけるリダイレクト時の認証情報転送

0.095 より前の Perl 用 HTTP::Tiny では、認証情報を含むヘッダーがクロスオリジンのリダイレクト先に転送されます。サーバーが 3xx リダイレクトを返すと、「_maybe_redirect」は「Location:」ヘッダーに従い、「_prepare_headers_and_cb」はリダイレクト先が元の URL と同じオリジンかどうかを確認せずに、呼び出し元の「headers」引数を新しいリクエストに再マージします。呼び出し元が指定した「Authorization」、「Cookie」、「Proxy-Authorization」ヘッダーは、リダイレクトで指定された任意のホストに再送信されるため、スキーム、ホスト、ポートの境界を越えて転送されます。また、「https」から「http」へのダウングレードも含まれるため、これらの情報が通信経路上で平文で公開されます。HTTP::Tiny の POD にある「Authorization」ヘッダーはリダイレクトされたリクエストには含まれないという注記は、URL のユーザー情報に含まれる Basic 認証のパスにのみ適用され、呼び出し元が明示的に渡したヘッダーには適用されません。

CVE-2026-8376

Perl_study_chunk におけるバッファーオーバーフロー

Perl 5.40.5-RC1 より前のバージョン、5.41.0 より前の 5.42.3-RC1、5.43.11 より前の 5.43.0 では、32 ビットビルドで繰り返される固定文字列を含む正規表現をコンパイルする際に、ヒープバッファーオーバーフローが発生します。
regcomp_study.c の Perl_study_chunk が、結合されたサブストリングバッファーのサイズをバイト単位ではなく文字単位でチェックしていました。最小出現回数が大きい量指定された固定部分文字列の場合、バイト長の最小出現回数
*「l」が SSize_t の範囲を超えることで、サイズ不足の SvGROW 割り当てが行われ、その後のコピーによってバッファーの末尾を越えて書き込まれます。攻撃者がコントロールしている正規表現を 32 ビット perl ビルドでコンパイルする呼び出し元は、コンパイル時にヒープバッファオーバーフローを発生させます。

CVE-2026-12087

Socket: pack_ip_mreq_source() における領域外のヒープ読み取り

Perl用に 2.041 する前のソケットバージョンには、領域外ヒープ読み取りがあります。Socket.xs では、pack_ip_mreq_source() が引数を読み込む前にソース引数の長さをチェックするため、チェックは代わりに先行する multiaddr 引数から繰り越されたバイト長をテストします。両方のアドレスは 4 バイトのフィールドを占有するため、有効な multiaddr は任意の長さのソースにチェックを通過させ、ソースは固定サイズのコピーとともに 4 バイトの imr_sourceaddr フィールドにコピーされます。4 バイトより短いソースは拒否されず、コピーはバッファの終端を越えて最大 3 バイトまで読み取ります。ソース値が 4 バイトより短い pack_ip_mreq_source() を呼び出すと、隣接するヒープメモリが返ってきたパック構造体にコピーされます。

CVE-2026-13221

正規表現の照合結果が誤る可能性

Perl 5.40.5-RC1 より前のバージョン、5.42.3-RC1 より前の 5.41.0 から、5.43.10 より前の 5.43.0 のバージョンでは、65535 を超える固定文字列ブランチの代替が Perl_study_chunk のトライにコンパイルされるときに、警告なしで正しくない正規表現の一致が生成されます。このようなブランチがトライに結合されると、最初のブランチと共有された末尾の間のデルタが 16 ビットフィールドに格納されます。65535 を超えるブランチカウントがフィールドをオーバーフローし、トライの一致デシジョンテーブルは警告やエラーなしで切り捨てられます。この形状のパターンは、偽陽性の一致 (文字列を一致させるべきでない) と偽陰性の一致 (文字列を一致させない) を生成します。このようなパターンがアクセスまたはフィルタリングの決定をゲートする場合、結果は間違っています。

CVE-2026-19487

正規表現の誤った照合結果

5.41.9 より前の 5.9.4 からのPerlバージョンは、古いエラーフラグが S_find_byclass の早い段階で Aho-Corasick プレススキャンを終了すると、不適切な正規表現の一致結果を生成します。事前スキャンでは、パターン全体がマッチする可能性のある位置を対象文字列から探し、エンジンは記録された最も左側の位置からマッチングを試行します。移行が失敗すると失敗フラグが設定され、移行が成功してもクリアされないため、prescan は古いフラグを失敗として読み取り、それより前に開始した候補を記録する前に停止します。候補位置が 1 つ記録されている対象文字列に対し、その後の文字によって、成功する失敗リンクを介したフォールバックが発生します。例: ABCDE =~ m/ABCF|BCDE|C/; # オフセット 2 の C にマッチしますが、BCDE にはマッチしません。ABCDE =~ m/ABCF|BCDE|C(G)/; # マッチせず、BCDE が見落とされます。このような選択肢では、本来マッチするはずの入力を見落としたり、誤った分岐でマッチしたりする可能性があります。そのため、マッチング結果に基づいて行われるアクセス制御やフィルタリングの判断を誤る可能性があります。

CVE-2026-42496

Archive::Tar シンボリックリンクの抽出

Perl 用の 3.08 より前の Archive::Tar バージョンは、抽出ディレクトリ外にある攻撃者がコントロールするターゲットとのシンボリックリンクを抽出します。
「_make_special_file()」は、tar ヘッダーの linkname を絶対パスや「..」セグメントに対して検証せずに symlink() に渡します。通常のファイル抽出を保護する secure-extract モードのチェックは、シンボリックリンクターゲットをカバーしません。抽出された名前を介して後続の open を行うと、攻撃者が選択したパスの読み取りまたは書き込みが行われます。

CVE-2026-42497

Archive::Tar のハードリンク抽出

3.08 より前の Perl 用 Archive::Tar では、抽出ディレクトリ外の攻撃者が制御するパスにハードリンクを抽出します。
「_make_special_file()」は、tar ヘッダーの linkname を絶対パスや「..」セグメントに対して検証せずに link() に渡すため、被害者のファイルと同じ inode を共有するハードリンクが作成されます。抽出された名前を介して後続の書き込みを行うと被害者のファイルが変更され、さらに「_extract_file()」内の抽出後の chmod、chown、utime ブロックは「-l」によるシンボリックリンクのチェックしか行わないため、抽出処理だけで tar ヘッダーのモード、所有者、タイムスタンプが共有 inode に適用されます。

CVE-2026-48959

IO::Uncompress::Unzip における CPU 枯渇

Perl に対する 2.220 より前の IO::Uncompress::Unzip バージョンでは、fastForward のバイトごとの読み取りループにより CPU 消耗が起こる可能性があります。fastForward() は、長さ$offset (オフセットの桁数、1 から 19) を、$offset 自体ではなくチャンクサイズ $c と比較するため、$c は反復ごとに 16 KiB から 1 から 19 バイトに縮小されます。IO::Uncompress::Unzip->new($zip, Name => $target) を介して攻撃者が指定した zip から名前付きのエントリを抽出すると、エントリの圧縮サイズで、バイトごとの読み取りループが、非 Zip64 の 4 GiB 上限まで拡大縮小されます。

CVE-2026-48962

出力 glob による IO-Compress でのコード実行

Perl に対して 2.220 される前の IO::Compress のバージョンは、攻撃者がコントロールする出力 glob を介して、File::GlobMapper で任意のコードを実行する可能性があります。
_parseOutputGlob() は、呼び出し元指定の出力 glob 文字列を二重引用符で囲み、パーサー状態で保存します。次に_getFiles()は、保存された式をeval STRING経由で実行します。出力globのリテラル二重引用符はdquoteラッパーを閉じ、それに続く文字はPerlとして評価されます。出力 glob の任意の Perl が、呼び出し側プロセスの権限で実行されます。

CVE-2026-57432

pack() および unpack() の領域外ヒープ読み取り

5.40.5-RC1より前、5.42.3-RC1 より前の 5.41.0、5.43.11 より前の 5.43.0 の Perl バージョンでは、S_measure_struct に整数オーバーフローがあり、pack と unpack で領域外ヒープ読み取りが発生します。
S_measure_struct は、各アイテムのサイズに繰り返し回数を掛けたものを、オーバーフローチェックなしで累計に加算するため、パックまたはアンパックテンプレートの繰り返し回数が大きいと、署名付き SSize_t 合計がマイナスになります。@、X、x の位置コードは、その後、符号付きの長さ比較によって移動をチェックしますが、長さが負の場合にチェックを通過するため、バッファーポインターが領域外に移動します。信頼できない入力から作成されたテンプレートは、バッファーの末尾を越えてヒープメモリを読み取り、その内容を呼び出し元に返す可能性があります。

CVE-2026-57433

Storable における符号付き整数オーバーフロー

Perl 用に 3.41 される前の保存可能なバージョンでは、細工された SX_HOOK レコードを逆シリアル化する際に、署名付き整数オーバーフローが発生します。retrieve_hook_common は、SX_HOOK レコードから署名付きの 32 ビット項目カウントを読み取り、そのカウントに 1 を加えた値で av_extend を呼び出します。カウントが I32_MAX の場合、加算が負の値にラップされます。細工された BLOB を thaw または retrieve に渡すとオーバーフローが発生し、av_extend が負の個数を受け取ってパニックを起こし、デシリアライズ処理が終了します。

Debian 12 bookworm においては、これらの問題はバージョン 5.36.0-7+deb12u4 で修正されました。

perl パッケージをアップグレードすることを推奨します。

perl の詳細なセキュリティステータスについては、そのセキュリティトラッカーページを参照してください :
https://security-tracker.debian.org/tracker/perl

Debian LTS セキュリティアドバイザリに関する詳細、これらの更新をシステムに適用する方法、およびよくある質問については、こちらを参照してください。https://wiki.debian.org/LTS

前述の説明ブロックは、Tenable が Debian セキュリティアドバイザリから直接抽出したものです。

Nessus はこれらの問題をテストしておらず、代わりにアプリケーションが自己報告するバージョン番号にのみ依存していることに注意してください。

ソリューション

libperl-dev パッケージをアップグレードしてください。

参考資料

https://packages.debian.org/source/bookworm/perl

https://security-tracker.debian.org/tracker/CVE-2025-15649

https://security-tracker.debian.org/tracker/CVE-2026-12087

https://security-tracker.debian.org/tracker/CVE-2026-13221

https://security-tracker.debian.org/tracker/CVE-2026-19487

https://security-tracker.debian.org/tracker/CVE-2026-42496

https://security-tracker.debian.org/tracker/CVE-2026-42497

https://security-tracker.debian.org/tracker/CVE-2026-48959

https://security-tracker.debian.org/tracker/CVE-2026-48962

https://security-tracker.debian.org/tracker/CVE-2026-57432

https://security-tracker.debian.org/tracker/CVE-2026-57433

https://security-tracker.debian.org/tracker/CVE-2026-7010

https://security-tracker.debian.org/tracker/CVE-2026-7017

https://security-tracker.debian.org/tracker/CVE-2026-8376

https://security-tracker.debian.org/tracker/source-package/perl

プラグインの詳細

深刻度: Critical

ID: 362949

ファイル名: debian_DLA-4821.nasl

バージョン: 1.1

タイプ: Local

エージェント: unix

公開日: 2026/10/5

更新日: 2026/10/5

サポートされているセンサー: Frictionless Assessment Agent, Nessus Agent, Agentless Assessment, Continuous Assessment, Tenable Cloud Security, Tenable Self-Hosted Container Security, Nessus

リスク情報

VPR

リスクファクター: High

スコア: 7.1

パーセンタイル: 98.36

CVSS v2

リスクファクター: Critical

基本値: 10

現状値: 7.8

ベクトル: CVSS2#AV:N/AC:L/Au:N/C:C/I:C/A:C

CVSS スコアのソース: CVE-2026-8376

CVSS v3

リスクファクター: Critical

基本値: 9.8

現状値: 8.8

ベクトル: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

現状ベクトル: CVSS:3.0/E:P/RL:O/RC:C

脆弱性情報

CPE: cpe:/o:debian:debian_linux:12.0, p-cpe:/a:debian:debian_linux:libperl-dev, p-cpe:/a:debian:debian_linux:libperl5.36, p-cpe:/a:debian:debian_linux:perl-base, p-cpe:/a:debian:debian_linux:perl-debug, p-cpe:/a:debian:debian_linux:perl-doc, p-cpe:/a:debian:debian_linux:perl-modules-5.36, p-cpe:/a:debian:debian_linux:perl

必要な KB アイテム: Host/local_checks_enabled, Host/Debian/release, Host/Debian/dpkg-l

エクスプロイトが利用可能: true

エクスプロイトの容易さ: Exploits are available

パッチ公開日: 2026/10/5

脆弱性公開日: 2026/5/11

参照情報

CVE: CVE-2025-15649, CVE-2026-12087, CVE-2026-13221, CVE-2026-19487, CVE-2026-42496, CVE-2026-42497, CVE-2026-48959, CVE-2026-48962, CVE-2026-57432, CVE-2026-57433, CVE-2026-7010, CVE-2026-7017, CVE-2026-8376

IAVA: 2026-A-0618, 2026-A-0696-S, 2026-A-0889