LWN Weekly Report: 2026년 11월 5일 주요 뉴스

이번 주 LWN.net 위클리 에디션(11월 5일자) 주요 내용이다. 조셉 바식(Josef Bacik)은 컨테이너를 커널 객체로 만드는 “셀(cell)”을 제안했다. Android Binder의 C 구현은 7.4에서 삭제되고 Rust 구현만 남는다. 7.4 머지 윈도우는 체인지셋 18,591개로 역대 최대 기록을 세우고 닫혔다.

LPC 2026 세션 두 개도 정리한다. 하나는 glibc에 시스템 콜 래퍼를 추가하는 작업이고, 다른 하나는 AWS의 커널 CVE 대응 방법이다. 이 밖에 Debian NEW 큐의 LLM 리뷰 논쟁, Fedora 44의 Plasma X11 세션 제거, PEP 723 스크립트를 다룬다.

컨테이너를 커널 객체로 만드는 “셀”

지금 커널에는 컨테이너라는 개념이 없다. 사용자 공간이 네임스페이스, cgroup, 샌드박스 기능을 조립해 컨테이너를 만든다. 그래서 커널은 어떤 프로세스가 어느 컨테이너에 속하는지 답할 수 없다. 바식은 프로세스가 컨테이너에 “반쯤만 들어간” 상태에서 버그가 많이 생긴다고 지적했다.

시스템 콜역할
cell_create()빈 셀을 만들고 cellfd를 돌려준다. 권한이 필요 없다. cellfd를 닫으면 셀이 즉시 종료된다
cell_configure()키-값으로 셀을 설정한다. hostname, net, ids, root, budget(cgroup, 필수). 마지막에 CELL_CMD_SEAL로 설정을 잠근다
pidfd_open(cellfd, PIDFD_EMPTY)셀 안에 “배아(embryo)” 상태의 프로세스를 만든다
pidfd_configure()exec, argv, envp, cred, 넘겨줄 fd를 정하고 PIDFD_CMD_START로 실행한다
cell_kill()셀을 명시적으로 종료한다

기존 프로세스는 셀에 들어갈 수 없고, 셀 안의 프로세스는 밖으로 나갈 수 없다. 셀 안의 모든 프로세스에는 no_new_privs가 설정된다. Unix 소켓으로 경계를 넘어 fd를 넘기는 것도 막힌다. 댓글에서는 키-값 방식이 시스템 콜을 너무 많이 부른다는 지적이 나왔다. Flatpak처럼 fd 전달이 필요한 경우에 대한 우려도 있었다.

Debian NEW 큐의 LLM 리뷰 논쟁

Debian은 8월 일반 결의(GR)에서 “생성형 AI의 책임 있는 사용”을 채택했다. 그 뒤 DFSG 팀은 9월 말부터 NEW 큐에 올라온 패키지에 LLM 리뷰 메일을 보냈다. 모델은 Scaleway가 후원하는 Debian Inference Portal에서 돌린다.

규칙내용
차단 사유 발견 시업로드를 24시간 보류
업로더가 응답하지 않음큐 점수 50점 감점
업로더가 응답함보류 해제, 25점 가산
현재대시보드의 opt-out 버튼으로 LLM 리뷰를 끌 수 있다

요하네스 샤우어 마린 로드리게스(Johannes Schauer Marin Rodrigues)는 사전 논의가 없었다며 NEW 업로드를 중단하겠다고 했다. 테드 초(Ted Ts’o)는 사람이 보기 전에 문제를 고칠 수 있으니 시간이 절약된다고 반박했다. 다니엘 칸 길모어(dkg)는 LLM 리뷰가 찾은 문제가 최소 VM에서 빌드만 해 봐도 잡힌다고 지적했다. 그는 결정적인 도구인 lintian을 먼저 보강하자고 제안했다.

glibc 시스템 콜 래퍼

카를로스 오도넬(Carlos O’Donell)과 플로리안 바이머(Florian Weimer)가 LPC 2026에서 지난 1년의 진행 상황을 발표했다. x86-64의 시스템 콜 386개는 다음과 같이 나뉜다.

분류개수
같은 이름의 glibc 함수가 있음292
다른 이름의 glibc 함수가 있음16
래퍼 없음(syscall()로만 호출)77

우선순위가 가장 높은 것은 futex_waitv(), membarrier(), rseq 같은 동시성 기본 요소다. 앙드레 알메이다(André Almeida)가 futex_waitv() 래퍼 RFC를 올렸다. 바이머는 이후 범용 래퍼 세 가지(_syscall(), _syscallr(), _syscallc())로 “래퍼 작성 일에서 손을 떼고” 싶다고 했다. 피터 앤빈(H. Peter Anvin)은 커널이 시스템 콜 목록을 알려 주는 방법이 필요하다고 했다.

binder.c 삭제

Kangrejos 2026 마지막 세션에서 카를로스 야마스(Carlos Llamas)가 C Binder 드라이버 삭제를 발표했다. Google 레드팀이 꼽은 Android에서 코드 줄당 CVE가 가장 많은 컴포넌트다. 앨리스 릴(Alice Ryhl)의 Rust 구현으로 옮기는 데 5년 넘게 걸렸다.

어려웠던 점내용
꼬리 지연시간뮤텍스 보유자가 선점돼 20ms 지연, 프레임 예산 16ms 초과. 락 구간을 줄이고 스핀락으로 바꿔 해결
트레이스포인트사용자가 트레이스포인트의 참조 카운트 값에 의존. 사실상 API처럼 그대로 복제해야 했다
툴체인KASLR, CFI, PGO가 켜진 프로덕션 빌드 지원
벤더 훅Rust 구현에서 재현하지 못한 훅 때문에 일부 벤더는 C 구현에 남는다

삭제 패치는 7.4에 머지됐다. 2026년 LTS인 7.3에는 C 구현이 남는다. 새 기능을 Rust 쪽에만 넣는 정책 덕분에 Rust 구현이 C 구현보다 빨라졌다.

커널 CVE 홍수 대응

AWS의 딜런 존슨(Dylan Johnson)과 쥐스티니앵 부롱(Justinien Bouron)이 하이퍼바이저 커널 팀의 경험을 발표했다. 커널 CVE는 2024년 전에 주 2건이었다. CNA가 된 뒤 하루 16건으로 늘었고, 지금은 LLM 때문에 하루 수백 건이 나오기도 한다.

단계방법
자동 제거CNA JSON의 버전·파일 정보로 해당 없는 CVE 약 70%를 거른다
LLM 점수커널 설정과 위협 모델 문서를 함께 넣어 영향도를 매긴다. 오판율 5~10%
사람 검토유일한 수동 단계. 없애지 않는다

5.10.267에는 열린 CVE가 1,700개 넘게 있다. 그래서 오래된 LTS를 끝까지 쓰는 모델은 더 이상 유지할 수 없다는 결론이다. 커널 업그레이드 기간은 24개월(5.10)에서 12개월(6.12), 6개월(6.18)로 줄었다. 업그레이드에서 나온 문제는 maple tree로 느려진 mmap(), EEVDF가 바꾼 fork() 순서, max_sectors_kb 기본값이었다.

Fedora 44의 Plasma X11 세션 제거

Fedora KDE SIG는 모든 Fedora 릴리스에 같은 Plasma 버전을 유지한다. 그래서 Plasma 6.6으로 나온 Fedora 44가 6.8 업데이트를 받았다. 6.8에는 X11 지원이 없어서 kwin-x11과 plasma-workspace-x11 패키지가 제거됐다.

FESCo는 11월 3일 되돌리기 요청을 8 대 0(기권 1)으로 거부했다. X11이 필요한 사용자는 Copr로 6.7을 유지하거나, X11을 유지하는 포크인 SonicDE를 쓸 수 있다.

7.4 머지 윈도우 후반부

11월 1일에 닫힌 머지 윈도우의 체인지셋은 18,591개다. 7.3 개발 주기 전체(18,765개)와 거의 같다. 대부분은 버그 수정이다.

영역주요 변경
BPF스칼라 진화(scalar evolution)로 루프 인식 확대, callx 간접 호출, unwind_goto/unwind_exit
DAMONhugetlb 메모리 접근 추적, DAMOS 필터 추가
파일 시스템ext4 buffered_iomap 마운트 옵션, NTFS 스트림, CephFS 인라인 데이터 제거
보안DM_VERITY_VERIFY_ROOTHASH_SIG_FORCE, BPF LSM의 생성 시점 xattr 설정
트레이싱ftrace 함수 최대 시간, 특정 함수 실행 중 이벤트만 필터
가상화arm64 pKVM 상태 격리
내부mm의 per-VMA 락 전면 적용, Binder C 구현 삭제, Moxa 드라이버 삭제

기여자는 2,678명이고 그중 625명이 첫 기여자다. 7.4 릴리스는 12월 21일 무렵으로 예상된다.

의존성을 포함한 Python 스크립트

PEP 723은 스크립트 안의 # /// script 주석 블록에 TOML로 의존성을 적는 표준이다. 트레이 허너(Trey Hunner)는 두 가지 사용 방법을 비교했다.

도구방법한계
uv#!/usr/bin/env -S uv run --script로 가상 환경 생성·설치·실행을 자동화BusyBox·OpenBSD·NetBSD의 env는 -S 미지원
pip 26.0+pip install --requirements-from-script가상 환경 생성과 shebang 경로는 직접 관리

새 머신에서는 의존성을 매번 새로 해석하므로 오염된 릴리스를 받을 위험이 있다. 스크립트 안에서 고정하는 방법은 uv 전용인 exclude-newer뿐이다. Python 자체에 PEP 723 실행 기능을 넣을지는 9월에 선출된 Python 패키징 위원회가 다룰 수 있다.

짧은 소식

  • MPTCP 원격 코드 실행 — Anthropic이 10월 27일에 multipath TCP 리스너의 use-after-free 버그를 공개했다. 재전송된 SYN에 대한 응답이 다른 스레드의 연결 수립과 겹칠 때 생긴다. 해제된 옵션 구조체에 접근하는 버그다. 수정은 RCU 유예 기간 뒤에 해제하는 방식이다. Go는 기본으로 MPTCP를 쓰므로 영향 범위가 넓다.
  • GNU Savannah 침투 — Hacktron은 이메일 주소에 셸 명령을 넣어 Savannah 백엔드에서 코드를 실행했다. Bash 저장소에 푸시할 SSH 키를 추가할 수 있다는 것까지 확인했다. 5월 11일 FSF에 보고했다.
  • XCPE 봇넷 해체 — Google과 업계 파트너가 셋톱박스 130만 대를 묶은 백도어를 해체했다. Google은 제조사 Videostrong이 직접 운영했다고 판단했다.
  • 커널 릴리스 현황 — 10월 30일 안정 버전 8개(7.3.1~5.10.273)가 나왔다. 11월 1일에 나온 7.2.15가 7.2 시리즈의 마지막이다. 그렉 크로아-하트만은 다음 LTS를 7.3으로 본다.
  • 배포판 — Fedora 45는 Stratis 스토리지에 설치하는 기능을 지원한다. openSUSE Leap 16.1은 일반 설치와 불변(immutable) 이미지를 함께 제공한다. Bazzite 45도 나왔다.
  • 개발 — Tor Browser 16.0은 Firefox ESR 153 기반이고 64비트 Arm 리눅스를 지원한다. 로버트 하스(Robert Haas)는 LLM이 찾아낸 오래된 버그 때문에 PostgreSQL 19가 늦어졌다고 썼다.

이번 주 핵심 요약

  • 셀 제안은 아직 논의용 코드다. 컨테이너 런타임을 만든다면 “빈 상태에서 필요한 것만 넣는” 설계 원칙부터 참고할 것.
  • glibc 래퍼가 없는 시스템 콜은 syscall()로 부른다. 이때 ENOSYS가 “커널에 없음”인지 “seccomp가 막음”인지 구분할 수 없다는 점에 주의한다.
  • 7.4로 올리는 Android 커널 빌드에는 Rust 툴체인이 필요하다. GCC로 C를, LLVM으로 Rust를 빌드하는 조합은 미겔 오헤다(Miguel Ojeda)가 권하지 않는다.
  • 오래된 LTS 커널을 쓰고 있다면 열린 CVE 수를 먼저 확인할 것. AWS의 결론은 “최신 LTS로 빨리 옮기는 것이 가장 싸다”이다.
  • 배포용 Python 스크립트에는 PEP 723 블록을 넣는다. 재현성이 필요하면 exclude-newer나 별도 lock 파일로 버전을 고정한다.

원문: LWN.net Weekly Edition for November 5, 2026

답글 남기기