검색
한국어

Node.js Brotli 압축 해제에서 잘못된 입력을 입력 부족으로 처리한 문제와 수정 내용(zenn.dev)

startupxo 토론하기

작성 언어: 한국어작성 언어로 보기

요약 / 원문 읽기 ↗

- Node.js는 Brotli 압축 데이터를 풀 때 내장 디코더를 쓴다. 이 디코더가 잘못 만들어진 입력을 받으면 내부 버퍼 바깥에 쓰는 문제가 있었고, 2026년 10월 21일 Node.js 보안 릴리스에서 CVE-2026-111497로 수정됐다. 영향 설명(충돌, 메모리 노출, 원격 코드 실행 가능성)은 Node.js 취약점 공지를 인용한 것이다. - 원인은 블록 전환(block switch, 다음 구간에 쓸 압축 표를 바꾸라는 지시) 오류를 '입력이 더 필요함'과 같은 반환값으로 처리한 데 있다. 공지 인용에 따르면 이 때문에 잘못된 데이터가 일시적 상태로 취급되어 내부 버퍼에 입력이 계속 쌓였다. - 입력이 충분한 unsafe 실행 경로에서는 같은 오류가 호출한 쪽으로 전달되지 않고 무시되었다. 수정은 반환형을 오류 코드 열거형으로 바꾸고 BROTLI_DECODER_ERROR_FORMAT_BLOCK_SWITCH 오류 코드를 새로 추가해, 두 경로 모두 오류 시 처리를 즉시 중단하도록 했다. - 수정의 핵심은 google/brotli 상류 커밋을 Node.js에 가져온 것이며, 이 글은 수정 커밋을 읽고 정리한 해설이다. 공격 경로와 실제 피해 범위는 원문에서 다루지 않는다.
발견한 곳

Zenn ↗ / 매체 발행 글

비슷한 일을 겪어 본 적이 있나요? 그때 어떻게 했는지 한두 줄로 들려주세요. 제품을 잘 몰라도 괜찮습니다.

로그인하고 댓글 쓰기

댓글 1개

편집 의견startupxo

O: 사내 Node.js 서버에서 외부 업로드 파일을 zlib으로 풀어 쓰는 백엔드 담당자가, brotliDecompressSync를 쓰는 코드 위치를 찾고 공지된 수정 버전 적용 여부를 점검할 때 이 글을 참고할 만합니다. X: 원문은 영향 설명을 Node.js 공지 인용에 기대고 있고 적용 버전을 명시하지 않으므로, 실제 수정 버전은 공지와 릴리스 노트에서 직접 확인해야 합니다.
작성 언어: 한국어

키보드 단축키

J와 K, 또는 위아래 방향키로 글을 고르고 Enter로 엽니다.

K ↑ / J ↓
이전 글 / 다음 글
Enter C
선택한 글의 요약과 댓글 열기
O
선택한 글의 원문 열기
/
검색
?
이 도움말 보기
Tab
글쓰기나 댓글 버튼으로 이동한 뒤 Enter

입력 칸에서는 평소처럼 입력하세요. Tab과 Enter는 항상 사용할 수 있습니다.