🇰🇷 한글 설명
Linux 커널의 IPv4 FIB(Forwarding Information Base) 구현에서 CONFIG_IP_MULTIPLE_TABLES 설정 시 오류 경로를 제대로 처리하지 못하는 취약점이 발견되었습니다. 특정 조건에서 로컬/메인 테이블의 오류 경로가 기본 테이블의 다른 경로에 의해 덮어씌워져 라우팅 일관성이 깨질 수 있습니다.
💡 쉬운 설명
네트워크 경로를 찾는 과정에서 '도달할 수 없는 경로'라는 오류 신호가 무시되고 엉뚱한 경로로 연결될 수 있는 문제입니다. 이로 인해 네트워크 통신이 의도치 않게 작동하거나 보안 규칙이 무력화될 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
ipv4: fib: Don't ignore error route in local/main tables.
When CONFIG_IP_MULTIPLE_TABLES is enabled but no rule is added,
fib_lookup() performs route lookup directly on two tables.
Since the first lookup does not properly bail out, the result
of an error route in the merged local/main table could be
overwritten by another route in the default table:
# unshare -n
# ip link set lo up
# ip route add 192.168.0.0/24 dev lo table 253
# ip route add unreachable 192.168.0.0/24
# ip route get 192.168.0.1
192.168.0.1 dev lo table default uid 0
cache <local>
Once a random rule is added, the error route is respected:
# ip rule add table 0
# ip rule del table 0
# ip route get 192.168.0.1
RTNETLINK answers: No route to host
Let's fix the inconsistent behaviour.
📍 영향받는 시스템
CONFIG_IP_MULTIPLE_TABLES 옵션이 활성화된 Linux 커널 버전
⚔️ 공격 벡터
네트워크 네임스페이스를 분리(unshare)한 후 특정 라우팅 테이블 규칙을 조작하여 경로 탐색 오류를 유도
🛡️ 대응 방법
해당 취약점이 수정된 최신 버전의 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 취약점이 패치된 최신 보안 업데이트 버전인지 확인