🔍 CVE-2025-47153

6.5
CVSS Score
MEDIUM
2025-05-01
2026-06-17 09:27
✅ 완료

🇰🇷 한글 설명

32비트 시스템에서 libuv는 _FILE_OFFSET_BITS=64로 빌드되지만 Node.js는 32비트 기본값으로 빌드되어 off_t 크기 불일치가 발생합니다. 이로 인해 메모리 범위를 벗어난 접근(out-of-bounds)이 발생하며, 특히 Debian의 nodejs_20.19.0+dfsg-2_i386.deb 패키지에서 확인되었습니다. 공식 Node.js 웹사이트에서는 Linux i386 프리빌드 바이너리를 제공하지 않으므로 Debian 등의 배포판 패키지만 영향을 받습니다.

💡 쉬운 설명

32비트 컴퓨터에서 Node.js의 일부 구성요소들이 파일 크기를 다르게 해석하는 문제입니다. 이 불일치로 인해 프로그램이 메모리에 잘못 접근하여 충돌하거나 예기치 않은 동작을 할 수 있습니다.

🇺🇸 원문 (English)

Certain build processes for libuv and Node.js for 32-bit systems, such as for the nodejs binary package through nodejs_20.19.0+dfsg-2_i386.deb for Debian GNU/Linux, have an inconsistent off_t size (e.g., building on i386 Debian always uses _FILE_OFFSET_BITS=64 for the libuv dynamic library, but uses the _FILE_OFFSET_BITS global system default of 32 for nodejs), leading to out-of-bounds access. NOTE: this is not a problem in the Node.js software itself. In particular, the Node.js website's download page does not offer prebuilt Node.js for Linux on i386.

📍 영향받는 시스템

Debian GNU/Linux의 nodejs_20.19.0+dfsg-2_i386.deb 및 유사하게 빌드된 32비트 i386/i686 Node.js 패키지

⚔️ 공격 벡터

off_t 크기 불일치를 악용하여 libuv와 Node.js 간 메모리 인터페이스에서 out-of-bounds 접근 유발

🛡️ 대응 방법

32비트 시스템에서는 배포판 i386 패키지 대신 64비트 시스템으로 업그레이드하거나, 일관된 _FILE_OFFSET_BITS 설정으로 소스에서 재컴파일

🔧 검증 코드

명령 실행 후 결과가 출력되면 i386 아키텍처의 취약한 Node.js가 설치된 상태이고, 아무 출력이 없으면 32비트 패키지가 설치되지 않은 것입니다.

Shell / Script
dpkg -l 2>/dev/null | grep nodejs | grep i386

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:L/A:L

💻 영향받는 소프트웨어

Node.js