🔍 CVE-2022-49339

5.5
CVSS Score
MEDIUM
2025-02-26
2026-11-05 20:17
✅ 완료

🇰🇷 한글 설명

Linux 커널에서 __init으로 표시된 seg6_hmac_init() 함수가 EXPORT_SYMBOL로 외부에 노출되어 있었습니다. .init.text 섹션은 초기화 후 해제되므로, 이 심볼에 접근하면 커널 패닉이 발생할 수 있습니다. 해당 함수의 export를 제거하여 문제를 해결했습니다.

💡 쉬운 설명

커널 초기화 과정에서만 쓰이는 함수가 외부 모듈에서 호출될 수 있도록 공개되어 있었습니다. 초기화가 끝나 메모리에서 지워진 함수에 접근하면 시스템이 멈출 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: net: ipv6: unexport __init-annotated seg6_hmac_init() EXPORT_SYMBOL and __init is a bad combination because the .init.text section is freed up after the initialization. Hence, modules cannot use symbols annotated __init. The access to a freed symbol may end up with kernel panic. modpost used to detect it, but it has been broken for a decade. Recently, I fixed modpost so it started to warn it again, then this showed up in linux-next builds. There are two ways to fix it: - Remove __init - Remove EXPORT_SYMBOL I chose the latter for this case because the caller (net/ipv6/seg6.c) and the callee (net/ipv6/seg6_hmac.c) belong to the same module. It seems an internal function call in ipv6.ko.

📍 영향받는 시스템

EXPORT_SYMBOL과 __init이 함께 적용된 seg6_hmac_init()을 포함한 Linux 커널 (IPv6 SRv6 HMAC 기능 관련 버전)

⚔️ 공격 벡터

공격자가 원격으로 악용하기 어렵고, 주로 잘못된 심볼 접근으로 인한 커널 패닉(서비스 거부) 가능성이 있음

🛡️ 대응 방법

커널을 해당 수정이 포함된 최신 안정 버전으로 업데이트하거나 배포판 보안 업데이트를 적용

🔧 검증 코드

출력된 커널 버전을 배포판의 보안 공지나 패치 목록과 대조해 해당 수정이 포함되었는지 확인 (수정 이전 버전이면 업데이트 필요)

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