[security]KVE-2026-0795 게시물 이동/복사 시 대상 게시판 권한 검증 누락 수정
bbs/move_update.php 가 원본 게시판 기준 $is_admin 만 검사하고 사용자 입력 chk_bo_table[] 의 대상 게시판에 대해서는 존재 여부만 확인하던 문제를 수정. 게시판 관리자(board)·그룹 관리자(group) 권한일 경우 대상 게시판의 bo_admin 또는 그룹의 gr_admin 이 본인인지 재검증하고, 일치하지 않으면 해당 대상 게시판 처리를 건너뛰도록 함. super 관리자는 기존 동작 유지. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.7
parent
3de722d3df
commit
f1f2150c67
@@ -41,6 +41,21 @@ while ($row = sql_fetch_array($result))
|
||||
// 존재하지 않다면
|
||||
if( !$move_board['bo_table'] ) continue;
|
||||
|
||||
// 대상 게시판에 대한 권한 재검증 (KVE-2026-0795)
|
||||
// 원본 게시판 기준의 $is_admin 만으로는 타 게시판 이동/복사가 허용되지 않도록 함.
|
||||
if ($is_admin !== 'super') {
|
||||
$is_target_admin = false;
|
||||
if ($is_admin === 'board' && isset($move_board['bo_admin']) && $move_board['bo_admin'] !== '' && $move_board['bo_admin'] === $member['mb_id']) {
|
||||
$is_target_admin = true;
|
||||
} else if ($is_admin === 'group' && isset($move_board['gr_id']) && $move_board['gr_id'] !== '') {
|
||||
$move_group = sql_fetch(" select gr_admin from {$g5['group_table']} where gr_id = '".sql_real_escape_string($move_board['gr_id'])."' ");
|
||||
if (!empty($move_group['gr_admin']) && $move_group['gr_admin'] === $member['mb_id']) {
|
||||
$is_target_admin = true;
|
||||
}
|
||||
}
|
||||
if (!$is_target_admin) continue;
|
||||
}
|
||||
|
||||
$move_write_table = $g5['write_prefix'] . $move_bo_table;
|
||||
|
||||
$src_dir = G5_DATA_PATH.'/file/'.$bo_table; // 원본 디렉토리
|
||||
|
||||
Reference in New Issue
Block a user