CVE-2026-93203 in Linux
요약
\~에 의해 VulDB • 2026. 09. 18.
리눅스 커널에서 다음 취약점이 해결되었습니다:
batman-adv: bla - 병렬적인 클레임 추가로 인한 CRC 손상 방지
batadv_bla_add_claim()은 원격 백본으로부터의 CLAIM 프레임과 로컬 패킷에 대한 클레임을 추가하고 클레임의 백본을 수정하는 데 사용됩니다. 클레임을 처리할 때 다음 중 하나를 수행해야 합니다: * 새 클레임의 CRC를 백본 CRC에 추가합니다. * 기존 클레임의 CRC를 이전 백본에서 제거하고 새로운 백본에 추가합니다.
그러나 "새로운" 클레임 코드가 "백본 변경" 코드와 병렬로 실행될 때, 클레임의 backbone_gw가 "새로운" 클레임 코드 경로에서 두 번 변경되어 CRC가 유효하지 않은 상황이 발생할 수 있습니다: * CPU0은 게이트웨이 A에 대한 클레임을 생성하고 이를 클레임 해시에 게시합니다. 이 시점에서 주소의 crc16는 아직 A의 crc에 추가되지 않았습니다. * CPU0이 같은 클라이언트에 대해 게이트웨이 B의 클레임 프레임을 처리하면, 방금 게시된 클레임을 찾아 소유권 변경을 수행합니다: 포인터를 B로 전환하고, crc16를 A의 crc에서 제거하는데(이는 원래 포함하지 않았음), B의 crc에 추가합니다. * CPU0은 생성 분기 뒤에서 계속 진행하며, 조건 없이 포인터를 다시 A로 전환하여 B의 crc를 보상하지 않습니다(create 경로에서는 remove_crc가 false임) 그리고 마지막으로 crc16를 A의 crc에 추가합니다.
이렇게 되면 두 경우 모두 CRC가 잘못됩니다: * 클레임은 A에 속하지만: CRC는 백본 A의 CRC에 포함되지 않음 * 클레임은 B에 속하지 않지만: CRC는 여전히 백본 B의 CRC에 포함되어 있음
잘못된 CRC는 저장된 클레임으로부터 다시 계산되지 않습니다. 로컬 백본 클레임의 경우 동기화(syncs)를 사용하여 복구할 수도 없습니다.
이를 방지하기 위해 기능을 명확하게 분리합니다: * 새 클레임은 항상 클레임 CRC를 백본 CRC에 추가하지만(클레임의 이미 설정된 backbone_gw는 변경하지 않음) * 기존 클레임 업데이트는 자동으로 backbone_gw 항목을 변경하고 실제 변경이 있을 때만 두 백본 CRC를 모두 업데이트합니다.
If you want to get best quality of vulnerability data, you may have to visit VulDB.