Laravel 13.5.0 업데이트
릴리스: 2026년 4월 14일
평가: 2026년 8월 28일
13.5.0은 새 기능 추가와 다수 버그 수정으로 구성된 통상적인 마이너 릴리스입니다. 보안 관련 항목(NotPwnedVerifier의 loose comparison 오류)과 Redis Queue/캐시 동작 수정이 포함되어 있어, 해당 기능을 사용 중이라면 확인이 필요합니다. 나머지는 선택적으로 채택할 수 있는 편의 기능입니다.
패키지 관리자가 확인할 것
- Http (illuminate/http)위험도 낮음
이번 릴리스 노트에서 illuminate/http에 직접적인 변경 사항은 언급되지 않았습니다. redirectUsersTo()/redirectGuestsTo() 콜백 충돌 수정은 인증 리다이렉트 로직에 관련되므로 커스텀 인증 미들웨어를 사용 중이라면 참고하세요.
대응 체크리스트
- NotPwnedVerifier의 매직 해시 비교 수정 확인가까운 시일
PR #59644에서 매직 해시(magic hash) 패스워드에 대한 loose comparison false positive를 수정했습니다. Laravel의 비밀번호 유출 검증(Rules\Password::uncompromised 등)을 사용 중이면 업그레이드를 권장합니다.
- Redis Queue의 ShouldBeUniqueUntilProcessing 재시도 락 해제 버그 확인가까운 시일
PR #59567에서 재시도 시 자신이 소유하지 않은 락을 강제로 해제하던 버그를 수정했습니다. Redis 기반 unique job을 사용 중이면 영향을 받을 수 있습니다.
- redirectUsersTo/redirectGuestsTo 콜백 동작 확인가까운 시일
PR #59633에서 redirectUsersTo()가 redirectGuestsTo() 콜백을 덮어쓰던 버그가 수정되었습니다. 커스텀 인증 리다이렉트를 설정한 경우 동작이 달라질 수 있으니 테스트하세요.
- Redis Cluster 사용 시 Queue/ConcurrencyLimiter 신규 지원 검토선택
PR #59533, #59569에서 Redis Cluster에 대한 Queue 및 ConcurrencyLimiter 지원과 SSL 컨텍스트 정규화가 추가되었습니다. Redis Cluster 환경이라면 새 옵션을 검토하세요.
자동 생성상세 평가
요약
13.5.0은 새로운 기능(큐 메일러블 Delay 속성, 컨트롤러 미들웨어 속성 상속, enum 지원 확대 등)과 다수의 버그 수정을 포함한 마이너 릴리스입니다. 공개 API를 깨는 하위 호환성 변경은 릴리스 노트에서 확인되지 않았습니다.
주요 변경
- 큐잉된 메일러블에
#[Delay]속성 지원 추가 (#59580) - 컨트롤러 미들웨어 속성(attribute)의 상속 지원 추가 (#59597)
- CacheManager, MailManager, AuthManager, 일반 Manager 드라이버 메서드에 enum 인자 지원 추가 (#59637, #59645, #59646, #59659)
updateOrCreate/firstOrNew에 클로저 값 허용 (#59647)- 캐시에서 직렬화 불가능한 값을 감지하는 기능 추가 (#59630)
- Redis Cluster용 Queue 및 ConcurrencyLimiter 신규 지원, phpredis SSL 컨텍스트 정규화 (#59533, #59569)
하위 호환성
릴리스 노트상 공개 API를 깨는 변경 사항은 없습니다. 다만 다음 두 건은 기존의 잘못된 동작을 수정한 것으로, 이 버그에 의존하던 코드가 있다면 동작 차이를 체감할 수 있습니다.
ShouldBeUniqueUntilProcessing재시도 시 소유하지 않은 락을 강제 해제하던 버그 수정 (#59567)redirectUsersTo()가redirectGuestsTo()콜백을 덮어쓰던 버그 수정 (#59633)
패키지 관리자가 확인할 것
등록된 패키지 중 이번 릴리스 노트에 직접 언급된 것은 없습니다. illuminate/http를 포함해 프레임워크에 의존하는 패키지는 일반적인 마이너 업그레이드 호환성 확인 수준이면 충분합니다.
대응 체크리스트
-
Rules\Password::uncompromised()또는 NotPwnedVerifier를 사용 중이면 업그레이드 후 정상 동작 확인 - Redis 기반 unique job(
ShouldBeUniqueUntilProcessing)을 사용 중이면 재시도 동작 재검증 - 커스텀 인증 가드에서
redirectUsersTo/redirectGuestsTo를 함께 사용 중이면 리다이렉트 동작 재확인 - Redis Cluster 환경이면 신규 Queue/ConcurrencyLimiter 지원 옵션 검토
- 그 외에는 즉시 조치 불필요, 일반적인 마이너 업그레이드로 진행 가능
GitHub 릴리스 노트를 근거로 언어 모델 (claude-sonnet-5)이 작성했으며, 사람이 검수하지 않았습니다. 실제 적용 전에는 공식 릴리스 노트와 업그레이드 가이드를 함께 확인하세요.
GitHub 원문 릴리스 노트 보기
- [13.x] Support #[Delay] attribute on queued mailables by @sumaiazaman in https://github.com/laravel/framework/pull/59580
- [13.x] Added inheritance support for Controller Middleware attributes. by @niduranga in https://github.com/laravel/framework/pull/59597
- [13.x] Normalize phpredis SSL context for single and cluster connections by @timmylindh in https://github.com/laravel/framework/pull/59569
- [13.x] Memoize the result of
TestCase@withoutBootingFramework()by @cosmastech in https://github.com/laravel/framework/pull/59610 - [13.x] Add missing @throws and docblocks for concurrency and model in… by @scabarcas17 in https://github.com/laravel/framework/pull/59602
- [13.x] Fix that retries of
ShouldBeUniqueUntilProcessingjobs are force-releasing locks they don't own by @kohlerdominik in https://github.com/laravel/framework/pull/59567 - [13.x] Add first-class Redis Cluster support for Queue and ConcurrencyLimiter by @timmylindh in https://github.com/laravel/framework/pull/59533
- [13.x] chore: Update PHP version from 8.2 to 8.3 in
bin/test.shscript by @crynobone in https://github.com/laravel/framework/pull/59605 - [13.x] Fix RedisQueueTest by @jackbayliss in https://github.com/laravel/framework/pull/59613
- [13.x] Add enum support to CacheManager store and driver methods by @yousefkadah in https://github.com/laravel/framework/pull/59637
- [13.x] Fix redirectUsersTo() overwriting redirectGuestsTo() callback by @timmylindh in https://github.com/laravel/framework/pull/59633
- [13.x] Add ability to detect unserializable values returned from cache by @jackbayliss in https://github.com/laravel/framework/pull/59630
- [13.x] Fix loose comparison false positive in NotPwnedVerifier with magic hash passwords by @scabarcas17 in https://github.com/laravel/framework/pull/59644
- [13.x] Refactor
Skipmiddleware by @cosmastech in https://github.com/laravel/framework/pull/59651 - [13.x] Resolve stan errors on MySqlSchemaState by @jackbayliss in https://github.com/laravel/framework/pull/59652
- [13.x] Allow closure values in updateOrCreate and firstOrNew by @yousefkadah in https://github.com/laravel/framework/pull/59647
- [13.x] Add enum support to MailManager mailer and driver methods by @yousefkadah in https://github.com/laravel/framework/pull/59645
- [13.x] Add enum support to AuthManager guard and shouldUse methods by @yousefkadah in https://github.com/laravel/framework/pull/59646
- [13.x] Add spatie/fork to composer suggestions by @jnoordsij in https://github.com/laravel/framework/pull/59660
- [13.x] Add enum support to Manager driver method by @scabarcas17 in https://github.com/laravel/framework/pull/59659
- [13.x] Fix custom driver binding bug and improve by @ollieread in https://github.com/laravel/framework/pull/59614
- [13.x] Improve PHPDoc for "safe" method with conditional return type by @leo95batista in https://github.com/laravel/framework/pull/59684
- [13.x] Bump Retry action in CI by @jackbayliss in https://github.com/laravel/framework/pull/59681
- [13.x] Move Scope interface @template from method-level to class-level to fix LSP violation by @kayw-geek in https://github.com/laravel/framework/pull/59675
- [13.x] Combine consecutive
issetandunsetby @lucasmichot in https://github.com/laravel/framework/pull/59685 - [13.x] Changes
strlencomparison to 0 to direct empty string compare by @lucasmichot in https://github.com/laravel/framework/pull/59686