概要
お届け先住所編集におけるIDORの可能性と、管理画面の認証ロジックに不備が存在します。
深刻度: Medium
脆弱性詳細
1. お届け先住所編集の IDOR
ファイル: data/class/pages/mypage/LC_Page_Mypage_DeliveryAddr.php (L107, 144-154)
// L107: リクエストパラメータをセッションに格納
$_SESSION['other_deliv_id'] = $_REQUEST['other_deliv_id'] ?? '';
// L145: セッション値を使用(GETパラメータではなく)
$arrOtherDeliv = $objAddress->getAddress($_SESSION['other_deliv_id'], $objCustomer->getValue('customer_id'));
問題点:
$_REQUEST['other_deliv_id'] の型キャストなしにセッションへ格納
$_GET と $_SESSION の値に不整合が生じる可能性
修正案: 入力値を (int) でキャストし、セッションへの格納と使用を一貫させる
2. 管理画面認証ロジックの問題
ファイル: data/class/pages/admin/LC_Page_Admin.php (L148-151)
if (stripos($_SERVER['REQUEST_URI'], rtrim(ROOT_URLPATH.ADMIN_DIR, '/')) === false) {
SC_Utils_Ex::sfIsSuccess(new SC_Session_Ex());
}
問題点:
stripos() による文字列マッチングは、パス操作で回避される可能性
- ロジックが「ADMIN_DIR 以外からのリクエストに認証を要求」となっており、意図が不明確
修正案:
$script_path = realpath($_SERVER['SCRIPT_FILENAME']);
$admin_path = realpath(HTML_REALDIR . ADMIN_DIR);
if (strpos($script_path, $admin_path) === 0) {
SC_Utils_Ex::sfIsSuccess(new SC_Session_Ex());
}
影響範囲
他ユーザーのデータへの不正アクセス、管理画面への認証バイパスの可能性(限定的)。
概要
お届け先住所編集におけるIDORの可能性と、管理画面の認証ロジックに不備が存在します。
深刻度: Medium
脆弱性詳細
1. お届け先住所編集の IDOR
ファイル:
data/class/pages/mypage/LC_Page_Mypage_DeliveryAddr.php(L107, 144-154)問題点:
$_REQUEST['other_deliv_id']の型キャストなしにセッションへ格納$_GETと$_SESSIONの値に不整合が生じる可能性修正案: 入力値を
(int)でキャストし、セッションへの格納と使用を一貫させる2. 管理画面認証ロジックの問題
ファイル:
data/class/pages/admin/LC_Page_Admin.php(L148-151)問題点:
stripos()による文字列マッチングは、パス操作で回避される可能性修正案:
影響範囲
他ユーザーのデータへの不正アクセス、管理画面への認証バイパスの可能性(限定的)。