🔍 CVE-2024-26740

5.5
CVSS Score
MEDIUM
2024-04-03
2026-10-30 13:17
✅ 완료

🇰🇷 한글 설명

리눅스 커널의 net/sched 모듈 내 act_mirred 액션에서 취약점이 해결되었습니다. 이그레스(egress)에서 인그레스(ingress)로 트래픽 방향을 전환할 때 패킷을 Rx 백로그에 넣도록 변경하여, 동일 소켓의 락을 보유한 상태에서 Rx 경로를 재진입하면서 발생하는 교착상태(deadlock)를 방지합니다. 이 수정은 tcp_v4_rcv 재귀 호출로 인한 시스템 행(hang) 문제를 해결합니다.

💡 쉬운 설명

네트워크 패킷을 방향만 바꿔 다시 처리하는 과정에서 같은 자원을 두 번 잠그려 하면 시스템이 멈출 수 있었습니다. 이번 수정은 패킷을 대기열에 넣어 순서대로 처리하도록 바꿔 이 멈춤 현상을 막습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: net/sched: act_mirred: use the backlog for mirred ingress The test Davide added in commit ca22da2fbd69 ("act_mirred: use the backlog for nested calls to mirred ingress") hangs our testing VMs every 10 or so runs, with the familiar tcp_v4_rcv -> tcp_v4_rcv deadlock reported by lockdep. The problem as previously described by Davide (see Link) is that if we reverse flow of traffic with the redirect (egress -> ingress) we may reach the same socket which generated the packet. And we may still be holding its socket lock. The common solution to such deadlocks is to put the packet in the Rx backlog, rather than run the Rx path inline. Do that for all egress -> ingress reversals, not just once we started to nest mirred calls. In the past there was a concern that the backlog indirection will lead to loss of error reporting / less accurate stats. But the current workaround does not seem to address the issue.

📍 영향받는 시스템

패치가 적용되지 않은 Linux 커널 (act_mirred 트래픽 제어 기능을 사용하는 시스템)

⚔️ 공격 벡터

로컬 또는 네트워크 트래픽 조작을 통해 mirred 리다이렉션을 유발하여 커널 교착상태로 서비스 거부(DoS)를 일으킬 수 있음

🛡️ 대응 방법

배포판에서 제공하는 보안 업데이트를 적용하여 수정된 Linux 커널로 업그레이드

🔧 검증 코드

출력된 커널 버전을 배포판 보안 공지에서 CVE-2024-26740 수정이 포함된 패치 버전과 비교하여, 같거나 이후 버전이면 수정된 것입니다.

Shell / Script
uname -r

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

💻 영향받는 소프트웨어

Linux Kernel