Reini UrbanのCpanel::JSON::XSにおける複数の脆弱性
タイトル Reini UrbanのCpanel::JSON::XSにおける複数の脆弱性
概要

Perl用のCpanel::JSON::XSの4.41未満のバージョンでは、デコードフィルターのコールバックが例外をスローした際に、UTF-8 BOM付き入力によってサービス拒否が発生する可能性があります。decode_json()は、先頭の3バイトのUTF-8 BOMをスキップするためにSvPV_set()を使って入力スカラーの文字列ポインタをマークの先に進め、正常終了時にのみ元に戻します。しかし、例えばfilter_json_objectコールバックがcroakでデコードがPerlの例外を通じて中断された場合、その復元がスキップされ、スカラーは自身のバッファ内でオフセットされた文字列ポインタと短縮された長さのままの状態で残ります。その後、このスカラーが解放されると、アロケータは無効なポインタを受け取り、インタプリタが異常終了します。BOM付きドキュメントをスローするフィルターコールバックでデコードすると、呼び出し元は必ずクラッシュします。

想定される影響 ・当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 ・当該ソフトウェアが扱う情報について、書き換えは発生しません。 ・当該ソフトウェアが完全に停止する可能性があります。 
対策

ベンダ情報を参照して適切な対策を実施してください。

公表日 2026年6月3日0:00
登録日 2026年6月8日12:30
最終更新日 2026年6月8日12:30
CVSS3.0 : 重要
スコア 7.5
ベクター CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
ベンダー情報
その他
変更履歴
No 変更内容 変更日
1 [2026年06月08日]
  掲載
2026年6月8日12:30

NVD脆弱性情報
CVE-2026-9516
概要

Cpanel::JSON::XS versions before 4.41 for Perl allow denial of service via UTF-8 BOM prefixed input when a decode filter callback throws.

To skip a leading 3-byte UTF-8 BOM, decode_json() advances the input scalar's string pointer past the mark with SvPV_set() and restores it only on the normal return path. When decoding aborts through a Perl exception, for example a filter_json_object callback that croaks, the restore is skipped and the scalar is left with its string pointer offset into its own buffer and a shortened length.

When that scalar is later freed, the allocator receives an invalid pointer and the interpreter aborts. A single BOM prefixed document decoded with a throwing filter callback crashes any caller.

公表日 2026年6月3日10:16
登録日 2026年6月4日4:16
最終更新日 2026年6月6日2:35
影響を受けるソフトウェアの構成
構成1 以上 以下 より上 未満
cpe:2.3:a:rurban:cpanel\:\:json\:\:xs:*:*:*:*:*:perl:*:* 4.41
関連情報、対策とツール
共通脆弱性一覧