b11529: ggml: 음수 오프셋을 가진 ggml_acc에서 OOB 쓰기 수정 (#30135)
요약
ggml_acc_impl에서 size_t 타입의 오프셋을 int32_t로 변환할 때 발생할 수 있는 잠재적인 오류를 수정하는 내용입니다. 이 과정에서 큰 오프셋이 음수 int32_t로 잘리거나, 포워드 과정 중 경계 검사(bounds assertion)가 랩핑되면서 OOB 쓰기(Out-of-Bounds Write)가 발생할 위험이 있었습니다.
핵심 포인트
- size_t 오프셋을 int32_t로 변환 시 유효성 검사가 필요합니다.
- 오프셋 변환 오류는 음수 값으로 잘리거나 부호 확장 문제를 일으킬 수 있습니다.
- OOB 쓰기 방지를 위해 오프셋 변환 전 경계 검사를 강화해야 합니다.
ggml_acc_impl이 size_t 오프셋을 int32_t로 변환할 때, 이 값이 적절한지 확인하지 않아 큰 오프셋이 음수 int32_t로 잘릴 수 있었습니다. 그 후 포워드(forward) 과정에서 이를 거대한 size_t로 부호 확장(sign-extended)했고, 경계 검사(bounds assertion)가 랩핑되면서 dst 버퍼 아래에 OOB 쓰기가 발생할 수 있었습니다. ggml_set_impl의 기존 검사와 같이 오프셋을 변환하기 전에 확인해야 합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 llama.cpp Releases의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기