최고 심각도 권고가 ash_ai에 적용됐습니다. 이는 Elixir Ash 프레임워크용 AI 확장입니다. 결함은 프롬프트가 텍스트로 바뀌는 방식에 있습니다. 프롬프트 내용이 Elixir의 템플릿 엔진인 EEx를 거쳐 평가됩니다. 따라서 EEx의 보간 표시자 안에 들어 있는 것은 데이터가 아니라 서버에서 실행되는 Elixir 소스 코드입니다.

왜 10.0점인가

취약한 경로가 문서화된 경로이기 때문입니다. 영향을 받는 패턴은 이 라이브러리의 프롬프트 액션이 작성되는 일반적인 방식이므로, 별다른 예외 동작 없이도 평범한 배포가 노출됩니다. 프롬프트의 일부라도 사용자 입력에서 조합된다면 — 채팅 메시지, 검색어, 지원 티켓, 파일명 등 — 그 입력은 코드 평가기로 전달됩니다. 그 결과는 권한이 필요 없는 인증되지 않은 원격 코드 실행입니다.

모든 AI 계층 방어를 무너뜨리는 세부 사항

평가는 모델로 요청이 보내지기 전에, 프롬프트 문자열이 만들어지는 동안 일어납니다. 프롬프트 주입 필터, 시스템 프롬프트 강화, 출력 모더레이션, 도구 호출 허용 목록, 사람 승인 게이트는 모두 모델 경계에서 또는 그 이후에 작동합니다. 이들 모두는 취약한 코드 라인보다 하류에 있습니다. 이는 정렬 통제가 잡아낼 수 있는 프롬프트 주입 버그가 아니라, 우연히 프롬프트 안에 존재하는 템플릿 주입입니다. 주변의 AI 스택은 이 취약점과 무관합니다.

흔한 해석이 놓치는 점

"1.0.0에서 패치됨"은 흔한 업그레이드 지침처럼 보입니다. 그러나 그렇지 않습니다. 1.0.0은 주요 릴리스이며, 릴리스 노트는 의존성이 선택 사항으로 바뀌는 중대한 변경 사항으로 시작합니다. 이전 버전으로 되돌린 패치도 없습니다. 따라서 CVSS 10.0의 수정은 대규모 버전 마이그레이션이며, 이는 팀이 즉시 적용하기보다 일정을 잡아 수행하는 종류의 업그레이드입니다. 권고의 심각도는 오늘 밤을 말하지만, 릴리스의 형태는 다음 스프린트를 말합니다.

이름 붙일 가치가 있는 패턴

프롬프트 구성 안에 템플릿 엔진을 넣는 방식은 점점 흔해지고 있습니다. 프롬프트는 변수가 들어 있는 문자열이고, 템플릿 엔진은 가장 눈에 띄는 도구이기 때문입니다. 하지만 범용 템플릿 엔진은 신뢰할 수 있는 작성자가 코드로 생성한 마크업을 렌더링하도록 만들어졌지, 신뢰할 수 없는 런타임 입력을 보간하도록 설계된 것이 아닙니다. 사용자 텍스트가 표현식 평가를 지원하는 템플릿으로 흘러 들어가는 곳이라면, 언어와 무관하게 같은 종류의 버그가 발생할 수 있습니다.