検索
日本語

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はいつでも使えます。