8호 · 2026년 10월 30일 · 5건

Brotli 하나로 번진 RCE, 아직 eMudhra를 믿는 맥의 git, 패치 전 공개된 Tailscale SSH, 빠지는 Python JIT, 그리고 상태 줄에 쓰는 지출 16%

Brotli 디코더 CVE 하나가 Node에서 Python·Bun·Envoy로 번졌고 번들 복사본은 아직 미수정입니다. macOS의 git·curl·python3는 통보 11일째에도 침해된 eMudhra 인증서를 믿고, 27.2 업데이트는 수동 조치를 되돌렸습니다. Tailscale SSH의 포워딩 결함 11건이 패치 전에 공개됐고 기기 하나에서 정책이 허용하는 서버 전부로 루트를 타고 갈 수 있습니다. CPython 실험적 JIT는 PEP 836 철회로 3.16에서 빠집니다. Claude Code는 백그라운드 에이전트 전사를 30초마다 모델에 보내 상태 줄 다섯 단어를 얻고, 한 팀의 측정으로는 지출의 16%였습니다.

  1. 01

    Node2Shell에서 HTTP2Shell로 — Brotli 디코더 RCE가 Node를 넘어 Python·Bun·Envoy까지

    CVE-2026-111497은 Google Brotli C 디코더 1.0.3~1.2.0의 범위 외 쓰기로, 조작된 Brotli 스트림을 디코딩하는 모든 프로세스가 대상입니다. 10월 21일 Node.js 22.23.4·24.22.1·26.12.1 수정과 함께 'Node2Shell'로 공개됐고, 22일 Aikido가 같은 디코더를 컴파일한 Python Brotli·brotlicffi(월 8천만 다운로드)도 취약하다고 밝혔으며, 23일에는 Bun·Envoy·Istio와 각종 번들 복사본으로 범위가 넓어져 'HTTP2Shell'로 불립니다. 노출 경로는 외부 응답의 Content-Encoding: br 자동 디코딩, Express 5·body-parser 2의 요청 본문, 디코더 직접 호출입니다. CVSS 9.2. 수정은 Brotli 1.2.1, Python Brotli 1.2.1·brotlicffi 1.2.1.0. 실제 공격은 10월 24일 기준 확인되지 않았습니다.

    왜 중요한가: requests나 httpx가 깔린 Python 환경에 Brotli 패키지가 함께 있으면 외부 URL 하나 호출하는 것으로 노출됩니다. pip-audit가 처음에 못 잡았다는 보고가 있어 직접 확인해야 합니다.

  2. 02
    후속

    macOS의 git·curl·python3는 아직 eMudhra 인증서를 믿는다 — 통보 11일째, 27.2 업데이트가 수동 조치를 되돌렸다

    Dennis Jackson이 운영하는 eMudhra 사고 추적 사이트가 10월 28일 Apple 페이지를 올렸습니다. 10월 17일 Apple에 통보됐지만, macOS에 실리는 git·curl·python3는 아직 침해된 eMudhra 인증서를 신뢰합니다. Safari와 Apple 네트워킹 프레임워크를 쓰는 앱은 보호됐습니다. 10월 26일 나온 macOS 27.2는 이를 고치지 않았고, 사용자가 /etc/ssl/cert.pem에서 루트를 지운 수동 조치를 되돌렸습니다. 사이트는 git ls-remote와 curl로 확인하는 테스트 호스트와, 클론이 성공하면 README가 'INTERCEPTED'로 시작하는 데모 저장소를 제공합니다. 수십 개 다른 프로젝트는 며칠 전에 수정을 냈다고 합니다.

    왜 중요한가: CI의 macOS 러너와 개발자 맥에서 git clone·pull·push와 pip가 가로채기에 열려 있습니다. GitHub 토큰 같은 자격증명도 같은 경로로 샐 수 있습니다. Apple 수정 전까지 업데이트마다 다시 확인해야 합니다.

  3. 03

    Tailscale SSH 'Tailworm' — 패치 전 공개된 11건, 포워딩 경로로 루트와 등록 키까지

    Cyberdione Labs의 Erica Windisch가 10월 25일 Tailscale 클라이언트 1.104.2와 headscale 0.29.5에서 찾은 11건을 패치 전에 공개했습니다. 6건이 높음이고 그중 4건이 Tailscale SSH입니다. 핵심은 유닉스 소켓 포워딩(-R/-L)의 경로 검사와 파일 작업이 루트로 수행되고 경쟁 조건과 권한 강하 누락으로 이를 우회할 수 있다는 것으로, 실험실에서는 대상 서버 루트 획득과 네트워크에 악성 기기를 추가할 수 있는 등록 키 탈취로 이어졌습니다. 연구진은 정책이 허용하는 서버를 홉당 1초 미만으로 옮겨 다니는 자동화 체인을 시연했습니다. 나머지는 실험적 앱 커넥터, Serve, headscale 자원 고갈, DERP 클라이언트 메모리 고갈입니다. Tailscale은 '인증되지 않은 공격자가 아무 기기에나 접속하는 것과 다르다'며 전면 비활성화를 권하지 않았고, 10월 27일 수정 릴리스를 목표로 했습니다. 10월 28일 보도 기준 보안 공지 4건이 나왔으나 릴리스 번호는 보도에 없습니다. 실제 악용 보고는 없습니다.

    왜 중요한가: Tailscale SSH로 서버에 들어가는 팀은 기기 하나가 뚫리면 정책이 허용하는 모든 서버의 루트가 걸립니다. 패치 전에는 포워딩 비활성화와 SSH 접근 정책 축소가 할 일입니다.

  4. 04
    후속

    CPython 실험적 JIT, 본선에서 빠진다 — PEP 836 철회, '끌고 갈 여력이 없다'

    CPython의 실험적 JIT가 main 브랜치에서 제거될 예정입니다. 운영위원회는 6월에 JIT 작업을 멈추고 '지원되는 비실험 기능'으로 가는 표준 트랙 PEP를 6개월 안에 제출·승인받지 못하면 제거하겠다고 했습니다. 그 답인 PEP 836(Ostrowski·Jin·Bucher, 7월 공개)은 9월 21일 운영위원회의 10개 지적 사항을 받았고, 10월 19일 3.16·3.17 릴리스 관리자인 Ostrowski가 '현재 버전을 끌고 갈 개인적 여력이 없다'며 철회했습니다. PEP 836 기준 JIT는 pyperformance 기하평균으로 인터프리터보다 4~12% 빨랐습니다. Brett Cannon은 main에서의 작업은 멈추고 다른 곳에서 이어갈지는 커뮤니티에 달렸다고 했습니다. 제거는 3.16 개발 초기에 이뤄질 가능성이 높습니다.

    왜 중요한가: 3.15에서 처음 측정 가능한 이득을 냈던 JIT가 3.16에서 사라집니다. JIT 빌드를 전제로 성능 계획을 잡았다면 다시 잡아야 하고, 자유 스레딩은 이 결정과 무관하게 계속됩니다.

  5. 05

    Claude Code가 백그라운드 에이전트 전사를 30초마다 모델에 보낸다 — 상태 줄 다섯 단어에 지출의 16%

    Flamerix AI가 공개한 분석입니다. Claude Code는 백그라운드 에이전트마다 약 30초 간격으로 전체 전사를 모델(대개 Opus)에 보내 '가장 최근 행동을 3~5단어로' 묘사하게 합니다. 결과는 에이전트 패널의 상태 줄에만 쓰이고 대화에는 닿지 않습니다. 끄는 설정은 없고 2.1.232(8월)부터 기본 켜짐이며, 간격은 서버에서 30~240초로 조정되는데 기본이 최소값 30초입니다. OpenTelemetry 내보내기에서 query_source별로 묶어 보니 agent_summary가 지출 추정치의 16.4%(본 대화 15.7%), API 요청의 19.7%였고 96%가 Opus였습니다. 입력 대 출력 토큰은 약 9,000:1입니다. 이슈 #86879에는 18~26%의 독립 측정 4건이 모였습니다. 전사를 재생해 추정한 한 댓글은 캐시 적중을 가정해 약 8%로 봤습니다. 저자는 setTimeout을 감싸 해당 타이머만 무력화하는 Bun --preload 스크립트를 MIT로 공개했습니다. 세션 로그에는 이 요청이 남지 않아 전사 기반 비용 도구는 놓칩니다. Anthropic의 응답은 없습니다.

    왜 중요한가: 백그라운드 에이전트를 많이 쓰는 팀은 API 청구서나 구독 한도의 상당 부분이 상태 줄 갱신에 들어가고 있을 수 있습니다. 공식 설정이 없으니 먼저 자기 텔레메트리에서 비율을 확인하는 게 할 일입니다.