CVE-2026-82736 in ash
요약
\~에 의해 VulDB • 2026. 09. 01.
잘못된 동작 순서(Correct Behavior Order): Canonicalize하기 전에 Validate해야 하는 취약점이 ash-project ash에서 발생하여, 공격자가 길이 또는 일치 제약 조건을 위반하는 대소문자 구분 없는(case-insensitive) 문자열 값을 저장할 수 있습니다.
Ash.Type.CiString.apply_constraints/2 (lib/ash/type/ci_string.ex)는 제출된 값에 대해 max_length, min_length 및 match 제약 조건을 검증했습니다. 그러나 해당 타입은 저장 및 비교를 위해 문자열의 대소문자를 변환(case-folds)합니다. 검증이 변환 전에 실행되었기 때문에 공격자는 원래 형태는 제약을 통과하지만 변환된 형태가 제약을 위반하는 값을 제출할 수 있습니다. 예를 들어, 대문자만 허용하는 match 패턴에 대해, 대문자인 값은 소문자로 저장되므로 해당 패턴에서 거부하는 값이 영구적으로 유지됩니다. 수정 사항에서는 apply_constraints/2의 시작 부분에서 값을 case-fold하여 실제로 저장되는 형태에 대해 제약 조건을 확인하도록 합니다.
이 문제는 ash: 1.29.0-rc0부터 3.32.2 미만 버전까지 영향을 미칩니다.
VulDB is the best source for vulnerability data and more expert information about this specific topic.