CVE-2026-45145 Chamilo LMSでunserialize脆弱性、OSコマンド実行の可能性

この記事はAIがNVDのCVE情報をもとに要約・生成したものです。影響範囲や対策は、必ずNVDおよび各ベンダーの公式情報をご確認ください。

公開日: 2026-10-30T15:16:51.923 / 更新日: 2026-10-30T15:16:51.923 / CVSS: 7.5 / 深刻度: HIGH

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インポート機能の設定が適切であるかを点検し、不正なデータの挿入を防ぐ対策を講じるべきです。

参照情報

ソクラテスの問い、プラトンの備え

ソクラテス

この脆弱性をどのように捉えるべきでしょうか。ユーザーがデータベースのフィールドを介して任意のコードを実行できるというのは、倫理的にも技術的にも重大な問題ではありませんか。

プラトン

確かに深刻ですが、まずは現実的な視点が必要です。運用者はまず、自身のChamiloバージョンを確認すべきです。2.0.1以前か、それとも既に修正済みか。これは「バージョン確認」の基本です。また、user_career.extra_dataフィールドに不正なデータが挿入されていないか、CSVインポートの設定が適切かを点検する必要があります。これは「影響調査」の第一歩です。

ソクラテス

では、この脆弱性を防ぐために、運用者は何をすべきでしょうか。単にパッチを適用すれば済むのでしょうか。

プラトン

パッチ適用は当然ですが、それだけでは不十分です。unserialize()の使用はPHPの基本的な危険な処理です。このフィールドがどこからアクセスされているか、例えば外部からのCSVインポートやSQLインジェクションの可能性を確認する必要があります。これは「変更管理」の範囲です。また、パッチ適用後も、定期的な監視とログの確認は欠かせません。

ソクラテス

ベンダーの情報確認はなぜ重要なのでしょうか。

プラトン

ベンダーが提供する修正履歴や、今後のサポート体制を確認することで、将来的なリスクを予測できます。Chamiloの公式サイトやNVDの情報は、信頼性の高い情報源です。これは「ベンダー情報確認」の重要性です。

ソクラテス

最後に、運用者が気をつけるべき点を教えてください。

プラトン

unserialize()は「PHPのトリックスター」です。許可されたクラスを明示的に設定するなど、コードの改修を検討するのも一つの方法です。ただし、パッチの適用と合わせて、セキュリティの「三本柱」である機密性、完全性、可用性を常に意識してください。そして、もしも何かが起きたら、お茶を飲みながら対応する余裕を持ちたいものです。

関連キーワード: php