🔍 CVE-2022-49907

7.8
CVSS Score
HIGH
2025-05-01
2026-11-05 20:17
✅ 완료

🇰🇷 한글 설명

Linux 커널의 mdio 드라이버에서 __mdiobus_register 함수 실행 시 부호 있는 32비트 정수를 31비트 왼쪽 시프트하여 정의되지 않은 동작(UB)이 발생하는 문제입니다. 이를 해결하기 위해 해당 비트를 부호 없는 타입으로 변경하였습니다.

💡 쉬운 설명

컴퓨터 내부 계산에서 허용되지 않은 방식의 연산이 일어나 예측할 수 없는 동작이 생길 수 있는 결함입니다. 커널 업데이트로 계산 방식을 올바르게 고치면 해결됩니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: net: mdio: fix undefined behavior in bit shift for __mdiobus_register Shifting signed 32-bit value by 31 bits is undefined, so changing significant bit to unsigned. The UBSAN warning calltrace like below: UBSAN: shift-out-of-bounds in drivers/net/phy/mdio_bus.c:586:27 left shift of 1 by 31 places cannot be represented in type 'int' Call Trace: <TASK> dump_stack_lvl+0x7d/0xa5 dump_stack+0x15/0x1b ubsan_epilogue+0xe/0x4e __ubsan_handle_shift_out_of_bounds+0x1e7/0x20c __mdiobus_register+0x49d/0x4e0 fixed_mdio_bus_init+0xd8/0x12d do_one_initcall+0x76/0x430 kernel_init_freeable+0x3b3/0x422 kernel_init+0x24/0x1e0 ret_from_fork+0x1f/0x30 </TASK>

📍 영향받는 시스템

패치가 적용되기 이전의 Linux 커널(mdio 버스 등록 코드를 포함한 버전)을 사용하는 시스템

⚔️ 공격 벡터

공격자가 직접 악용 가능한 경로는 제한적이며, 주로 정의되지 않은 동작으로 인한 커널 불안정 또는 디버그 경고(UBSAN) 발생이 주된 영향입니다.

🛡️ 대응 방법

배포판에서 제공하는 최신 Linux 커널 보안 업데이트를 설치하고 재부팅합니다.

🔧 검증 코드

출력된 커널 버전을 배포판의 보안 권고문에서 이 CVE가 수정된 커널 버전과 비교하여, 같거나 높으면 패치가 적용된 것이고 낮으면 업데이트가 필요합니다.

Shell / Script
uname -r

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Linux Kernel