CVE-2026-45145 Chamilo LMSでunserialize脆弱性、OSコマンド実行の可能性
この記事はAIがNVDのCVE情報をもとに要約・生成したものです。影響範囲や対策は、必ずNVDおよび各ベンダーの公式情報をご確認ください。
Chamilo LMSのバージョン2.0.1以前において、データベースから取得したuser_career.extra_dataフィールドの値をPHPのunserialize()関数でデシリアライズする処理に脆弱性があります。この処理はallowed_classesオプションを有効にしていないため、攻撃者が悪意のあるシリアライズデータを注入することで、SymfonyやDoctrineなどのコンポーネントを介して任意のPHPオブジェクトをインスタンス化し、OSコマンドを実行できる可能性があります。これにより、Webサーバーの権限で任意の操作が可能となり、システムの機密性や可用性が脅かされる恐れがあります。運用者は自身の環境で使用しているChamiloのバージョンを確認し、2.0.1以降へのアップグレードを検討する必要があります。また、user_career.extra_dataフィールドの内容や、CSVインポート機能の設定が適切であるかを点検し、不正なデータの挿入を防ぐ対策を講じるべきです。
- NVD Detail (NVD) [日本語で表示]
ソクラテスの問い、プラトンの備え
この脆弱性をどのように捉えるべきでしょうか。ユーザーがデータベースのフィールドを介して任意のコードを実行できるというのは、倫理的にも技術的にも重大な問題ではありませんか。
確かに深刻ですが、まずは現実的な視点が必要です。運用者はまず、自身のChamiloバージョンを確認すべきです。2.0.1以前か、それとも既に修正済みか。これは「バージョン確認」の基本です。また、user_career.extra_dataフィールドに不正なデータが挿入されていないか、CSVインポートの設定が適切かを点検する必要があります。これは「影響調査」の第一歩です。
では、この脆弱性を防ぐために、運用者は何をすべきでしょうか。単にパッチを適用すれば済むのでしょうか。
パッチ適用は当然ですが、それだけでは不十分です。unserialize()の使用はPHPの基本的な危険な処理です。このフィールドがどこからアクセスされているか、例えば外部からのCSVインポートやSQLインジェクションの可能性を確認する必要があります。これは「変更管理」の範囲です。また、パッチ適用後も、定期的な監視とログの確認は欠かせません。
ベンダーの情報確認はなぜ重要なのでしょうか。
ベンダーが提供する修正履歴や、今後のサポート体制を確認することで、将来的なリスクを予測できます。Chamiloの公式サイトやNVDの情報は、信頼性の高い情報源です。これは「ベンダー情報確認」の重要性です。
最後に、運用者が気をつけるべき点を教えてください。
unserialize()は「PHPのトリックスター」です。許可されたクラスを明示的に設定するなど、コードの改修を検討するのも一つの方法です。ただし、パッチの適用と合わせて、セキュリティの「三本柱」である機密性、完全性、可用性を常に意識してください。そして、もしも何かが起きたら、お茶を飲みながら対応する余裕を持ちたいものです。
関連キーワード: php