프론트엔드 뉴스레터
#24
이번 이슈 한눈에
- Node.js 26이 LTS로 전환돼 2029년 4월까지 업데이트를 받아요.
- macOS 27.2에서도 기본 Git의 인증서 신뢰 문제가 남았고, 수동 우회 조치가 되돌아갔어요.
- Chrome 157에 텍스트 선택과 접근성을 유지하는 HTML-in-Canvas가 들어갑니다.
- 방치된 외부 스크립트의 만료 도메인이 악성코드 배포에 쓰였어요.
- 01
nodejs.org
Node.js 26, 2029년 4월까지 지원하는 LTS로 전환됐어요
원문 읽기 ↗Node.js 26.13.0부터 26 계열이 Active LTS로 전환됐어요. 업데이트는 2029년 4월 말까지 제공됩니다. 이번 릴리스는 LTS 표시를 위한 메타데이터만 바꿨고, 26.12.1과 기능 차이는 없어요.
- Node.js 24는 maintenance 단계로 넘어갔고, 22는 2027년 4월까지 지원됩니다. 이전 LTS에서 26으로 옮길 때 Linux 공식 바이너리는 배포판에 따라
libatomic을 별도로 설치해야 할 수 있어요.
- Node.js 24는 maintenance 단계로 넘어갔고, 22는 2027년 4월까지 지원됩니다. 이전 LTS에서 26으로 옮길 때 Linux 공식 바이너리는 배포판에 따라
- 02
news.hada.io
macOS 27.2에서도 기본 Git이 침해된 인증서를 신뢰해요
원문 읽기 ↗macOS에 기본 제공되는
git·curl·python3는 10월 28일 기준 인증기관 eMudhra의 침해된 인증서를 여전히 신뢰해요. 네트워크 경로를 가로챌 수 있는 공격자는 HTTPS로 연결한 Git 저장소의clone·pull응답을 변조하거나 GitHub 토큰 같은 인증 정보를 훔칠 수 있습니다. 10월 26일 배포된 macOS 27.2는 이 문제를 해결하지 않았고, 사용자가 인증서를 수동으로 제거한 우회 조치도 되돌렸어요. Safari와 Apple 네트워킹 프레임워크를 쓰는 앱은 이미 해당 인증서를 차단합니다.- 영향받는 명령줄 도구가 읽는
/etc/ssl/cert.pem에서 관련 루트 인증서를 제거하는 임시 대응이 있어요. 다만 이 파일을 쓰는 도구에서는 침해되지 않은 중간 인증서를 쓰더라도 제거한 루트로 이어지는 정상 사이트의 인증서 검증이 실패할 수 있습니다. Apple의 수정 업데이트가 나오기 전까지는 macOS 업데이트 후 제거 상태를 다시 확인하고, 인증서가 복원됐다면 우회 조치를 다시 적용해야 합니다.
- 영향받는 명령줄 도구가 읽는
- 03
developer.chrome.com
Chrome 157, 캔버스 안에서도 HTML의 선택·입력·접근성을 유지해요
원문 읽기 ↗Chrome 157에 HTML 요소를 2D·WebGL·WebGPU 캔버스 안에 그리는 HTML-in-Canvas가 들어갑니다. 픽셀로 그린 글자와 달리 텍스트 선택, 폼 입력, 페이지 내 검색, 스크린 리더 접근이 유지돼요. 캔버스 위에 HTML을 따로 겹쳐 놓고 위치를 맞추던 UI도 장면 안에 직접 배치할 수 있습니다.
- Chrome 157의 정식 배포는 11월 3일 예정이며, 현재 지원은 Chrome에 한정돼요. 다른 브라우저에서는 기능 지원을 확인하고 별도 HTML UI 같은 fallback을 제공해야 합니다.
- 04
blog.report-uri.com
방치된 외부 스크립트가 iPhone 공격의 유입 경로가 됐어요
원문 읽기 ↗공격자가 분석·광고 서비스의 만료 도메인을 사들여, 그 주소의 스크립트를 여전히 불러오는 웹사이트에 악성코드를 공급했어요. Report URI와 iVerify의 조사에서는 일부 iPhone 방문자를 취약한 iOS를 공격하는 페이지로 보내는 경로도 확인됐습니다. 사이트 코드를 바꾸지 않아도 외부 도메인의 소유자가 바뀌면서 공격 코드가 실행된 겁니다.
- 공격 스크립트는 자동화된 브라우저나 보안 스캐너에는 빈 응답을 주기도 했어요. 조사팀은 더 이상 쓰지 않는 서비스의 스크립트 태그를 제거하고, 실제로 로드되는 스크립트와 도메인을 점검하라고 안내합니다.
- 05
webkit.org
Safari 27.2, select의 선택된 텍스트를 직접 꾸밀 수 있어요
원문 읽기 ↗Safari 27.2는 Customizable Select에
::field-content를 추가했어요.<selectedcontent>를 따로 넣지 않아도 선택 상자에 표시되는 텍스트를 꾸밀 수 있습니다. 높이가 다른 항목을 열이나 행에 채우는 Grid Lanes에서는 배치할 위치를 고를 때 허용할 높이 차이를 정하는flow-tolerance가fit-tolerance로 이름을 바꿨어요. 이전 이름도 당분간 deprecated 별칭으로 동작합니다. - 06
github.com
OpenTelemetry JS 3.0, 브라우저·Node.js 추적 SDK를 통합했어요
원문 읽기 ↗요청 흐름과 성능 등을 기록하는 OpenTelemetry의 JS SDK 3.0은 브라우저·Node.js·공통 추적 패키지를
@opentelemetry/sdk-trace로 합쳤어요. 기존WebTracerProvider의register()가 맡던 추적 환경 등록도 직접 처리해야 합니다. ESM·CommonJS 빌드를 함께 제공하지만,exports로 공개 경로를 제한해 패키지 내부 파일을 직접 import하던 코드는 깨집니다.- 브라우저 번들러는
package.json의imports·exports를 지원해야 해요. Node.js 최소 버전은 22.15.0이며,@opentelemetry/api와@opentelemetry/semantic-conventions는 기존 지원 범위를 유지합니다.
- 브라우저 번들러는
- 07
vlt.io
npm 설치가 잠시 실패하는 원인으로 병렬 패키지 배포를 짚었어요
원문 읽기 ↗monorepo의 여러 패키지를 동시에 배포하면, 새 패키지가 요구하는 의존성 버전이 아직 npm에 도착하지 않아 설치가 실패할 수 있어요. npm은 배포할 때 의존성의 존재를 검증하지 않고, 최근 추가된 검사 과정도 각 버전이 공개되는 시차를 늘린다고 합니다. 패키지 레지스트리 업체 vlt는 이를 줄이려고 의존성이 준비될 때까지 패키지 공개를 최대 한 시간 보류하도록 자사 복제 시스템을 바꿨어요.