🇰🇷 한글 설명
Linux 커널의 tomoyo 보안 모듈에서 tomoyo_write_control() 함수가 개행 없는 매우 긴 데이터를 처리할 때 메모리 할당 경고를 발생시키는 문제. __GFP_NOWARN 플래그 적용으로 32KB 초과 할당 시도는 조용히 실패하도록 수정.
💡 쉬운 설명
Linux의 보안 관리 기능이 매우 긴 명령어를 받으면 메모리 경고를 계속 발생시키는 문제. 이 패치로 과도한 요청은 조용히 거부되도록 변경.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
tomoyo: don't emit warning in tomoyo_write_control()
syzbot is reporting too large allocation warning at tomoyo_write_control(),
for one can write a very very long line without new line character. To fix
this warning, I use __GFP_NOWARN rather than checking for KMALLOC_MAX_SIZE,
for practically a valid line should be always shorter than 32KB where the
"too small to fail" memory-allocation rule applies.
One might try to write a valid line that is longer than 32KB, but such
request will likely fail with -ENOMEM. Therefore, I feel that separately
returning -EINVAL when a line is longer than KMALLOC_MAX_SIZE is redundant.
There is no need to distinguish over-32KB and over-KMALLOC_MAX_SIZE.
📍 영향받는 시스템
tomoyo LSM이 활성화된 Linux 커널 (버전별 공식 패치 필요)
⚔️ 공격 벡터
개행 문자 없는 32KB 이상의 긴 문자열을 tomoyo 제어 인터페이스로 전송
🛡️ 대응 방법
Linux 커널을 최신 패치가 적용된 버전으로 업데이트하거나 tomoyo 모듈 비활성화
🔧 검증 코드
커널 버전이 표시되고 CONFIG_TOMOYO=y이면 tomoyo가 활성화된 상태. 공식 보안 게시판에서 해당 커널 버전의 패치 상태 확인 필요.
uname -r && grep -i tomoyo /boot/config-$(uname -r) 2>/dev/null | grep -E 'CONFIG_TOMOYO|yes|no'