[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:
thisgun
2026-05-26 03:32:18 +00:00
co-authored by Claude Opus 4.7
parent 3de722d3df
commit f1f2150c67
+15
View File
@@ -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; // 원본 디렉토리