npm 우회 2FA 토큰의 관리 권한 제한: CI 자동화가 확인할 것
npm bypass-2FA granular access token의 민감한 관리 권한이 제한됐다. 영향을 받는 CI 작업과 trusted publishing 전환 포인트를 정리한다.
GitHub는 2026년 7월 31일부터 npm의 ‘2단계 인증 우회 granular access token’이 계정·조직·패키지의 민감한 관리 작업을 수행하지 못하도록 제한했다. 자동화 토큰이 유출됐을 때 공격자가 새 토큰을 만들거나 유지관리자를 추가해 권한을 넓히는 경로를 막는 변화다.
무엇이 바뀌었나
이제 bypass-2FA 옵션을 켠 npm granular access token1으로 토큰 생성·삭제, 패키지 공개 범위와 유지관리자 변경, trusted publishing 설정 변경, 조직·팀 구성원과 패키지 권한 관리를 할 수 없다. 이런 작업은 웹이나 CLI에서 대화형 2단계 인증을 거쳐야 한다.
영향 범위는 npm granular access token에 한정된다. GitHub personal access token, GitHub App token, GitHub Actions의 GITHUB_TOKEN에는 이번 변경이 적용되지 않는다. 공식 공지는 2027년 1월을 목표로 bypass-2FA 토큰의 직접 게시 권한도 없앨 계획이라고 밝혔다.
개발자에게 왜 중요한가
기존 우회 토큰은 자동 게시에 편리했지만, 탈취되면 공격자가 유지관리자나 토큰을 추가해 접근을 지속할 여지가 있었다. 관리 작업을 사람의 2단계 인증 뒤로 옮기면 유출된 장기 토큰 하나가 계정 장악으로 확대되는 범위를 줄일 수 있다.
이번 공지는 특정 취약점이나 CVE 패치가 아니라 레지스트리 권한 정책 변경이다. 공격 발생 여부를 단정하는 내용도 아니다. 핵심은 현재 자동화가 어떤 토큰으로 어떤 관리 명령을 실행하는지 확인하는 데 있다.
기존 프로젝트 영향
패키지 설치와 읽기 전용 접근, GitHub Actions의 일반 GITHUB_TOKEN 사용은 직접 영향이 없다. 반면 CI에서 npm token create, npm access, 팀·유지관리자 변경, trusted publishing 설정을 수행했다면 즉시 실패할 수 있다. 현재 직접 게시가 계속 동작하더라도 2027년 1월 예정 변경 전 마이그레이션이 필요하다.
적용·업데이트 전 확인 사항
- 조직과 개인 계정의 granular access token 목록에서 bypass-2FA 사용 여부와 만료일을 확인한다.
- CI 로그와 스크립트에서 토큰·접근권한·유지관리자·trusted publishing 설정을 바꾸는 명령을 찾는다.
- 자동 게시를 npm trusted publishing의 OIDC2 방식이나 staged publishing으로 옮길 계획을 세운다.
- 관리 작업은 최소 권한 계정으로 분리하고, 대화형 2단계 인증이 필요한 운영 절차를 문서화한다.
- 토큰을 로그나 저장소에 출력하지 않고, 교체 후 이전 토큰을 폐기한다.
출처
- GitHub Changelog — Restricting npm bypass-2FA granular access tokens
- npm Docs — About two-factor authentication
- npm Docs — Trusted publishing
1 Granular access token: 패키지·조직·작업별로 범위와 만료일을 좁혀 발급하는 npm 접근 토큰.
2 OIDC(OpenID Connect): CI가 장기 비밀 토큰 대신 실행 시점의 신원 증명으로 임시 권한을 받는 표준.