🔍 CVE-2022-49990

7.8
CVSS Score
HIGH
2025-06-18
2026-10-15 22:17
✅ 완료

🇰🇷 한글 설명

Linux 커널의 s390 아키텍처에서 fork() 호출 실패 시 GS 및 RI 제어 블록이 중복 해제되는 취약점입니다. 새로운 태스크가 생성된 후 copy_thread()가 호출되기 전 fork()가 실패하면, 기존 태스크의 메모리 포인터를 참조하는 상태에서 메모리가 해제되어 double free 오류가 발생합니다.

💡 쉬운 설명

컴퓨터가 새로운 작업을 만들려다 실패했을 때, 이미 사용 중인 메모리를 실수로 두 번 삭제하려고 시도하는 오류입니다. 이로 인해 시스템이 갑자기 멈추거나 오류가 발생할 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: s390: fix double free of GS and RI CBs on fork() failure The pointers for guarded storage and runtime instrumentation control blocks are stored in the thread_struct of the associated task. These pointers are initially copied on fork() via arch_dup_task_struct() and then cleared via copy_thread() before fork() returns. If fork() happens to fail after the initial task dup and before copy_thread(), the newly allocated task and associated thread_struct memory are freed via free_task() -> arch_release_task_struct(). This results in a double free of the guarded storage and runtime info structs because the fields in the failed task still refer to memory associated with the source task. This problem can manifest as a BUG_ON() in set_freepointer() (with CONFIG_SLAB_FREELIST_HARDENED enabled) or KASAN splat (if enabled) when running trinity syscall fuzz tests on s390x. To avoid this problem, clear the associated pointer fields in arch_dup_task_struct() immediately after the new task is copied. Note that the RI flag is still cleared in copy_thread() because it resides in thread stack memory and that is where stack info is copied.

📍 영향받는 시스템

Linux kernel (s390 architecture)

⚔️ 공격 벡터

로컬 공격자가 fork() 시스템 호출을 반복적으로 유도하여 커널 메모리 오류를 발생시킴

🛡️ 대응 방법

Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트

🔧 검증 코드

출력 결과에 s390 또는 s390x가 포함되어 있다면 해당 아키텍처의 취약점 영향권에 있을 가능성이 있습니다.

Shell / Script
uname -a | grep -i s390

📊 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