LiteLLM은 8월 23일 초반, 서로 5분 간격으로 두 차례 릴리스를 내놨다. 프리릴리스인 v1.99.0-rc.1UTC 00:23에, 안정판인 v1.98.0UTC 00:28에 공개됐다. 안정판 릴리스 노트에는 인증 수정이 적혀 있다. 그 수정을 되돌린 커밋은 같은 히스토리 안에 있다.

수정이 다룬 문제

PR #36837의 제목은 “fix(auth): stop the team fallback from widening model access”이다. LiteLLM은 호출자가 어떤 모델에 접근할 수 있는지를 그 호출자의 팀 기록을 바탕으로 일부 결정한다. 팀 조회가 실패하면 코드는 토큰 자체에 담긴 필드로 되돌아갔고, 그 폴백 경로에서는 비어 있는 team_models 목록이 아무 모델도 아닌 모든 모델에 대한 권한으로 해석됐다. 이 수정은 팀 정보가 없으면 강하게 거부하도록 바꿨다.

왜 되돌려졌나

관리자 UI는 세션 키를 sentinel 팀 ID인 litellm-dashboard로 서명하는데, 이 ID는 의도적으로 데이터베이스 행이 없다. 이 수정은 그 부재를 거부 조건으로 읽어들였고, 그 결과 모든 대시보드 요청이 404를 반환해 모든 관리자가 접속할 수 없게 됐다. PR #36982는 이를 8월 14일 되돌려 토큰 기반 폴백을 복원했다.

왜곡: 변경 기록 항목은 배포된 상태가 아니다

v1.98.0의 노트를 읽으면 팀 폴백의 취약점이 닫힌 것처럼 보인다. 그러나 커밋 히스토리를 읽으면 그 수정이 적용됐다가 대시보드를 망가뜨렸고, 해당 릴리스가 나오기 아홉 날 전에 롤백됐음을 알 수 있다. 두 사실 모두 공개돼 있지만, 변경 기록에는 하나만 담겨 있다. 릴리스 노트를 보안 장부처럼 취급하는 것의 일반적 위험이 바로 여기에 있다. 릴리스 노트는 병합된 내용을 기록할 뿐, 살아남은 내용을 기록하지는 않는다.

되돌리기 설명은 비용을 솔직히 적고 있다

이 설명은 그것을 수정이라고 내세우지 않는다. 설명문은 대시보드 회귀를 고치기 위해 토큰 기반 폴백을 복원하되, 그렇게 하면 모델 접근 범위를 넓히는 보안 구멍이 다시 열린다는 점과, 더 신중한 재구현이 필요하다는 점을 인정한다. 되돌리기 기록에 이런 내용을 남기는 일은 드문데, 바로 그 부분이 릴리스 페이지에는 드러나지 않는다.

운영자가 직접 확인해야 할 사항

v1.99.0 릴리스 후보에 수정된 재구현이 포함돼 있는지는 공개 릴리스 노트만으로는 확인할 수 없고, 이 기사에서도 그렇게 단정하지 않는다. 팀 범위 모델 제한에 의존하는 사람이라면 변경 기록 한 줄로 추정하지 말고 자신의 배포 환경에서 동작을 직접 시험해야 한다. 특히 팀을 해석할 수 없고 모델 목록이 비어 있는 키가 실제로 무엇을 호출할 수 있는지 확인해야 한다.