🔍 CVE-2026-48161

0.0
CVSS Score
UNKNOWN
2026-08-10
2026-10-23 19:10
✅ 완료

🇰🇷 한글 설명

react18-use 패키지의 기본 브랜치에 2026-05-19 01:07:01부터 15:20:43 사이 악성 커밋(7b79148d1495a2505f9277da295a98cf176f4496)이 포함되었습니다. 이 커밋은 npm install 시 postinstall 스크립트를 통해 공격자 서버에서 JavaScript 페이로드를 받아 TLS 검증 없이 실행했으며, 개발자 워크스테이션을 대상으로 CI 및 클라우드 환경은 제외했습니다. 해당 커밋은 force-push로 제거되었으나 로컬 클론, 포크, 직접 SHA URL에는 여전히 남아 있을 수 있습니다.

💡 쉬운 설명

개발자가 이 패키지 저장소를 설치할 때 숨겨진 악성 코드가 몰래 실행되어 컴퓨터를 공격자가 제어할 수 있게 될 수 있습니다. 해당 기간에 설치한 개발 PC라면 침해된 것으로 간주하고 비밀번호와 토큰을 모두 교체해야 합니다.

🇺🇸 원문 (English)

react18-use is a React 19 use hook shim. Between 2026-05-19 01:07:01 and 2026-05-19 15:20:43, the default branch contained malicious commits 7b79148d1495a2505f9277da295a98cf176f4496 through 7b79148d1495a2505f9277da295a98cf176f4496 that executed remote attacker-controlled code on developer machines during `npm install`. The commits were removed by force-push, but local clones, forks, and direct-SHA URLs may still contain them, and `npm install` against an affected checkout will still execute the code today. The package was not published to npm. `src/install.js` was added and wired into the `postinstall` script. It fetched a JavaScript payload from an attacker-controlled HTTPS endpoint (configurable via an environment variable), disabled TLS verification, and evaluated the response as code with `require` available. Execution was deliberately skipped on CI and cloud/serverless environments, targeting developer workstations. The second-stage payload was attacker-hosted and cannot be reconstructed. Assume full compromise of anything reachable from a Node process with the user's permissions. Those who ran `npm install` against an affected checkout on a developer machine on or after 2026-05-19 01:07:01 should treat the machine as compromised, rotate every credential the machine could reach, audit account activity since 2026-05-19 01:07:01, and clean local clones.

📍 영향받는 시스템

react18-use 저장소의 2026-05-19 01:07:01~15:20:43 기간 중 악성 커밋(7b79148d...)이 포함된 체크아웃을 npm install한 개발자 PC (npm 레지스트리 배포본은 영향 없음)

⚔️ 공격 벡터

postinstall 스크립트가 공격자 HTTPS 엔드포인트에서 JavaScript를 가져와 TLS 검증 없이 require 권한으로 eval 실행

🛡️ 대응 방법

해당 체크아웃 및 로컬 클론을 삭제하고, 영향받은 PC의 모든 자격증명을 교체하며, 기간 이후 계정 활동을 감사하고, 악성 커밋이 없는 정상 버전을 사용하세요.

🔧 검증 코드

FOUND가 출력되면 악성 커밋 객체가 로컬 저장소에 존재하므로 해당 클론을 삭제하고 침해 여부를 점검해야 하며, NOT_FOUND이면 해당 커밋이 없습니다.

Shell / Script
cd react18-use 2>/dev/null && git cat-file -t 7b79148d1495a2505f9277da295a98cf176f4496 2>/dev/null && echo FOUND || echo NOT_FOUND

💻 영향받는 소프트웨어

Oracle Java SE