-
Notifications
You must be signed in to change notification settings - Fork 101
Open
Description
概要
メール送信機能のヘッダインジェクション、非推奨のSQL関数の使用、XML処理における外部エンティティ無効化の不足など、複数の軽微なセキュリティ改善事項が存在します。
深刻度: Medium / Low
脆弱性詳細
1. [Medium] メールヘッダインジェクション
ファイル: data/class/SC_SendMail.php (L150-151)
public function setSubject($subject)
{
$this->subject = mb_encode_mimeheader($subject, 'ISO-2022-JP-MS', 'B', "\n");
$this->subject = str_replace(["\r\n", "\r"], "\n", $this->subject);
}問題点: 改行除去がMIMEエンコード後に行われており、エンコード前の改行が残る可能性
修正案:
public function setSubject($subject)
{
$subject = str_replace(["\r\n", "\r", "\n"], ' ', $subject);
$this->subject = mb_encode_mimeheader($subject, 'ISO-2022-JP-MS', 'B', "\n");
}2. [Low] 非推奨の sfQuoteSmart() 関数使用
ファイル:
data/class/util/SC_Utils.php(L1203-1214)data/class/helper/SC_Helper_DB.php(L1144-1174)data/class/pages/admin/products/LC_Page_Admin_Products_ProductRank.php(L177, 186, 198)data/class/pages/admin/products/LC_Page_Admin_Products_ClassCategory.php(L308, 323, 338)
$where = 'category_id = '.SC_Utils_Ex::sfQuoteSmart($parent_category_id);問題点: プレースホルダではなく手動エスケープによるSQL構築
修正案: プレースホルダベースのクエリに変更
$objDb->sfRankUp('dtb_product_categories', 'product_id', $product_id,
'category_id = ?', [$parent_category_id]);3. [Low] Owner's Store のCSRF保護無効化
ファイル: data/class/pages/upgrade/LC_Page_Upgrade_Base.php (L107-114)
public function doValidToken($is_admin = false)
{
// nothing.
}修正案: 代替のCSRF保護(署名付きトークン等)を実装
4. [Low] DOMDocument での外部エンティティ無効化未設定
ファイル: data/class/helper/SC_Helper_Transform.php (L55)
$this->objDOM = new DOMDocument();
@$this->objDOM->loadHTML($source);修正案:
libxml_disable_entity_loader(true);
$this->objDOM = new DOMDocument();
@$this->objDOM->loadHTML($source);影響範囲
メールスパム送信、SQLインジェクションのリスク(限定的)、XXE攻撃(限定的)。
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels