📊 W44 주간 IT 트렌드 (10/26–11/1)
이번 주의 한 줄: 새 취약점의 주가 아니었다. CISA KEV에 5일 연속 2건씩 10건이 올랐고, 그중 Brotli·PHP2Shell·GitLab 셋은 이미 지난주에 패치가 나와 있던 것이다. 이번 주의 사건은 공개가 아니라 악용 확인이었고, 세 건 모두 같은 모양이다 — 패치는 존재하는데 우리 안의 사본에 도달하지 않았다.
이번 주 먼저
- Node 런타임(22.23.4 / 24.22.1 / 26.12.1 미만)과 파이썬 brotli·brotlicffi(1.2.1 미만)를 올린다. 판정은 process.versions.brotli가 아니라 node 릴리스 번호와 PyPI 버전으로 (KEV 기한 11/10 전, 11/7)
- Cursor에서 Claude Code 확장을 쓴 장비는 ~/.ssh/authorized_keys에 svc-telemetry 키가 없는지, 모르는 LaunchAgent·cron이 없는지 확인 (11/4)
- 에이전트·크론 경로에서 모델 출력이 셸 인자나 스크립트로 들어가는 지점을 세고, 각 지점의 실제 게이트가 프롬프트인지 권한 설정인지 적는다 (11/14)
- 공용 인프라의 PHP 프런트 버전, 커널을 따로 못 올리는 어플라이언스, GitLab 인스턴스가 쓰는 Ruby 버전을 따로 센다 (11/21)
—— AI ——
────────
▣ MCP 생태계에서 한 주에 CVE 18건 — 모델이 채운 문자열이 셸로 들어간다 (10/26–11/1)
핵심: 대상 주차에 NVD가 MCP 관련 CVE를 18건 발행했다. 중심은 10/27–28 이틀 동안 거의 동시에 나온 OS 명령 주입 묶음이다 — ai-sdlc, sf-mcp, esp-mcp, Kali-GPT, hagent, ATXP Gemini CLI 확장, DroidMind 등 9건이 CVSS 4.0 7.3~8.5. 패턴은 전부 같다. 모델이 채운 평범한 도구 인자 문자열이 서버 쪽에서 셸이나 패키지 인스톨러 안으로 들어간다. 공시문 다수가 공격자 모델에 "prompt-injected agents"를 명시했다. MCP Python SDK 자체도 걸렸다 — CVE-2026-116684(6.8)는 서버측 베어러 인증이 aud 청중을 독립 검증하지 않아 다른 서비스용 토큰으로 엉뚱한 MCP 서버에 인증되는 결함이고, 1.30.0·2.2.0에서 고쳐졌다. 11/1에는 Prefab UI의 CVSS 10.0(격리라고 문서화된 샌드박스가 실제로 격리되지 않음)까지 나왔다.
왜 중요한가: 채택 규모와 구현 품질이 어긋나 있다. PyPI mcp가 주 7,107만, npm @modelcontextprotocol/sdk가 주 5,833만 다운로드인 생태계에서 같은 결함 유형 9건이 이틀 안에 나왔다면 개별 버그가 아니라 설계 기본값의 문제다. 결함 대부분은 프로토콜이 아니라 서버 구현에 있어서, MCP를 쓴다는 사실보다 어느 서버를 붙였는지가 위험을 정한다. 더 큰 변화는 공시문의 표현이다. 공격자 모델에 "프롬프트 주입된 에이전트"가 들어가기 시작했고, 신뢰 경계가 사용자 입력에서 모델 출력으로 한 칸 옮겨갔다. MCP 서버를 안 써도 외부 텍스트를 모델에 넣고 그 출력으로 셸을 돌리는 구조라면 같은 모양이 이미 안에 있다.
출처: https://t.co/HmUIJO6x8k
────────
▣ Anthropic S-1 제출 — 추론 단가 구조가 처음 숫자로 나왔고, API 가격은 몇 달 만에 최대 80% 내렸다 (10/26)
핵심: Anthropic이 10/26 SEC에 S-1을 냈다(나스닥, 티커 ANT). 2026년 상반기 매출 약 163억 달러(2025년 연간 46억), 2분기만 116억 달러이고 매출의 약 80%가 API·모델 호출이다. 순손실 807억 달러는 대부분 전환사채 공정가치 변동으로 설명됐고, 현금·단기투자 1,317억 달러, NRR 약 900%. 실무적으로 가장 눈에 띄는 숫자는 2분기 컴퓨트 56억 달러로 매출 116억 달러, 컴퓨트 1달러당 매출 2.08달러다. 같은 날 HN 1위(1,708점). 맞물려 OpenAI·Anthropic이 몇 달 사이 API 단가를 50~80% 내렸다는 분석(개인 블로그 집계)이 돌았고, IBM CEO의 "오픈 웨이트 모델이 온프렘에서 성능도 좋고 싸다" 발언, Mistral Large 4 가중치 공개(HN 1,716점)가 같은 주에 붙었다.
왜 중요한가: "로컬이 싸다"의 근거가 양쪽에서 동시에 흔들렸다. 클라우드 단가는 반토막 이하로 내려가 로컬의 비용 우위가 줄었고, 오픈 웨이트가 쓸 만해져 로컬의 품질 열위도 줄었다. 결론은 "어느 쪽이 싸다"가 아니라 "작업 종류별로 갈린다"로 옮겨간다. 컴퓨트 대비 매출 2.08배는 지금 가격이 손해 보고 파는 수준이 아니라 마진을 깎은 수준이고, 추가 인하 여력이 남았다고 읽을 근거다. 반대 신호도 같은 주에 나왔다 — Blackstone의 "IPO 이후에도 투자적격 등급을 못 받을 수 있다", OpenAI 라운드 목표액 미달, Microsoft 희망퇴직 제시. 그리고 "단가는 내려갔는데 일은 줄지 않았다"는 글이 가장 많이 읽혔다. 구독·CLI로 쓰는 팀에는 직접 절감이 아니라 로컬 대 클라우드 비교 기준선이 바뀐 사건이다.
출처: https://t.co/eUG6kM0VAx
—— 클라우드·데이터센터·인프라 ——
────────
▣ Azure VM v1·v2 전 리전 약 25% 인상, 유럽 7개 리전 8~17% — 2027-02-01 시행 (통지 10월 초)
핵심: Azure가 v1·v2 VM 가격을 전 리전에서 약 25%, 유럽 7개 리전에서 8~17% 올린다. 시행은 2027-02-01이고 pay-as-you-go·EA·MCA 요율이 전부 대상이다. 통지 자체는 10월 초라 이번 주 사건은 아니고, 이번 주에 확인됐다. 같은 주 쿠버네티스·CNCF 공식 채널에는 EOL·은퇴 같은 상태 변경 공지가 없었다.
왜 중요한가: 한쪽에서는 AI 추론 단가가 반토막 나는데 다른 쪽에서는 범용 컴퓨트 단가가 오른다. 구형 VM 세대에 머물러 있는 워크로드는 내년 2월부터 아무것도 안 해도 비용이 4분의 1 늘어난다. AWS·GCP에서도 같은 성격의 인상이 나오면 "컴퓨트 단가 상승 국면"으로 읽어야 한다. 지난주 이 인상을 놓친 것도 교훈이다 — 한 벤더만 보고 "클라우드 가격 인상 공지 없음"이라고 판정하면 안 된다.
출처: https://t.co/R4lywzkCnF
—— 보안·규제 ——
────────
▣ KEV 한 주 10건, 그중 5건이 기한 3일 — 기한은 짧아지는데 소화 역량은 그대로 (10/26–10/30)
핵심: CISA KEV 카탈로그를 날짜별로 대조하면 10/26부터 10/30까지 매일 정확히 2건씩 10건이 올랐다 — PHP 2건, Adobe Commerce, Brotli, VMware ESX, 리눅스 커널 Fragnesia, GitLab, Cisco ASA/FTD, Ivanti Connect Secure 2건. 주말(10/31·11/1)은 등재가 없었다. 10건 중 5건의 연방기관 조치 기한이 3일이다. 특이한 항목도 있다 — VMware ESX CVE-2026-41709는 코드 실행도 권한상승도 아니고 "관리자가 일부 작업을 로그 없이 할 수 있다"는 로깅 누락 결함인데 KEV에 올랐다.
왜 중요한가: 3일 기한이 늘면 결국 "전부 급함"이 되고, 그러면 실제로 우리 안에 있는 건이 뒤로 밀린다. 긱뉴스 10/29 상위에 "이대로는 지속 가능하지 않다 — 취약점 공개 속도를 따라가지 못하는 보안 대응"이 오른 건 우연이 아니다. 그리고 이번 주에 모자랐던 건 정보가 아니었다. 무엇이 위험한지는 공지로 다 나와 있었고, 그게 내 환경의 어느 사본에 해당하는지를 아는 쪽이 비어 있었다. ESX 건처럼 "증거가 안 남는 것" 자체가 악용 대상으로 분류되기 시작했다는 점도 탐지 가정을 다시 보게 만든다.
출처: https://t.co/cQ2KPyuad1
—— 취약점·해킹 ——
────────
▣ Brotli 디코더 RCE(CVE-2026-111497)가 KEV에 올랐다 — 수정판 node도 brotli 1.2.0을 보고한다 (10/27)
핵심: CISA가 10/27 Google Brotli 디코더 out-of-bounds write를 "evidence of active exploitation" 근거로 KEV에 추가했다(조치 기한 11/10). 지난주 Critical로 다룰 때는 KEV 미등재였다. 결함은 Brotli 1.0.3~1.2.0에 있고, Node.js는 22.23.4·24.22.1·26.12.1이 수정판이다. 캐나다 CCCS·Rapid7·Tenable은 번들 사본 보유처로 Node.js·.NET·PowerShell·Bun·Envoy를 지목했다(각 프로젝트 공식 공지로 전부 확인되지는 않음). 이번 주 새로 확인된 사실이 하나 있다 — process.versions.brotli는 수정판 node 26.12.1에서도 1.2.0을 보고한다.
왜 중요한가: Node는 zlib을 직접 부르지 않아도 fetch()가 br 응답을 자동 해제하니, 외부 페이지를 가져오는 코드는 전부 입력 경로다. 결함이 런타임이 번들한 사본에 있어서 의존성 목록에 안 보이고, 이제는 번들 사본의 버전 문자열로도 패치 여부를 못 가린다. 판정 근거는 node 릴리스 번호와 PyPI 버전뿐이다. 커뮤니티 관심이 식은 뒤 KEV가 올라온 순서라, 오히려 소비하는 쪽에서 놓치기 쉬운 모양이다.
출처: https://t.co/WAeGoijI6W
────────
▣ PHP2Shell + 5개월 된 커널 버그 Fragnesia — 연쇄로 서버 25대를 root로 장악 (10/26–10/28)
핵심: CISA가 10/26 PHP 미인증 RCE CVE-2026-109618·109619(각 9.2, 10/21 긴급 릴리스 8.2.35 / 8.3.36 / 8.4.27 / 8.5.12에서 수정)를 KEV에 올렸고, 10/28에는 리눅스 커널 CVE-2026-46300(Fragnesia, 7.8)을 올렸다. 둘 다 기한 3일. Fragnesia는 XFRM ESP-in-TCP 처리 결함으로 읽기 전용 파일의 페이지 캐시에 임의 바이트를 써서 비권한 사용자가 root까지 간다. 이 둘을 묶은 건 Dream Research의 10/27 보고다 — 공격자가 PHP2Shell 익스플로잇과 Fragnesia를 연쇄해 서버 25대를 root로 장악했고, 대부분이 방화벽 어플라이언스였다. 수법은 /etc/pam.d/su의 메모리 사본을 pam_permit.so로 덮어써 su에 암호가 필요 없게 만드는 것이었다(단일 보고, 공식 수치 아님).
왜 중요한가: Fragnesia는 새 버그가 아니다. 5/13에 PoC와 함께 공개됐고 주요 배포판은 5~7월에 수정 커널을 냈다. 그런데 5개월 뒤 KEV에 올랐다는 건 패치를 못 받는 긴 꼬리가 실제로 털렸다는 뜻이다. 피해가 어플라이언스에 몰린 것도 같은 이유다 — 커널을 따로 올릴 수 없다. 구조는 "새로 터진 웹 RCE + 오래된 로컬 권한상승"이고 둘 중 하나만 막혀도 체인이 끊긴다. CVSS 7.8이라 "지난 건"으로 분류해 둔 로컬 권한상승을 체인 부품으로 다시 세야 하는 이유다.
출처: https://t.co/EoHkjB7iT4
────────
▣ GitLab CVSS 10.0(CVE-2026-97229) KEV 등재 — 범인은 Ruby Onigmo, GitLab만 올려서는 안 닫힌다 (10/29)
핵심: CISA가 10/29 GitLab CI/CD 설정의 정규식 파싱 경로 정수 오버플로로 미인증 임의 코드 실행이 되는 CVE-2026-97229를 KEV에 올렸다(기한 3일). GitLab 수정은 10/12에 이미 나와 있었다. 결함의 실체는 Ruby의 Onigmo 정규식 컴파일러이고, 수정된 Ruby는 3.3.13·3.4.12·4.0.9이며 Ruby 3.2 계열에는 수정이 없다. Omnibus와 공식 Docker 이미지는 패치된 Ruby를 번들하지만 소스 설치·커스텀 컨테이너는 Ruby를 따로 올려야 한다. 실제 사례가 있다 — Alpine Linux의 공개 GitLab은 10/22 19.3.6으로 올렸는데도 막히지 않았다. 이미지가 자체 Ruby를 쓰고 있었다.
왜 중요한가: "상위 제품을 최신으로 올렸다"가 안전의 근거가 못 된다는 걸 공개 사례로 증명했다. 근본 원인이 Ruby 정규식 컴파일러라서 사용자 정규식을 컴파일하는 Ruby 앱은 전부 같은 모양이고, 3.2에 묶인 앱은 패치가 아니라 계열 이동만 남는다. 그리고 HN·긱뉴스 7일 상위권에 이 건은 한 번도 안 올라왔다. CVSS 10.0 미인증 RCE가 KEV에 올랐는데 개발자 커뮤니티는 조용했다 — 조용함은 종결 근거가 아니다. Brotli의 node 26.12.1, GitLab 19.3.6, 둘 다 "무엇을 올렸나"가 아니라 "그 안의 사본이 무엇인가"를 봐야 한다는 결론이다.
출처: https://t.co/dgiFziiHYa
—— 개발자·엔터프라이즈 ——
────────
▣ Cursor 마켓플레이스의 Claude Code 확장이 SSH 백도어로 바뀌었다 — 11시간, 최대 5,000명 (10/29)
핵심: Cursor가 10/29 자사 확장 마켓플레이스에서 anthropic.claude-code 확장 2.1.312·2.1.313이 변조돼 배포됐다고 공개했다. 대상은 macOS·Windows, 노출 창은 약 11시간(09:27~20:35 UTC), Cursor 자체 추정으로 최대 5,000명이 받았다. 페이로드는 정찰 → ~/.ssh/authorized_keys에 공격자 키(svc-telemetry) 추가 → SSH 데몬 활성화 → 134.209.82.225로 리버스 터널 → cron·LaunchAgent·예약 작업으로 지속성 → :8099/beacon 보고까지 6단계다. Open VSX와 VS Code Marketplace는 영향이 없었고, Anthropic 시스템도 침해되지 않았다 — 공격자는 Cursor 인프라 접근을 이용해 정식 확장 ID로 올렸다. Cursor는 마켓플레이스를 통째로 내리고 키를 회전했으며, 정상 최신판은 2.1.314다.
왜 중요한가: 가짜 이름의 유사 확장이 아니라 진짜 확장의 버전 번호가 바뀐 것이라 이름·발행자 확인으로는 걸러지지 않는다. 페이로드도 탈취나 채굴이 아니라 SSH 키 + 지속성 + 리버스 터널, 즉 개발 장비를 거점으로 삼는 구성이다. 코딩 에이전트 확장은 소스·토큰·내부망 접근이 있는 장비에만 깔리니 가치가 높다. C2가 내려갔다고 끝이 아니다 — authorized_keys의 키와 LaunchAgent·cron은 C2와 무관하게 남는다. HN 990점·긱뉴스에 동시에 올랐고, "마켓플레이스가 서드파티면 신뢰 경계도 서드파티"라는 지적과 11시간 안에 IoC까지 공개한 대응에 대한 평가가 함께 나왔다. 팀 차원에서 코딩 에이전트 확장을 어느 마켓플레이스에서 받을지 하나로 정해 둘 때다.
출처: https://t.co/N5H8kvJ0Tv
한 줄로: 이번 주 모자랐던 건 정보가 아니라 도달이었습니다. "수정판이 나왔나"보다 "그 수정이 내 안의 사본까지 갔나"를 먼저 물어보세요.
#주간IT트렌드 #IT브리핑 #KEV #Brotli #PHP2Shell #Fragnesia #GitLab #MCP #ClaudeCode #Cursor #Anthropic #공급망보안