🇰🇷 한글 설명
Linux 커널의 drm/vc4 드라이버에서 셰이더 BO 매핑이 쓰기 가능 상태로 유지되는 취약점이 발견되었습니다. 사용자가 읽기 전용으로 매핑된 셰이더를 mprotect()를 통해 쓰기 가능하게 변경함으로써, 검증된 셰이더 코드를 사후에 수정하여 검증 과정을 우회할 수 있습니다.
💡 쉬운 설명
컴퓨터가 안전한지 확인한 프로그램 코드를 해커가 몰래 수정할 수 있는 보안 구멍이 발견되었습니다. 이 구멍을 이용하면 검증을 통과한 코드를 악성 코드로 바꿔치기할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
drm/vc4: Prevent shader BO mappings from becoming writable
vc4_gem_object_mmap() rejects a writable mapping of a validated shader
BO, but leaves VM_MAYWRITE set. Userspace can map the BO read-only and
then turn it writable with mprotect().
Validated shader BOs must stay read-only: the validator checks the
instructions once and the GPU trusts them afterwards. A writable
mapping lets userspace rewrite the code after validation, bypassing the
validator.
Clear VM_MAYWRITE on the read-only path so the mapping cannot be
upgraded, as i915 already does for its read-only objects.
📍 영향받는 시스템
Linux kernel (drm/vc4 driver components)
⚔️ 공격 벡터
사용자 공간에서 mprotect() 시스템 호출을 사용하여 읽기 전용 셰이더 매핑을 쓰기 가능하게 업그레이드
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 vc4_gem_object_mmap()의 VM_MAYWRITE 플래그가 올바르게 처리되도록 수정
🔧 검증 코드
현재 실행 중인 커널 버전을 확인하여 해당 취약점이 해결된 패치 버전인지 확인