🔍 CVE-2026-45844

5.5
CVSS Score
MEDIUM
2026-05-27
2026-11-06 16:18
✅ 완료

🇰🇷 한글 설명

Linux 커널의 netfilter arp_tables에서 IEEE1394(FireWire) ARP 페이로드 파싱 오류가 발견되었습니다. IEEE1394는 대상 하드웨어 주소 필드를 생략하지만, arp_packet_match() 함수가 이를 무조건적으로 파싱하려 시도하여 잘못된 데이터로 필터링 규칙을 적용하거나 패킷을 손상시킬 수 있습니다.

💡 쉬운 설명

특수한 통신 방식(IEEE1394)을 사용할 때, 컴퓨터가 데이터의 위치를 잘못 계산하여 방화벽 규칙을 엉뚱하게 적용하거나 데이터를 망가뜨릴 수 있는 문제입니다. 이로 인해 허용되어야 할 데이터가 차단되거나 반대로 차단되어야 할 데이터가 통과될 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: netfilter: arp_tables: fix IEEE1394 ARP payload parsing Weiming Shi says: "arp_packet_match() unconditionally parses the ARP payload assuming two hardware addresses are present (source and target). However, IPv4-over-IEEE1394 ARP (RFC 2734) omits the target hardware address field, and arp_hdr_len() already accounts for this by returning a shorter length for ARPHRD_IEEE1394 devices. As a result, on IEEE1394 interfaces arp_packet_match() advances past a nonexistent target hardware address and reads the wrong bytes for both the target device address comparison and the target IP address. This causes arptables rules to match against garbage data, leading to incorrect filtering decisions: packets that should be accepted may be dropped and vice versa. The ARP stack in net/ipv4/arp.c (arp_create and arp_process) already handles this correctly by skipping the target hardware address for ARPHRD_IEEE1394. Apply the same pattern to arp_packet_match()." Mangle the original patch to always return 0 (no match) in case user matches on the target hardware address which is never present in IEEE1394. Note that this returns 0 (no match) for either normal and inverse match because matching in the target hardware address in ARPHRD_IEEE1394 has never been supported by arptables. This is intentional, matching on the target hardware address should never evaluate true for ARPHRD_IEEE1394. Moreover, adjust arpt_mangle to drop the packet too as AI suggests: In arpt_mangle, the logic assumes a standard ARP layout. Because IEEE1394 (FireWire) omits the target hardware address, the linear pointer arithmetic miscalculates the offset for the target IP address. This causes mangling operations to write to the wrong location, leading to packet corruption. To ensure safety, this patch drops packets (NF_DROP) when mangling is requested for these fields on IEEE1394 devices, as the current implementation cannot correctly map the FireWire ARP payload. This omits both mangling target hardware and IP address. Even if IP address mangling should be possible in IEEE1394, this would require to adjust arpt_mangle offset calculation, which has never been supported. Based on patch from Weiming Shi <[email protected]>.

📍 영향받는 시스템

IEEE1394(FireWire) 인터페이스를 사용하는 Linux 커널 시스템

⚔️ 공격 벡터

IEEE1394 프로토콜을 사용하는 네트워크 환경에서 조작된 ARP 패킷을 전송하여 필터링 규칙 우회 또는 패킷 손상 유도

🛡️ 대응 방법

Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 arp_packet_match() 및 arpt_mangle의 로직 수정 적용

🔧 검증 코드

출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인

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