CVE-2025-68776 in Linux정보

요약

\~에 의해 VulDB • 2026. 05. 27.

리눅스 커널의 HSR(High-availability Seamless Redundancy) 서브시스템에서 `__pskb_copy()` 함수는 메모리 할당을 수행하며, 이 과정에서 할당 실패 시 `NULL`을 반환할 수 있습니다. 현재 코드에서는 이 반환 값을 확인하지 않고 바로 사용하려고 하므로, 할당 실패 시 커널 패닉이나 메모리 손상(crash)이 발생할 수 있습니다.

제시된 Call Trace를 보면 `hsr_forward_do` 함수에서 문제가 발생하고 있으며, 이는 `hsr_forward_skb` 함수 내부에서 호출되는 것으로 보입니다. `hsr_forward_skb` 함수 내에서 `__pskb_copy()`를 호출하는 부분을 찾아 NULL 체크를 추가해야 합니다.

아래는 `net/hsr/hsr_forward.c` 파일의 `hsr_forward_skb` 함수에서 `__pskb_copy()` 호출 후 NULL 체크를 추가한 수정 예시입니다.

### 수정 대상 파일: `net/hsr/hsr_forward.c`

```c /* * hsr_forward_skb 함수 내의 관련 코드 부분 * __pskb_copy() 호출 후 NULL 체크를 추가합니다. */

static int hsr_forward_skb(struct net_device *dev, struct sk_buff *skb, struct hsr_node *src_node, struct hsr_node *dst_node) {
struct sk_buff *skb2; int err;

/* ... 기존 코드 ... */

/* __pskb_copy()는 메모리 할당이 필요하므로 실패 시 NULL을 반환할 수 있습니다. */ skb2 = __pskb_copy(skb, skb_headroom(skb), GFP_ATOMIC); if (!skb2) {
/* 할당 실패 시 에러 처리 (예: 카운터 증가 후 리턴) */ dev_kfree_skb_any(skb); return -ENOMEM; }

/* ... 이후 skb2를 사용하는 코드 ... */

return 0; } ```

### 설명

1. **`__pskb_copy()` 함수**: 주어진 `sk_buff`의 복사본을 생성합니다. 이 함수는 내부적으로 `kmalloc` 또는 유사한 메모리 할당 함수를 호출하므로, 메모리가 부족할 경우 `NULL`을 반환합니다. 2. **NULL 체크 추가**: `__pskb_copy()`의 반환 값을 확인하여 `NULL`인 경우 즉시 에러 처리를 수행합니다. 이 경우 일반적으로 `-ENOMEM`을 반환하거나, 적절한 로그를 출력하고 함수를 종료합니다. 3. **메모리 누수 방지**: 할당 실패 시 원본 `skb`를 적절히 해제(`dev_kfree_skb_any`)해야 메모리 누수를 방지할 수 있습니다.

이 수정을 통해 메모리 할당 실패 시 커널이 비정상 종료되는 것을 방지하고, 더 안정적인 동작을 보장할 수 있습니다.

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

책임이 있는

Linux

예약하다

2025. 12. 24.

모더레이션

수락

항목

VDB-340621

EPSS

0.00177

출처

Want to stay up to date on a daily basis?

Enable the mail alert feature now!