🔍 CVE-2023-54235

0.0
CVSS Score
UNKNOWN
2025-12-30
2026-10-28 19:10
✅ 완료

🇰🇷 한글 설명

Linux 커널의 PCI DOE(Data Object Exchange) 드라이버에서 destroy_work_on_stack() 호출이 완료 신호 이후에 이루어져 경쟁 조건(race condition)이 발생하는 문제입니다. 이로 인해 디버그 객체 해제 시 경고가 발생하고 작업 구조체가 범위를 벗어난 뒤 접근될 수 있습니다. 완료 신호를 작업 구조체 해제 이후로 옮겨 문제를 수정했습니다.

💡 쉬운 설명

컴퓨터 내부 장치 통신 기능에서 작업 정리 순서가 잘못되어 메모리 접근 충돌이 생길 수 있었습니다. 정리 순서를 바로잡아 이 문제를 해결했습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: PCI/DOE: Fix destroy_work_on_stack() race The following debug object splat was observed in testing: ODEBUG: free active (active state 0) object: 0000000097d23782 object type: work_struct hint: doe_statemachine_work+0x0/0x510 WARNING: CPU: 1 PID: 71 at lib/debugobjects.c:514 debug_print_object+0x7d/0xb0 ... Workqueue: pci 0000:36:00.0 DOE [1 doe_statemachine_work RIP: 0010:debug_print_object+0x7d/0xb0 ... Call Trace: ? debug_print_object+0x7d/0xb0 ? __pfx_doe_statemachine_work+0x10/0x10 debug_object_free.part.0+0x11b/0x150 doe_statemachine_work+0x45e/0x510 process_one_work+0x1d4/0x3c0 This occurs because destroy_work_on_stack() was called after signaling the completion in the calling thread. This creates a race between destroy_work_on_stack() and the task->work struct going out of scope in pci_doe(). Signal the work complete after destroying the work struct. This is safe because signal_task_complete() is the final thing the work item does and the workqueue code is careful not to access the work struct after.

📍 영향받는 시스템

패치 이전의 Linux 커널 (PCI DOE 기능을 사용하는 시스템)

⚔️ 공격 벡터

명확한 원격 공격 경로는 보고되지 않았으며, 주로 커널 메모리 오류로 인한 불안정성이나 서비스 중단 위험이 있습니다.

🛡️ 대응 방법

배포판 제공 최신 Linux 커널 업데이트를 적용하여 해당 수정 사항이 포함된 버전으로 재부팅합니다.

🔧 검증 코드

출력된 커널 버전을 배포판 보안 공지에서 이 수정이 포함된 버전과 비교하여 최신 여부를 확인합니다.

Shell / Script
uname -r

💻 영향받는 소프트웨어

Linux Kernel