JS frameworks, React/Vue/Svelte, and runtime updates Compiled for immediate developer deployment.
calendar_todaysummarizeWeek 20-2026bolt1 CRITICAL
article
사후 분석: TanStack npm 공급망 침해
TAG: 보안
2026년 5월 11일, 공격자는 pull_request_target Pwn Request 패턴, GitHub Actions 캐시 포이즈닝, OIDC 토큰 메모리 추출이라는 세 가지 기법을 연쇄적으로 활용해 42개 @tanstack/* npm 패키지에 걸쳐 84개의 악성 버전을 게시했습니다. 피해는 Router/Start 계열에만 국한됐으며, Query·Table·Form·Store 등 다른 패키지는 안전합니다. StepSecurity의 연구원 Ashish Kurmi가 첫 게시 후 26분 만에 이를 탐지했고, 84개 버전 전체가 약 103분 만에 deprecated 처리됐습니다. 5월 11일에 영향받은 버전으로 npm install을 실행한 모든 사용자는 해당 호스트가 침해됐을 가능성을 전제하고 AWS, GitHub, npm, SSH 키 등 접근 가능한 모든 자격 증명을 교체해야 합니다.
Bun v1.3.14는 대규모 기능 릴리스입니다. 가장 주목할 추가 사항은 Bun.Image로, 모든 플랫폼에서 JPEG, PNG, WebP, GIF, BMP를 지원하고 macOS와 Windows에서는 HEIC, AVIF, TIFF까지 지원하는 내장 체이너블 이미지 처리 API입니다. 일반적인 리사이즈-변환 작업에서 sharp보다 1.2~1.38배 빠르며 메타데이터 읽기는 70배 빠릅니다. http3: true 플래그를 통한 HTTP/3(QUIC) 서버 지원(정적 라우트에서 509,135 req/s), fetch()의 실험적 HTTP/2 및 HTTP/3 클라이언트 지원, 격리 링커용 글로벌 가상 스토어(1,400개 패키지 픽스처에서 warm 설치를 841ms에서 115ms로 단축), POSIX 플랫폼의 fs.watch() 백엔드 재작성도 포함됩니다. 그 외 Node.js v24와 일치하는 process.execve(), Windows의 ConPTY를 통한 Bun.Terminal, 네이티브 using/await using 지원, Zig와 C++ 경계 간 크로스 언어 LTO, FreeBSD와 Android 공식 빌드, MongoDB 및 Mongoose 연결 풀에 영향을 미치는 TLS SSL_CTX 메모리 누수 수정도 포함됩니다.
Marvin Hagemeister의 연재 시리즈 13편은 oxlint와 oxfmt가 5만 개 이상의 디렉터리를 가진 코드베이스에서 6.1초가 걸리던 성능 병목을 진단합니다. Rust 파서는 초당 수백 메가바이트를 처리할 수 있음에도 느렸던 이유는 설정 파일 탐색이 디렉터리마다 .oxfmtrc.json, .oxfmtrc.jsonc, oxlint.config.ts 세 파일을 확인하는 .is_file() syscall을 150,000번 연속 호출했기 때문입니다. 이는 매번 유저 모드에서 커널 모드로의 컨텍스트 스위치를 유발합니다. 수정 방법은 stat 루프를 readdir 기반의 파일명 문자열 비교로 대체하고, 설정 탐색 단계를 파일 순회와 통합하는 것입니다. 결과: 실행 시간이 6.1초에서 2.8초로 50% 이상 단축됩니다.
Mini Shai-Hulud의 귀환: 자가 확산 공급망 공격이 TanStack npm 패키지 침해
TAG: 보안
StepSecurity의 심층 기술 분석에 따르면, Mini Shai-Hulud 웜은 사상 최초로 도난된 GitHub OIDC 토큰을 활용해 유효한 SLSA Build Level 3 증명이 첨부된 악성 npm 패키지를 배포했습니다. 2.3 MB의 난독화된 페이로드(router_init.js)는 obfuscator.io 문자열 테이블, PBKDF2-SHA256 파생 보조 암호, AES-256-GCM 암호화 서브 페이로드 등 세 겹의 난독화를 사용합니다. 설치 시 /proc/pid/mem을 통해 GitHub Actions 러너 프로세스 메모리를 스크레이핑해 마스킹된 시크릿까지 모두 탈취하고, 100개 이상의 경로에서 자격 증명을 수집하며, launchd 또는 systemd를 통한 OS 수준 지속성을 설치합니다. 데이터 유출은 Session Protocol CDN과 Dune 우주 용어로 명명된 브랜치를 가진 GitHub GraphQL API 데드드롭 커밋을 통해 이루어집니다.
ESLint v10.4.0의 주요 기능은 includeIgnoreFile()이 별도의 @eslint/compat 패키지 없이 eslint/config 엔트리포인트에 기본 내장됐다는 점입니다. 이 헬퍼는 .gitignore 스타일 파일 경로 배열과 gitignoreResolution 옵션을 받아, 각 파일의 위치를 기준으로 패턴을 해석해 모노레포 전반의 중첩된 .gitignore 파일을 올바르게 처리합니다. 이번 릴리스에서는 시퀀스 표현식이 검사되지 않던 for-direction 규칙의 버그 수정, @eslint/config-helpers 의존성의 ^0.6.0 업데이트, 배열이 아닌 deprecated 규칙 교체 처리도 포함됩니다.
TanStack AI가 AG-UI 0.0.52 프로토콜과의 완전한 양방향 호환성을 달성했으며, 이를 최초로 구현한 SDK가 됐습니다. 기존에 @tanstack/ai-client는 서버-클라이언트 방향의 AG-UI 이벤트를 이미 내보냈지만, 클라이언트-서버 요청 본문은 독자적인 { messages, data } 형식을 사용했습니다. 새 릴리스는 아웃바운드 요청을 threadId, runId, tools, context, forwardedProps 필드를 포함한 표준 AG-UI RunAgentInput 형식으로 전환해 CopilotKit, CrewAI 같은 AG-UI 클라이언트가 TanStack AI 엔드포인트를 호출하거나 그 반대도 가능하게 합니다. chatParamsFromRequest() 헬퍼는 RunAgentInputSchema를 기준으로 수신 요청을 검증하고 자동으로 400 오류 응답을 반환합니다. 세 가지 하위 호환성 브리지로 기존 코드도 계속 작동합니다.
Sumit Saha가 제작한 이 freeCodeCamp 풀 코스는 JavaScript 문법 암기를 넘어 엔진이 실제로 어떻게 동작하는지 엔지니어 수준의 멘탈 모델을 구축하려는 개발자를 위해 설계됐습니다. 커리큘럼은 스코프와 클로저, 실행 컨텍스트와 호이스팅, 프로토타입 체인과 객체지향 패턴, 이벤트 위임과 전파, 이벤트 루프 및 마이크로태스크 큐를 포함한 비동기 패턴, 메모이제이션, 브라우저와 Node.js 모두에서의 멀티스레딩을 다룹니다. 이해하기 어려운 버그를 만나는 주니어 개발자와 대규모 아키텍처 결정을 위한 탄탄한 개념적 토대를 원하는 시니어 엔지니어 모두를 대상으로 합니다.
2026년 5월 11일, 공격자는 pull_request_target Pwn Request 패턴, GitHub Actions 캐시 포이즈닝, OIDC 토큰 메모리 추출이라는 세 가지 기법을 연쇄적으로 활용해 42개 @tanstack/* npm 패키지에 걸쳐 84개의 악성 버전을 게시했습니다. 피해는 Router/Start 계열에만 국한됐으며, Query·Table·Form·Store 등 다른 패키지는 안전합니다. StepSecurity의 연구원 Ashish Kurmi가 첫 게시 후 26분 만에 이를 탐지했고, 84개 버전 전체가 약 103분 만에 deprecated 처리됐습니다. 5월 11일에 영향받은 버전으로 npm install을 실행한 모든 사용자는 해당 호스트가 침해됐을 가능성을 전제하고 AWS, GitHub, npm, SSH 키 등 접근 가능한 모든 자격 증명을 교체해야 합니다.
Sumit Saha가 제작한 이 freeCodeCamp 풀 코스는 JavaScript 문법 암기를 넘어 엔진이 실제로 어떻게 동작하는지 엔지니어 수준의 멘탈 모델을 구축하려는 개발자를 위해 설계됐습니다. 커리큘럼은 스코프와 클로저, 실행 컨텍스트와 호이스팅, 프로토타입 체인과 객체지향 패턴, 이벤트 위임과 전파, 이벤트 루프 및 마이크로태스크 큐를 포함한 비동기 패턴, 메모이제이션, 브라우저와 Node.js 모두에서의 멀티스레딩을 다룹니다. 이해하기 어려운 버그를 만나는 주니어 개발자와 대규모 아키텍처 결정을 위한 탄탄한 개념적 토대를 원하는 시니어 엔지니어 모두를 대상으로 합니다.
Bun v1.3.14는 대규모 기능 릴리스입니다. 가장 주목할 추가 사항은 Bun.Image로, 모든 플랫폼에서 JPEG, PNG, WebP, GIF, BMP를 지원하고 macOS와 Windows에서는 HEIC, AVIF, TIFF까지 지원하는 내장 체이너블 이미지 처리 API입니다. 일반적인 리사이즈-변환 작업에서 sharp보다 1.2~1.38배 빠르며 메타데이터 읽기는 70배 빠릅니다. http3: true 플래그를 통한 HTTP/3(QUIC) 서버 지원(정적 라우트에서 509,135 req/s), fetch()의 실험적 HTTP/2 및 HTTP/3 클라이언트 지원, 격리 링커용 글로벌 가상 스토어(1,400개 패키지 픽스처에서 warm 설치를 841ms에서 115ms로 단축), POSIX 플랫폼의 fs.watch() 백엔드 재작성도 포함됩니다. 그 외 Node.js v24와 일치하는 process.execve(), Windows의 ConPTY를 통한 Bun.Terminal, 네이티브 using/await using 지원, Zig와 C++ 경계 간 크로스 언어 LTO, FreeBSD와 Android 공식 빌드, MongoDB 및 Mongoose 연결 풀에 영향을 미치는 TLS SSL_CTX 메모리 누수 수정도 포함됩니다.
Marvin Hagemeister의 연재 시리즈 13편은 oxlint와 oxfmt가 5만 개 이상의 디렉터리를 가진 코드베이스에서 6.1초가 걸리던 성능 병목을 진단합니다. Rust 파서는 초당 수백 메가바이트를 처리할 수 있음에도 느렸던 이유는 설정 파일 탐색이 디렉터리마다 .oxfmtrc.json, .oxfmtrc.jsonc, oxlint.config.ts 세 파일을 확인하는 .is_file() syscall을 150,000번 연속 호출했기 때문입니다. 이는 매번 유저 모드에서 커널 모드로의 컨텍스트 스위치를 유발합니다. 수정 방법은 stat 루프를 readdir 기반의 파일명 문자열 비교로 대체하고, 설정 탐색 단계를 파일 순회와 통합하는 것입니다. 결과: 실행 시간이 6.1초에서 2.8초로 50% 이상 단축됩니다.
Mini Shai-Hulud의 귀환: 자가 확산 공급망 공격이 TanStack npm 패키지 침해
StepSecurity의 심층 기술 분석에 따르면, Mini Shai-Hulud 웜은 사상 최초로 도난된 GitHub OIDC 토큰을 활용해 유효한 SLSA Build Level 3 증명이 첨부된 악성 npm 패키지를 배포했습니다. 2.3 MB의 난독화된 페이로드(router_init.js)는 obfuscator.io 문자열 테이블, PBKDF2-SHA256 파생 보조 암호, AES-256-GCM 암호화 서브 페이로드 등 세 겹의 난독화를 사용합니다. 설치 시 /proc/pid/mem을 통해 GitHub Actions 러너 프로세스 메모리를 스크레이핑해 마스킹된 시크릿까지 모두 탈취하고, 100개 이상의 경로에서 자격 증명을 수집하며, launchd 또는 systemd를 통한 OS 수준 지속성을 설치합니다. 데이터 유출은 Session Protocol CDN과 Dune 우주 용어로 명명된 브랜치를 가진 GitHub GraphQL API 데드드롭 커밋을 통해 이루어집니다.
ESLint v10.4.0의 주요 기능은 includeIgnoreFile()이 별도의 @eslint/compat 패키지 없이 eslint/config 엔트리포인트에 기본 내장됐다는 점입니다. 이 헬퍼는 .gitignore 스타일 파일 경로 배열과 gitignoreResolution 옵션을 받아, 각 파일의 위치를 기준으로 패턴을 해석해 모노레포 전반의 중첩된 .gitignore 파일을 올바르게 처리합니다. 이번 릴리스에서는 시퀀스 표현식이 검사되지 않던 for-direction 규칙의 버그 수정, @eslint/config-helpers 의존성의 ^0.6.0 업데이트, 배열이 아닌 deprecated 규칙 교체 처리도 포함됩니다.
TanStack AI가 AG-UI 0.0.52 프로토콜과의 완전한 양방향 호환성을 달성했으며, 이를 최초로 구현한 SDK가 됐습니다. 기존에 @tanstack/ai-client는 서버-클라이언트 방향의 AG-UI 이벤트를 이미 내보냈지만, 클라이언트-서버 요청 본문은 독자적인 { messages, data } 형식을 사용했습니다. 새 릴리스는 아웃바운드 요청을 threadId, runId, tools, context, forwardedProps 필드를 포함한 표준 AG-UI RunAgentInput 형식으로 전환해 CopilotKit, CrewAI 같은 AG-UI 클라이언트가 TanStack AI 엔드포인트를 호출하거나 그 반대도 가능하게 합니다. chatParamsFromRequest() 헬퍼는 RunAgentInputSchema를 기준으로 수신 요청을 검증하고 자동으로 400 오류 응답을 반환합니다. 세 가지 하위 호환성 브리지로 기존 코드도 계속 작동합니다.
20주차의 핵심 사건은 5월 11일 42개 @tanstack/* npm 패키지를 강타한 'Mini Shai-Hulud'공급망 공격입니다. 공격자는 pull_request_target Pwn Request 패턴, GitHub Actions 캐시 포이즈닝, OIDC 토큰 메모리 추출을 연쇄적으로 활용해 84개의 악성 버전을 수분 만에 게시했습니다. Router/Start 계열만 피해를 입었으며, Query·Table·Form·Store 패키지는 안전합니다. StepSecurity의 Ashish Kurmi가 26분 만에 침해를 탐지했고, 84개 버전 전체가 103분 이내에 deprecated 처리됐습니다. 영향받은 버전으로 npm install을 실행한 사용자는 해당 호스트를 침해됐다고 간주하고 AWS, GitHub, npm, SSH 키 등 모든 자격 증명을 교체해야 합니다.
런타임 측면에서는 Bun v1.3.14가 대규모 기능 릴리스를 선보였습니다. 핵심은 Bun.Image로, 일반적인 리사이즈-변환 작업에서 sharp보다 1.2~1.38배 빠르고 메타데이터 읽기는 70배 빠른 내장 체이너블 이미지 처리 API입니다. 정적 라우트에서 509,135 req/s를 달성하는 실험적 HTTP/3(QUIC) 서버 지원, warm CI 설치 시간을 841ms에서 115ms로 단축하는 글로벌 가상 스토어, MongoDB 및 Mongoose 연결 풀에 영향을 미치던 TLS SSL_CTX 메모리 누수 수정도 포함됩니다.
보안 및 런타임 소식 외에도 TanStack AI가 AG-UI 0.0.52 프로토콜의 완전한 양방향 호환성을 달성해 양방향을 구현한 최초의 SDK가 됐습니다. ESLint v10.4.0은 includeIgnoreFile()을 @eslint/compat에서 core eslint/config 엔트리포인트로 통합했습니다. 또한 Marvin Hagemeister의 성능 시리즈에서 oxlint와 oxfmt의 150,000번 syscall 설정 탐색 병목을 진단해 stat 루프를 readdir 기반 파일명 비교로 교체함으로써 실행 시간을 6.1초에서 2.8초로 단축했습니다.
Key Takeaways
2026년 5월 11일 @tanstack/router 또는 @tanstack/start 버전으로 npm install을 실행했다면, CI 러너와 개발자 머신이 침해됐다고 가정하고 AWS, GitHub, npm, SSH 자격 증명을 즉시 교체해야 합니다.
Bun v1.3.14의 Bun.Image는 리사이즈-변환에서 sharp 대비 1.2~1.38배, 메타데이터 읽기에서 70배 빠르며, 실험적 HTTP/3 서버는 509K req/s를 달성해 Bun이 이미지 파이프라인에서 sharp의 실질적 대안이 됩니다.
ESLint v10.4.0은 includeIgnoreFile()을 core에 통합해 @eslint/compat 의존성이 불필요해졌으며, oxlint/oxfmt는 stat syscall 루프를 readdir 문자열 비교로 교체해 대규모 코드베이스 실행 시간을 50% 이상 단축했습니다.