한국정보기술진흥원한국인공지능올림피아드 (KOAI) 2026 개최안내

깃허브, npm v12서 '설치 스크립트 자동 실행' 기본 차단한다...깃·원격 URL 의존성도 기본 차단해 공급망 보안 강화

깃허브가 npm v12에서 의존성 설치 스크립트의 자동 실행을 기본 차단한다.
[한국정보기술신문] 깃허브(GitHub)가 자바스크립트 패키지 관리 도구 'npm'의 다음 주요 버전인 v12에서 패키지를 설치할 때 작동하던 여러 자동 기능을 기본값으로 막기로 했다. 깃허브는 6월 9일(현지시간) 변경 안내(체인지로그)를 통해, 그동안 'npm install' 명령이 별도 확인 없이 자동으로 처리하던 동작들을 v12부터는 이용자가 직접 허용해야만 작동하도록 바꾼다고 밝혔다. 핵심은 의존성(다른 사람이 만든 외부 코드 묶음)에 들어 있는 설치 스크립트가 자동으로 실행되지 않게 하는 것이다. 깃허브는 이번 변경이 모두 보안과 관련된 것이라며, 악성 코드가 끼어들 수 있는 통로를 좁히기 위한 조치라고 설명했다. npm v12는 오는 7월 출시될 것으로 예상된다.
npm은 전 세계 개발자들이 자바스크립트 프로그램을 만들 때 쓰는 코드 묶음을 내려받고 관리하는 도구다. 여기서 패키지란 다른 개발자가 미리 만들어 공개해 둔 코드 꾸러미를 말하며, 의존성은 내 프로그램이 작동하기 위해 끌어다 쓰는 이런 외부 패키지를 가리킨다. 'npm install'은 프로그램에 필요한 의존성을 한꺼번에 내려받아 설치하는 명령으로, 거의 모든 자바스크립트 개발 과정에서 가장 기본적으로 쓰인다. 이번에 바뀌는 기본값은 이미 현재 버전인 npm 11.16.0 이상에서 경고 형태로 미리 제공되고 있어, 개발자는 v12로 올리기 전에 자신의 환경을 점검해 둘 수 있다.
스크린샷 2026-06-10 오후 6.05.14.png
깃허브 블로그 제공

가장 큰 변화...설치 스크립트 자동 실행 차단

세 가지 변경 가운데 가장 큰 것은 설치 스크립트를 자동으로 실행하지 않게 한 점이다. 설치 스크립트란 패키지를 내려받아 설치하는 과정에서 함께 실행되도록 패키지 안에 미리 심어 둔 명령을 말한다. 지금까지 npm은 설치 직전·도중·직후에 정해진 스크립트('preinstall', 'install', 'postinstall')를 자동으로 실행해 왔다. v12에서는 이용자가 명시적으로 허용한 패키지가 아니면 이런 스크립트가 실행되지 않는다.
이 변경에는 'node-gyp'를 이용한 자동 빌드도 포함된다. node-gyp는 패키지가 컴퓨터에 맞춰 일부 코드를 직접 만들어 내도록 돕는 도구로, 패키지에 별도 스크립트가 없더라도 npm이 알아서 빌드를 돌려 주던 경우가 있었는데 이 또한 기본적으로 막힌다. 또 깃(Git)이나 파일·링크 방식으로 끌어온 의존성에서 자동 실행되던 'prepare' 스크립트도 같은 방식으로 차단된다.
깃허브는 차단될 항목을 미리 확인하는 방법도 함께 안내했다. 'npm approve-scripts --allow-scripts-pending' 명령을 실행하면 어떤 스크립트가 막힐지 미리 볼 수 있다. 이후 신뢰하는 패키지는 'npm approve-scripts'로 허용하고, 그렇지 않은 것은 'npm deny-scripts'로 막으면 된다. 이렇게 정한 허용 목록은 프로그램의 설정 파일인 'package.json'에 기록되며, 협업하는 동료들과 공유되도록 저장소에 함께 올려 두어야 한다고 깃허브는 설명했다.

깃·원격 URL 의존성도 기본 차단

나머지 두 변경은 외부에서 코드를 끌어오는 경로를 좁히는 데 초점이 맞춰져 있다. 먼저 v12부터는 깃 저장소에서 의존성을 가져오는 기능이 기본적으로 꺼진다. 이를 다시 쓰려면 '--allow-git'이라는 선택지를 직접 붙여야 한다. 깃허브는 이 조치가 코드가 몰래 실행되는 한 가지 통로를 막는다고 설명했다. 깃 의존성 안에 들어 있는 설정 파일('.npmrc')이 컴퓨터가 사용하는 깃 실행 파일 자체를 바꿔치기할 수 있었는데, 스크립트 실행을 막는 기존 선택지('--ignore-scripts')를 쓰더라도 이 경로는 닫히지 않았기 때문이다. 이 변경은 지난 2월 18일 한 차례 예고됐으며, npm 11.10.0 이상에서 이미 쓸 수 있다.
원격 주소에서 의존성을 가져오는 기능도 마찬가지로 기본 차단된다. 인터넷 주소(URL)에 올려 둔 압축 파일 형태의 패키지가 여기에 해당하며, 직접 끌어오든 다른 패키지를 통해 간접적으로 딸려 오든 모두 막힌다. 이 기능을 쓰려면 '--allow-remote'를 붙여 허용해야 하며, 해당 선택지는 npm 11.15.0 이상에서 제공된다. 다만 내 컴퓨터 안의 파일이나 폴더에서 패키지를 가져오는 관련 기능('--allow-file', '--allow-directory')은 이번 v12에서 기본값을 바꾸지 않는다.

왜 바꾸나...'공급망 공격' 차단이 목적

이번 조치는 이른바 '소프트웨어 공급망 공격'을 막기 위한 것이다. 공급망 공격이란 내가 직접 만든 코드가 아니라, 내가 가져다 쓰는 외부 패키지에 악성 코드를 몰래 심어 두는 수법을 말한다. 오늘날 프로그램 하나는 수백, 수천 개의 외부 패키지에 기대어 만들어지는 경우가 많은데, 그중 단 하나에라도 악성 코드가 섞여 들면 그것을 가져다 쓴 수많은 개발자와 이용자가 한꺼번에 피해를 볼 수 있다.
특히 설치 스크립트는 공격자들이 즐겨 노리는 통로로 지목돼 왔다. 패키지를 설치하기만 해도 정해진 명령이 자동으로 실행되는 만큼, 여기에 악성 명령을 끼워 넣으면 이용자가 코드를 들여다보기도 전에 피해가 발생할 수 있기 때문이다. npm은 전 세계에서 가장 널리 쓰이는 패키지 저장소인 만큼, 인기 있는 패키지가 한 번 공격당하면 그 여파가 빠르게 번지는 구조다. 그동안 보안 업계에서는 패키지 설치 단계에서 코드가 자동 실행되는 방식 자체가 위험하다는 지적이 꾸준히 제기돼 왔다.
깃허브가 v12의 변경을 모두 보안 목적으로 못 박고, '자동으로 실행되던 동작'을 '이용자가 직접 허용해야 실행되는 동작'으로 바꾼 것도 이런 위험을 줄이기 위한 것으로 풀이된다. 다만 기존 방식에 맞춰 작업 환경을 꾸려 온 개발자라면, 설치 과정에서 꼭 필요했던 스크립트까지 막혀 한동안 추가 점검이 필요할 수 있다. 깃허브가 v12 출시에 앞서 현재 버전부터 경고를 띄워 미리 점검하도록 한 것도 이런 혼란을 줄이려는 조치로 보인다.

어떻게 대비하나...11.16.0으로 올려 경고 점검

깃허브는 개발자가 v12 출시 전에 대비할 수 있는 방법도 안내했다. 먼저 npm을 11.16.0 이상으로 올린 뒤 평소처럼 설치를 한 차례 실행하고, 그 과정에서 나타나는 경고를 살펴보면 된다. 이어 'npm approve-scripts --allow-scripts-pending' 명령으로 어떤 패키지가 스크립트를 갖고 있는지 확인하고, 그중 믿을 수 있는 것만 허용한 다음 갱신된 package.json 파일을 저장소에 올려 두면 된다.
이렇게 해 두면 v12로 올린 뒤에도 미리 허용해 둔 스크립트만 계속 실행되고, 허용하지 않은 스크립트는 더 이상 작동하지 않는다. 깃허브는 'npm approve-scripts'와 'npm deny-scripts' 명령, 그리고 'npx'나 전역 설치에 적용되는 설정과 관련한 자세한 내용을 공식 문서에서 확인할 수 있다고 밝혔다. 아울러 이번 변경에 대한 의견과 질문은 커뮤니티 토론 게시판에서 받고 있다고 덧붙였다.
한국정보기술신문 정보보안분과 안서진 기자 news@kitpa.org

함께 읽으면 좋은 기사

컴퓨터 비전 라이브러리 'OpenCV 5' 정식 출시...DNN 엔진 새로 짜 ONNX 80% 넘기고 LLM·VLM까지 직접 구동

컴퓨터 비전 라이브러리 'OpenCV 5' 정식 출시...DNN 엔진 새로 짜 ONNX 80% 넘기고 LLM·VLM까지 직접 구동

인공지능 · 정보기술 4
신경망을 반도체 회로로 직접 새긴다...FPGA에 'KAN' 올려 나노초급 추론·실시간 학습 구현...연구진 "기존 KAN-FPGA보다 2700배 빨라"

신경망을 반도체 회로로 직접 새긴다...FPGA에 'KAN' 올려 나노초급 추론·실시간 학습 구현...연구진 "기존 KAN-FPGA보다 2700배 빨라"

인공지능 · 정보통신 4
독일 법원 "구글 'AI 개요'는 구글 자신의 말"...허위 답변에 직접 책임 묻는다...뮌헨지법, 검색엔진 면책 논리는 AI에 적용 안 돼

독일 법원 "구글 'AI 개요'는 구글 자신의 말"...허위 답변에 직접 책임 묻는다...뮌헨지법, 검색엔진 면책 논리는 AI에 적용 안 돼

인공지능 5
구글, '6월 안드로이드 드롭'서 개인화·안전 기능 대거 공개...사칭 전화 경고하고 사진으로 옷장 만들며 아이폰과 파일 주고받는다

구글, '6월 안드로이드 드롭'서 개인화·안전 기능 대거 공개...사칭 전화 경고하고 사진으로 옷장 만들며 아이폰과 파일 주고받는다

정보기술 · 인공지능 4
한국 정부 'MOIS SSL 루트인증서', 모질라 파이어폭스 신뢰목록 등재 추진...행안부·한국지역정보개발원 2년째 심사, 공개검토 문턱서 모질라 '과거 정부 PKI 이력' 추가 소명 요구...등재 반대 의견도

한국 정부 'MOIS SSL 루트인증서', 모질라 파이어폭스 신뢰목록 등재 추진...행안부·한국지역정보개발원 2년째 심사, 공개검토 문턱서 모질라 '과거 정부 PKI 이력' 추가 소명 요구...등재 반대 의견도

정보보안 4
법무부-경찰청, 스토킹 가해자 '실시간 위치추적·대응 시스템' 구축 착수...법무부 위험경보를 112가 자동 접수·지령, 경찰은 이동 경로 보며 출동

법무부-경찰청, 스토킹 가해자 '실시간 위치추적·대응 시스템' 구축 착수...법무부 위험경보를 112가 자동 접수·지령, 경찰은 이동 경로 보며 출동

유관기관 2
기술평론가 에드 지트론 "AI 산업, 멈추는 순간 무너진다"...2030년까지 연 매출 2조달러 넘겨야 거액 투자 정당화되지만 '둔화 신호'

기술평론가 에드 지트론 "AI 산업, 멈추는 순간 무너진다"...2030년까지 연 매출 2조달러 넘겨야 거액 투자 정당화되지만 '둔화 신호'

인공지능 · 오피니언 4
깃허브, npm v12서 '설치 스크립트 자동 실행' 기본 차단한다...깃·원격 URL 의존성도 기본 차단해 공급망 보안 강화

깃허브, npm v12서 '설치 스크립트 자동 실행' 기본 차단한다...깃·원격 URL 의존성도 기본 차단해 공급망 보안 강화

정보보안 4
앤트로픽, 역대 최고 성능 AI 모델 '클로드 페이블 5' 일반 공개...안전장치 더해 6월 9일 출시, 위험 질의는 오푸스 4.8이 대신 응답

앤트로픽, 역대 최고 성능 AI 모델 '클로드 페이블 5' 일반 공개...안전장치 더해 6월 9일 출시, 위험 질의는 오푸스 4.8이 대신 응답

인공지능 4
서버 한 대로 동시 접속 1만 개, 'C10K 문제'란 무엇인가...epoll과 이벤트 구동 구조가 해법으로, 이제는 C10M 시대

서버 한 대로 동시 접속 1만 개, 'C10K 문제'란 무엇인가...epoll과 이벤트 구동 구조가 해법으로, 이제는 C10M 시대

정보기술 · 정보보안 4
한국정보기술진흥원, 'AI 올림피아드' 6월 13일 온라인 필기시험...중·고등부 나눠 시행, 결과는 15일 발표

한국정보기술진흥원, 'AI 올림피아드' 6월 13일 온라인 필기시험...중·고등부 나눠 시행, 결과는 15일 발표

교육 · 인공지능 2
애플, WWDC26서 차세대 애플 인텔리전스·시리 AI 종합 공개...자녀 보호 강화하고 6개 운영체제 전반 손질...앱 실행·사진·에어드롭 속도 개선, 개발자 시험 시작·올가을 일반 제공

애플, WWDC26서 차세대 애플 인텔리전스·시리 AI 종합 공개...자녀 보호 강화하고 6개 운영체제 전반 손질...앱 실행·사진·에어드롭 속도 개선, 개발자 시험 시작·올가을 일반 제공

인공지능 · 정보기술 4