概要
リモートの Amazon Linux 2 ホストに、セキュリティ更新プログラムがありません。
説明
リモートホストにインストールされている perl-Text-CSV_XS のバージョンは、 1.00-3 より前です。したがって、ALAS2-2026-4048 のアドバイザリに記載されている複数の脆弱性の影響を受けます。
Perl の 1.65 より前の Text::CSV_XS バージョンは、getline で解析に失敗するレコードの解析済みフィールドを漏洩します。
getline はレコードのフィールドを新しい配列に収集し、解析が成功した場合にのみそのレコードへの参照を返します。レコードに構文エラーがある場合、getline は undef を返し、エラーの前に解析された配列やフィールドを決して解放しません。
信頼できない CSV を解析する長時間実行のプロセスは、送信されたすべての無効な形式のレコードを保持するため、無効な形式の入力を繰り返すことでそのメモリは使い果たします。(CVE-2026-110754)
Perl に対する 1.65 より前の Text::CSV_XS バージョンでは、getline の CR のみの入力のレコードごとに解析されていない剰余をコピーすることで、2 次 CPU の使用が許容されます。
デフォルトの getline は Perl のデフォルトの行区切り文字で読み取るため、 CR のみの行末が含まれている入力は 1 つのチャンクとして到着します。各レコードの後、パーサーは解析されていない残りのすべてを新しいバッファにコピーし、次の呼び出しで解析して再度コピーするため、入力サイズの 2 乗とともに作業が大きくなります。
従来の Mac の行末で CSV で送信されるデフォルトオプション付きリーダーは、メガバイトの入力に数秒の CPU 時間を費やします。(CVE-2026-110755)
印刷で UTF-8 フラグ付きフィールドが無効な UTF-8 バイトに先行する場合、Perlの 1.65 より前の Text::CSV_XS のバージョンはレコードの終わりとその行の終わりをドロップします。
レコードに UTF-8 フラグの付いたフィールドが含まれている場合、print は各バッファフラッシュで無効な UTF-8 の末尾バイトを保留するため、2 つのフラッシュで文字分割を完了できます。レコードの最後のフラッシュの後、ホールドバックバイトは何も書き込まれません。最後のフィールドがそのようなバイトで終わるレコードは、print が引き続き true を返しますが、閉じる引用符と行末はそれを失います。Combine は影響を受けません。
次のレコードが同じ行に書き込まれるか、最後のフィールドが引用された場合、閉じの引用符が欠落していると、読者はそれに続くすべてのレコードをそのフィールドの一部として取得します。(CVE-2026-110756)
Perl 用に 1.65 される前の Text::CSV_XS バージョンでは、結合で引用符なしで数値として使用される文字列を書き込むことで、レコードを分割できます。
combine と print:値に Perl の整数または数値のフラグが設定されている場合、フィールドに引用符が必要かどうかをチェックしません。Perl は数値として解析するときに、数値演算で使用される文字列にこれらのフラグを設定します。これにより、先頭と末尾に空白を付けることができます。バイナリが設定されている場合、csv がデフォルトで行うように、12\n は $qty > 0 などのチェックを渡した後、改行で引用符で囲まれずに書き込まれます。
数値として検証された値は、レコードを早期に終了し、その後のフィールドを別の行に変換できます。
(CVE-2026-110757)
Text::CSV_XS のバージョンを 1.65 してstrip_trail_whitespaceでallow_whitespace下のすべて空白のフィールドが開始する前に読み取られるPerl。
allow_whitespace では、strip_trail_whitespace は、引用符で囲まれていない各フィールドから、フィールドの先頭で停止せずに、末尾のスペースとタブを削除します。空白のみのフィールドの場合、フィールドのヒープバッファの前にバイトを読み取ります。そのバイトがスペースまたはタブでもある場合は、アロケーターがそこに配置した内容に応じて、ゼロ化され、ウォークが後方に続行される場合があります。
通常、フィールドが保存される前に先頭の空白はスキップされますが、行が 2 つの CR で終わる場合、すべて空白のフィールドは、quote_charとは異なる先行escape_charの後に、または getline で引用符で囲まれたフィールドとして到着します。 (CVE-2026-110758)
Perl に対する 1.65 より前の Text::CSV_XS バージョンは、空の最終フィールドへの入力にない 0xFF バイトを返し、その後に解析中のローン CR が続きます。
解析する入力がセパレーターとローンCRで終わる場合、パーサーは入力の終わりを次の文字として扱い、ファイルの終わりマーカーをバイト0xFFとしてフィールドに格納します。バイナリセットを使用すると、parse(a,\r) はフィールド a と \xFF を返します。UTF-8 フラグ付き入力の場合、最後のフィールドは UTF-8 フラグ付き文字列で、その唯一のバイトを保持しています。これは無効な形式の UTF-8 です。最後のフィールドが空でない同じ入力は、エラーとして拒否されます。
CRLF ファイルが行ごとに読み取られ、chomped は、最後の列が空の場合、このように終了するため、アプリケーションはその入力にないバイトを受け取ります。(CVE-2026-110759)
Tenable は、前述の記述ブロックをテスト済み製品のセキュリティアドバイザリから直接抽出しています。
Nessus はこれらの問題をテストしておらず、代わりにアプリケーションが自己報告するバージョン番号にのみ依存していることに注意してください。
ソリューション
「yum update perl-Text-CSV_XS」または「yum update --advisory ALAS2-2026-4048」を実行してシステムを更新してください。
プラグインの詳細
ファイル名: al2_ALAS-2026-4048.nasl
エージェント: unix
サポートされているセンサー: Frictionless Assessment AWS, Frictionless Assessment Agent, Nessus Agent, Agentless Assessment, Continuous Assessment, Tenable Cloud Security, Tenable Self-Hosted Container Security, Nessus
リスク情報
ベクトル: CVSS2#AV:N/AC:L/Au:N/C:C/I:C/A:C
ベクトル: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
現状ベクトル: CVSS:3.0/E:U/RL:O/RC:C
脆弱性情報
CPE: cpe:/o:amazon:linux:2, p-cpe:/a:amazon:linux:perl-text-csv_xs-debuginfo, p-cpe:/a:amazon:linux:perl-text-csv_xs
必要な KB アイテム: Host/local_checks_enabled, Host/AmazonLinux/release, Host/AmazonLinux/rpm-list
エクスプロイトの容易さ: No known exploits are available