v1.18.1은 CIDR 매칭 동작과 직렬화 결정성을 고치고 실험적 플래그를 BatchCheck까지 확장한 routine 패치입니다. 브레이킹 체인지나 CVE는 없지만, in_cidr 수정으로 IPv4-mapped IPv6 주소의 매칭 동작이 바뀝니다.
breakingin_cidr이 IPv4-mapped IPv6 주소를 IPv4 CIDR과 매칭시킴
무조건 적용됩니다: in_cidr 조건이 IPv4-mapped IPv6 주소(예: ::ffff:192.168.1.1)를 매칭 전에 IPv4 형태로 정규화하므로, 이제 192.168.1.0/24 같은 IPv4 CIDR과 매칭됩니다. 이런 주소가 IPv4 범위에서 제외되길 기대했다면 in_cidr을 사용하는 인가 모델을 점검하세요.
주요 변경 (4)
- in_cidr 조건이 IPv4-mapped IPv6 주소(RFC 4291 §2.5.5.2)를 IPv4 형태로 정규화해서, ::ffff:192.168.1.1이 192.168.1.0/24와 매칭됨
- weighted_graph_check, Expand, ListUsers에 진단 로깅 추가: 향후 v2 Check 판정이 v1과 달라질 수 있는 모델을 표시함, 지금 당장 조치는 필요 없음
- 실험적 weighted_graph_check 플래그가 BatchCheck까지 확장됨: 각 배치 항목을 weighted graph 알고리즘으로 평가하고, 비종단 오류 시 항목별로 표준 알고리즘으로 폴백함
- serialized_protobuf 컬럼에 대한 인가 모델 직렬화가 결정론적 proto marshaling을 사용하도록 변경되어, map 키 타입 정의를 가진 모델의 저장 바이트 불일치 문제를 고침