Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ ESLint v10.0.0 RC.0リリース。
QUnit 3.0.0-rc1リリース。
Node.js 16以下のサポートとPhantomJSのサポートを削除。
ネイティブESM対応の追加、デフォルトで3秒のテストタイムアウトを有効化、`assert.expect()`から`assert.step()`を除外する変更。
HTML Reporterのデザイン刷新とパフォーマンス、各種警告をエラーへ変更なd
HTML Reporterのデザイン刷新とパフォーマンス、各種警告をエラーへ変更など


----
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,292 @@
---
title: "2026-01-17: Node.js 보안 업데이트, Chrome 144, Firefox 147, Electron 40"
author: "azu"
translator: rewrite0w0
layout: post
date: 2026-01-17T12:26:47.957Z
category: JSer
tags:
- Tools
- nodejs
- AI
- MCP
- security

---

JSer.info #761 - Node.js 20.20.0/22.22.0/24.13.0/25.3.0 보안 업데이트가 공개되었다.

- [Node.js — Tuesday, January 13, 2026 Security Releases](https://nodejs.org/en/blog/vulnerability/december-2025-security-releases)

8건의 취약성 수정되었다. 주요한 수정으로, `Buffer.alloc`이나 `TypedArray`가 초기화되어 있지 않은 메모리를 포함할 가능성이 있을 수 있는 Race Condition 수정(CVE-2025-55131), 심볼릭 링크를 사용해 Permission Model 바이패스 수정(CVE-2025-55130), 부정한 HTTP/2 HEADERS 프레임에서 서버가 크래시하는 문제 수정(CVE-2025-59465)이 포함된다.

또한, `async_hooks` 유효할 때에 스택 오버플로우 에러가 캐치되지 않는 문제도 수정됐다.
`async_hooks`는 Next.js이나 Datadog 등에서 APM 도구로 널리 이용되고 있다.
이 문제의 자세한 사항은, 다음 글에 해설.

- [Node.js — Mitigating Denial-of-Service Vulnerability from Unrecoverable Stack Space Exhaustion for React, Next.js, and APM Users](https://nodejs.org/en/blog/vulnerability/january-2026-dos-mitigation-async-hooks)

---

Chrome 144가 출시되었다.

- [Chrome 144 | Release notes | Chrome for Developers](https://developer.chrome.com/release-notes/144)

CSS의 `::search-text`에서 페이지 내 검색 스타일링 지원 `@scroll-state: scrolled` 지원, View Transitions의 `waitUntil()` 추가 등의 CSS 관련 기능이 되었다. 또한, `<geolocation>` 요소 추가, Temporal API 지원, `clipboardchange` 이벤트 추가 등 Web API 관련 업데이트도 포함된다.

---

Firefox 147가 출시되었다.

- [Firefox 147.0, See All New Features, Updates and Fixes](https://www.firefox.com/en-US/firefox/147.0/releasenotes/)

Apple Silicon 디바이스에서 WebGPU가 기본적으로 유효화되었다. 또한, Navigation API, CSS anchor positioning, CSS Module Scripts 지원이 추가되었다. `CompressionStream`/`DecompressionStream`가 Brotli 지원, Service Worker에서 `type: module` 지원된다.

- [Firefox 147 release notes for developers (Stable) - Mozilla | MDN](https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/147)

---

## 알림

2026년 1월 16일로 JSer.info은 15주년을 맞이했습니다.
다음 글에는, JSer.info 데이터를 사용한 과거 15년간 JavaScript 동향을 돌아본다.

- [JSer.info 15주년: 15년간 JavaScript 돌아보기 - JSer.info](https://jser.info/ko/2026/01/16/jser-info-15th/)


----

{% include inline-support.html %}

----

<h1 class="site-genre">헤드라인</h1>

----

## ESLint v10.0.0-rc.0 released - ESLint - Pluggable JavaScript Linter
[eslint.org/blog/2026/01/eslint-v10.0.0-rc.0-released/](https://eslint.org/blog/2026/01/eslint-v10.0.0-rc.0-released/ "ESLint v10.0.0-rc.0 released - ESLint - Pluggable JavaScript Linter")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">ESLint</span> <span class="jser-tag">ReleaseNote</span></p>

ESLint v10.0.0 RC.0 출시.
`RuleTester` 개선, `max-params` 규칙에 `countThis` 옵션 추가


----

## Release 3.0.0-rc1 · qunitjs/qunit
[github.com/qunitjs/qunit/releases/tag/3.0.0-rc1](https://github.com/qunitjs/qunit/releases/tag/3.0.0-rc1 "Release 3.0.0-rc1 · qunitjs/qunit")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">JavaScript</span> <span class="jser-tag">library</span> <span class="jser-tag">ReleaseNote</span> <span class="jser-tag">test</span></p>

QUnit 3.0.0-rc1 출시.
Node.js 16 이하 지원과 PhantomJS 지원 삭제.
네이티브 ESM 대응 추가, 기본적으로 3초 테스트 타임 아웃 유효, `assert.expect()`에서 `assert.step()`를 제거하는 변경.
HTML Reporter 디자인 업데이트와 성능 개선, 각종 경고 에러 변경


----

## Alpha release of moon v2 now available! | moonrepo
[moonrepo.dev/blog/moon-v2-alpha](https://moonrepo.dev/blog/moon-v2-alpha "Alpha release of moon v2 now available! | moonrepo")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">JavaScript</span> <span class="jser-tag">Tools</span> <span class="jser-tag">ReleaseNote</span></p>

moon v2 α 출시.
YAML 이외 설정 파일 지원, 툴체인을 Wasm 플러그인에서 실행하도록 변경


----

## Release @pandacss/dev@1.8.0 · chakra-ui/panda
[github.com/chakra-ui/panda/releases/tag/%40pandacss%2Fdev%401.8.0](https://github.com/chakra-ui/panda/releases/tag/%40pandacss%2Fdev%401.8.0 "Release @pandacss/dev@1.8.0 · chakra-ui/panda")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">css</span> <span class="jser-tag">library</span> <span class="jser-tag">ReleaseNote</span> <span class="jser-tag">MCP</span></p>

Panda CSS 1.8.0 출시.
`panda init-mcp`로 MCP서버 설정 가능

- [MCP Server | Panda CSS - Panda CSS](https://panda-css.com/docs/ai/mcp-server "MCP Server | Panda CSS - Panda CSS")

----

## Bun v1.3.6 | Bun Blog
[bun.com/blog/bun-v1.3.6](https://bun.com/blog/bun-v1.3.6 "Bun v1.3.6 | Bun Blog")

Bun v1.3.6 출시.
tar 파일을 다루는 `Bun.Archive` API, 주석 포함된 JSON를 다루는 `Bun.JSONC` API 추가.
`Bun.build()`에서 esbuild 호환의 metafile 옵션 추가.
WebSocket가 HTTP/HTTPS 프록시 지원, S3 Requester Pays 지원.
각종 성능 개선, Node.js 호환성 개선.


----

## Node.js — Tuesday, January 13, 2026 Security Releases
[nodejs.org/en/blog/vulnerability/december-2025-security-releases](https://nodejs.org/en/blog/vulnerability/december-2025-security-releases "Node.js — Tuesday, January 13, 2026 Security Releases")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">nodejs</span> <span class="jser-tag">security</span> <span class="jser-tag">ReleaseNote</span></p>

Node.js 20.20.0/22.22.0/24.13.0/25.3.0 보안 출시.
8건 취약점이 수정됨.
`Buffer.alloc`나 `TypedArray`가 초기화되어 있지 않은 메모리를 포함하는 가능성을 갖은 Race Condition 수정(CVE-2025-55131).
심볼릭링크를 사용한 Permission Model 바이패스 수정(CVE-2025-55130).
부정한 HTTP/2 HEADERS 프레임에서 서버가 클래시 문제를 수정(CVE-2025-59465).
또한, `async_hooks` 유효할 때에 스택오버플로우를 캐치되지 않은 문제, TLS 클라이언트 증명서 처리의 메모리 누수 수정.

- [Node.js — Mitigating Denial-of-Service Vulnerability from Unrecoverable Stack Space Exhaustion for React, Next.js, and APM Users](https://nodejs.org/en/blog/vulnerability/january-2026-dos-mitigation-async-hooks "Node.js — Mitigating Denial-of-Service Vulnerability from Unrecoverable Stack Space Exhaustion for React, Next.js, and APM Users")

----

## Chrome 144  |  Release notes  |  Chrome for Developers
[developer.chrome.com/release-notes/144](https://developer.chrome.com/release-notes/144 "Chrome 144  |  Release notes  |  Chrome for Developers")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">Chrome</span> <span class="jser-tag">ReleaseNote</span></p>

Chrome 144 출시.
CSS의 `::search-text`에서 페이지 내 검색 스타일링 지원, `@scroll-state: scrolled` 지원, View Transitions의 `waitUntil()` 추가.
`<geolocation>` 요소 추가, Temporal API 지원, `clipboardchange` 이벤트 추가.
WebGPU의 Uniform buffer 표준 레이아웃에서 16바이트 정렬 요구사항 삭제, `subgroup_id` 기능 추가.
Privacy Sandbox에서 구현된 기능 비권장

- [New in Chrome 144  |  Blog  |  Chrome for Developers](https://developer.chrome.com/blog/new-in-chrome-144 "New in Chrome 144  |  Blog  |  Chrome for Developers")

----

## Copilot SDK in technical preview - GitHub Changelog
[github.blog/changelog/2026-01-14-copilot-sdk-in-technical-preview/](https://github.blog/changelog/2026-01-14-copilot-sdk-in-technical-preview/ "Copilot SDK in technical preview - GitHub Changelog")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">AI</span> <span class="jser-tag">nodejs</span> <span class="jser-tag">python</span> <span class="jser-tag">golang</span> <span class="jser-tag">.net</span> <span class="jser-tag">library</span></p>

GitHub Copilot SDK가 테크니컬 프리뷰 공개.
Node.js/TypeScript, Python, Go, .NET의 4가지 언어로 이용 가능.
GitHub Copilot CLI에서 프로그램에서 접근가능한 SDK로, 멀티턴 대화나 커스텀 도구 정의, 클라이언트/세션의 라이프사이클 관리.


----

## Firefox 147.0, See All New Features, Updates and Fixes
[www.firefox.com/en-US/firefox/147.0/releasenotes/](https://www.firefox.com/en-US/firefox/147.0/releasenotes/ "Firefox 147.0, See All New Features, Updates and Fixes")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">Firefox</span> <span class="jser-tag">ReleaseNote</span></p>

Firefox 147 출시.
Apple Silicon 디바이스 WebGPU 유효.
Accept-Language 헤더의 `q` 값을 다른 브라우저에 맞춰 조절.
Navigation API, CSS anchor positioning 지원, CSS Module Scripts 지원.
`CompressionStream`/`DecompressionStream`가 Brotli 지원, Servie Worker에서 `type: module` 지원

- [Firefox 147 release notes for developers (Stable) - Mozilla | MDN](https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/147 "Firefox 147 release notes for developers (Stable) - Mozilla | MDN")

----

## Prettier 3.8: Support for Angular v21.1 · Prettier
[prettier.io/blog/2026/01/14/3.8.0](https://prettier.io/blog/2026/01/14/3.8.0 "Prettier 3.8: Support for Angular v21.1 · Prettier")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">JavaScript</span> <span class="jser-tag">Tools</span> <span class="jser-tag">ReleaseNote</span></p>

Prettier 3.8 출시.
Angular v21.1 새로운 구문 `@switch` 블록 내에서 연속 된 `@case` 스테이트먼트, 배열/객체/함수 호출하는 Spread 요소 지원.
Markdown 파일 내에 Angular 코드 블록(angular-ts, angular-html) 포맷 대응


----

## Electron 40.0.0 | Electron
[www.electronjs.org/blog/electron-40-0](https://www.electronjs.org/blog/electron-40-0 "Electron 40.0.0 | Electron")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">Electron</span> <span class="jser-tag">ReleaseNote</span></p>

Electron 40.0.0 출시.
Chromium 144/Node.js 24.11/V8 14.4으로 업그레이드.
렌더러 프로세스에서 클립보드 API의 직접 접근을 비권장으로に, macOS의 dSYM 파일이 zip에서 tar.xz 형식으로 변경.
`app.isHardwareAccelerationEnabled()` 메서드 추가, 오프 스크린 렌더링에서 HDR 컬러페이스 대응.


----

## Astro is joining Cloudflare
[blog.cloudflare.com/astro-joins-cloudflare/](https://blog.cloudflare.com/astro-joins-cloudflare/ "Astro is joining Cloudflare")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">astro</span> <span class="jser-tag">cloudflare</span> <span class="jser-tag">news</span></p>

Astro Technology Company가 Cloudflare에 인수.
Astro은 오픈소스에 MIT 라이센스 유지.
또한 Astro 6에는, Vite Environments 기반 개발 서버에서 로컬 개발할 때에 Cloudflare Workers 런타임(workerd)으로 실행가능하도록 할 예정.


----
<h1 class="site-genre">읽을거리</h1>

----

## Node.js — Mitigating Denial-of-Service Vulnerability from Unrecoverable Stack Space Exhaustion for React, Next.js, and APM Users
[nodejs.org/en/blog/vulnerability/january-2026-dos-mitigation-async-hooks](https://nodejs.org/en/blog/vulnerability/january-2026-dos-mitigation-async-hooks "Node.js — Mitigating Denial-of-Service Vulnerability from Unrecoverable Stack Space Exhaustion for React, Next.js, and APM Users")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">nodejs</span> <span class="jser-tag">security</span> <span class="jser-tag">article</span></p>

Node.js의 `async_hooks`에 스택오버 플로우 문제에 대하여.
`AsyncLocalStorage`은 Next.js나 Datadog 등 많은 프레임워크나 도구에서 이용중이라, 영향 범위가 넓음.
어떤 구조에서 스택 영역 고갈 문제가 발생하는지에 대해 해설됨


----

## Streaming JSON in just 200 lines of JavaScript
[krasimirtsonev.com/blog/article/streaming-json-in-just-200-lines-of-javascript](https://krasimirtsonev.com/blog/article/streaming-json-in-just-200-lines-of-javascript "Streaming JSON in just 200 lines of JavaScript")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">JavaScript</span> <span class="jser-tag">article</span> <span class="jser-tag">JSON</span></p>

JSON를 스트리밍하는 방법에 대한 글.
서버측에서 비동기 데이터(Promise)를 플레이스홀더로 변환하고, NDJSON 형식과 `Transfer-Encoding: chunked` 사용한 데이터를 단계적으로 보냄.
클라이언트 측에서는 Fetch API으로 스트림을 읽고, 플레이스홀더를 실제 데이터로 갈아 끼우는 구현에 대하여.


----

## Introducing: React Best Practices - Vercel
[vercel.com/blog/introducing-react-best-practices](https://vercel.com/blog/introducing-react-best-practices "Introducing: React Best Practices - Vercel")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">AI</span> <span class="jser-tag">article</span> <span class="jser-tag">React</span> <span class="jser-tag">JavaScript</span></p>

Vercel가 10년 이상 React・Next.js 최적화 지식을 정리한 `react-best-practices` 레포지토리 공개.
AI 에이전트나 LLM 대상으로 최적화된 규칙 모음집으로, 40개 이상 규칙이 8 카테고리로 분류.
워터폴 배제, 번들 크기 절감, 리렌더링 최적화 패턴을, CRITICAL에서 LOW까지 우선 순위를 붙여 정리함.

- [agent-skills/skills/react-best-practices at main · vercel-labs/agent-skills](https://github.com/vercel-labs/agent-skills/tree/main/skills/react-best-practices "agent-skills/skills/react-best-practices at main · vercel-labs/agent-skills")

----
<h1 class="site-genre">웹사이트, 서비스, 문서</h1>

----

## VibiumDev/vibium: Browser automation for AI agents and humans
[github.com/VibiumDev/vibium](https://github.com/VibiumDev/vibium "VibiumDev/vibium: Browser automation for AI agents and humans")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">Selenium</span> <span class="jser-tag">MCP</span> <span class="jser-tag">Tools</span></p>

Selenium BiDi 기반에 브라우저 조작하는 MCP 서버


----

## coder/ghostty-web: Ghostty for the web with xterm.js API compatibility
[github.com/coder/ghostty-web?tab&#x3D;readme-ov-file](https://github.com/coder/ghostty-web?tab=readme-ov-file "coder/ghostty-web: Ghostty for the web with xterm.js API compatibility")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">WebAssembly</span> <span class="jser-tag">library</span> <span class="jser-tag">terminal</span> <span class="jser-tag">JavaScript</span></p>

브라우저 상에 동작하는 터미널 에뮬레이터 라이브러리.
`libghostty`를 Wasm에 컴파일을 이용, xterm.js 호환 API 제공.
xterm.js과 비교해서 복잡한 문제 체계의 정확한 Grapheme 처리, XTPUSHSGR/XTPOPSGR 지원.


----
<h1 class="site-genre">소프트웨어, 도구, 라이브러리</h1>

----

## MotiaDev/motia: Multi-Language Backend Framework that unifies APIs, background jobs, queues, workflows, streams, and AI agents with a single core primitive with built-in observability and state management.
[github.com/MotiaDev/motia](https://github.com/MotiaDev/motia "MotiaDev/motia: Multi-Language Backend Framework that unifies APIs, background jobs, queues, workflows, streams, and AI agents with a single core primitive with built-in observability and state management.")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">nodejs</span> <span class="jser-tag">library</span></p>

Step 단위에서 처리를 작성하기 위한 백엔드 프레임워크.
Step은 여러 JavaScript나 Python 등에서 여러 언어로 작성 가능


----

## vercel-labs/agent-browser: Browser automation CLI for AI agents
[github.com/vercel-labs/agent-browser](https://github.com/vercel-labs/agent-browser "vercel-labs/agent-browser: Browser automation CLI for AI agents")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">browser</span> <span class="jser-tag">console</span> <span class="jser-tag">Tools</span> <span class="jser-tag">AI</span></p>

AI 에이전트 대상 헤드리스 브라우저 자동화 CLI.
Rust의 CLI와 Node.js 데몬(Playwright 이용)으로 구성, 클라이언트・데몬 구성으로 동작함.
접근성 트리에서 AI 대상 최적화된 스냅샷을 얻는 기능이나, ARIA 로컬이나 라벨에서 요소 검출, WebSocket에서 브라우저 뷰포트의 스트리밍을 제공.


----