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 이상입니다.
  • 임시 방어책: 권고문에는 없습니다. 업그레이드가 해결책입니다.

내 프로젝트가 해당하는지 확인하는 법

  1. 프레임워크 버전: 프로젝트 폴더에서 composer show laravel/framework를 실행하거나 composer.lock에서 버전을 봅니다. 12.68.0 이상 또는 13.29.0 이상이면 이미 수정판입니다.
  2. 가드 설정: config/auth.php의 guards 항목에서 'driver' => 'token'으로 된 가드가 있는지 찾습니다. 없다면 이 권고의 직접 대상은 아닙니다.
  3. 실제로 쓰이는지: 라우트에서 auth:가드이름 형태로 그 가드를 거는 곳이 있는지 확인합니다.
  4. Sanctum, Passport 같은 별도 패키지: 권고문은 TokenGuard만 언급하고 이들 패키지에 대한 설명은 없습니다. 해당 여부를 직접 판단하기 어렵다면, 프레임워크를 최신으로 올려 두는 것이 가장 안전합니다.

업데이트 순서

  1. 작업 전에 composer.lock과 데이터베이스를 백업합니다.
  2. composer update laravel/framework --with-dependencies로 프레임워크와 관련 의존성만 올립니다. composer.json의 버전 제약(^12.0 등)이 범위를 막고 있는지 확인하세요.
  3. 시험을 전부 돌려 업데이트 전후 결과를 비교합니다. 시험이 없다면 로그인, 주요 API, 메일 발송 같은 핵심 경로를 직접 확인합니다.
  4. composer audit로 다른 권고가 남아 있는지 봅니다. 이 명령은 잠금 파일 기준으로 알려진 취약점을 목록으로 보여 줍니다.
  5. 배포 뒤 캐시를 정리하고(config, route, view), 토큰 API의 접근 로그에서 평소와 다른 패턴이 없었는지 살펴봅니다.

같은 시기에 다른 권고도 있었습니다. 읽기 전용 엔드포인트가 관계 테이블에 파괴적인 데이터베이스 작업을 일으킬 수 있는 CVE-2026-114508(심각도 중간, CVSS 6.5)도 12.68.0에서 함께 수정되었으니, 한 번에 최신 버전으로 올리는 편이 효율적입니다. 버전이 여러 단계 올라가면 인증과 세션 주변 동작이 조금씩 달라질 수 있으니, 업그레이드 전에 릴리스 노트를 훑어보고 배포 직후에는 로그인과 로그인 유지 같은 경로를 직접 확인하세요.

Laravel 프로젝트가 여럿이거나 업데이트 후 시험이 부족해서 부담스럽다면, 포르본허가 버전 점검과 업데이트, 시험, 롤백 계획까지 언제든 도와드릴 수 있습니다. 아래 문의 양식에 상황을 간단히 남겨 주세요.

참고 자료