2026년 10월 19일, Laravel 프레임워크의 토큰 기반 API 가드에서 인증을 우회할 수 있는 취약점이 공개되었습니다. 식별자는 CVE-2026-114509(GHSA-f9x3-7vq9-cph6), 심각도는 Critical, CVSS v4.0 9.2입니다. 인증 없는 공격자가 다른 사용자의 토큰 없이 그 사용자로 로그인한 것처럼 동작할 수 있다는 내용입니다. 모든 Laravel 사이트가 해당하는 것은 아니라서, 내 프로젝트가 영향권인지 먼저 가려내는 방법을 중심으로 정리했습니다. 내용은 2026년 10월 26일 기준입니다.
어떤 취약점인가
- 대상: Laravel의 내장 TokenGuard를 표준 토큰 기반 API 가드로 설정해 쓰는 경우입니다.
- 원인: 인증 조회 과정에서 문자열이 아닌 값으로 조작된 자격 증명이 제대로 걸러지지 않아, 조회 쿼리가 실패하지 않고 엉뚱한 사용자 레코드와 일치합니다. 권고문은 MySQL/MariaDB의 일부 데이터베이스 설정에서 나타난다고 설명합니다.
- 영향: 해당 가드로 보호되는 모든 경로에서 인증 우회와 계정 탈취가 가능합니다.
- 영향받는 버전: laravel/framework 13.29.0 미만, 12.68.0 미만. 수정 버전은 13.29.0과 12.68.0 이상입니다.
- 임시 방어책: 권고문에는 없습니다. 업그레이드가 해결책입니다.
내 프로젝트가 해당하는지 확인하는 법
- 프레임워크 버전: 프로젝트 폴더에서 composer show laravel/framework를 실행하거나 composer.lock에서 버전을 봅니다. 12.68.0 이상 또는 13.29.0 이상이면 이미 수정판입니다.
- 가드 설정: config/auth.php의 guards 항목에서 'driver' => 'token'으로 된 가드가 있는지 찾습니다. 없다면 이 권고의 직접 대상은 아닙니다.
- 실제로 쓰이는지: 라우트에서 auth:가드이름 형태로 그 가드를 거는 곳이 있는지 확인합니다.
- Sanctum, Passport 같은 별도 패키지: 권고문은 TokenGuard만 언급하고 이들 패키지에 대한 설명은 없습니다. 해당 여부를 직접 판단하기 어렵다면, 프레임워크를 최신으로 올려 두는 것이 가장 안전합니다.
업데이트 순서
- 작업 전에 composer.lock과 데이터베이스를 백업합니다.
- composer update laravel/framework --with-dependencies로 프레임워크와 관련 의존성만 올립니다. composer.json의 버전 제약(^12.0 등)이 범위를 막고 있는지 확인하세요.
- 시험을 전부 돌려 업데이트 전후 결과를 비교합니다. 시험이 없다면 로그인, 주요 API, 메일 발송 같은 핵심 경로를 직접 확인합니다.
- composer audit로 다른 권고가 남아 있는지 봅니다. 이 명령은 잠금 파일 기준으로 알려진 취약점을 목록으로 보여 줍니다.
- 배포 뒤 캐시를 정리하고(config, route, view), 토큰 API의 접근 로그에서 평소와 다른 패턴이 없었는지 살펴봅니다.
같은 시기에 다른 권고도 있었습니다. 읽기 전용 엔드포인트가 관계 테이블에 파괴적인 데이터베이스 작업을 일으킬 수 있는 CVE-2026-114508(심각도 중간, CVSS 6.5)도 12.68.0에서 함께 수정되었으니, 한 번에 최신 버전으로 올리는 편이 효율적입니다. 버전이 여러 단계 올라가면 인증과 세션 주변 동작이 조금씩 달라질 수 있으니, 업그레이드 전에 릴리스 노트를 훑어보고 배포 직후에는 로그인과 로그인 유지 같은 경로를 직접 확인하세요.
Laravel 프로젝트가 여럿이거나 업데이트 후 시험이 부족해서 부담스럽다면, 포르본허가 버전 점검과 업데이트, 시험, 롤백 계획까지 언제든 도와드릴 수 있습니다. 아래 문의 양식에 상황을 간단히 남겨 주세요.
참고 자료
- GitHub Security Advisory GHSA-f9x3-7vq9-cph6 (CVE-2026-114509) (2026년 10월 19일 게시)