프로그래밍 앱으로 스위치 2에 진입하는 경로 열려
온라인에서 pepsipu라는 이름으로 알려진 보안 연구원 새미 하지하미드(Sammy Hajhamid)가 펌웨어 23.0.1을 실행하는 닌텐도 스위치 2의 소프트웨어 취약점을 시연했다. 그는 개조된 마리오 카트 월드 레이스를 통해 취약점으로 가능한 작업을 보여줬다. 하드웨어 모드칩을 설치하지 않았는데도 시나모롤, 하츠네 미쿠, 피터 그리핀 등이 게임에 등장했다.
목차
ns2jb라는 도구는 오리지널 스위치용 프로그래밍 앱의 결함과 콘솔 파일시스템 서비스의 취약점을 결합한다. 하지하미드는 이 도구가 여러 시스템 서비스의 권한으로 네이티브 코드를 실행할 수 있게 해 비공식 앱 실행, 게임 개조, 콘솔에서 저장 데이터를 복사하는 등의 가능성을 연다고 밝혔다.
핵심적인 제약은 간단하다. 콘솔을 재시작하면 접근 권한이 사라진다. 사용자는 재부팅할 때마다 취약점을 다시 실행해야 하며, 현재로서는 설치 상태가 유지되는 대체 시스템 소프트웨어인 영구 커스텀 펌웨어를 제공하지 않는다.
하지하미드의 기술 설명은 2026년 10월 18일자로 작성됐고, 공개 시연은 10월 22일에 이뤄졌다. 그는 당시 최신 펌웨어가 23.0.1이라고 밝혔다. 보도에 따르면 연구에는 약 2주가 걸렸으며, 개발자의 상당한 작업과 함께 오픈AI의 코덱스 코딩 도구가 사용됐다.
시연을 다룬 보도 당시 닌텐도는 공개적으로 입장을 밝히지 않았다. 진입점으로 사용된 프로그래밍 앱 스마일베이직 4(SmileBASIC 4)는 일부 지역 e숍에서 삭제된 것으로 전해져, 취약점을 조사하려는 사람들에게 필요한 소프트웨어를 구하는 일이 당면 과제로 떠올랐다.
마리오 카트 시연이 보여준 것
가장 눈에 띄는 결과는 마리오 카트 월드에서 나왔다. 익숙한 레이서들 사이에 닌텐도 게임 외부의 캐릭터들이 등장했다. 시연에는 시나모롤, 하츠네 미쿠, 피터 그리핀, 빨간 앵그리버드인 RED가 포함됐다. 개조된 게임에 마인크래프트의 스티브도 등장한 것으로 설명됐다.
더 중요한 변화는 레이스 화면 아래에서 일어난다. 네이티브 코드 실행은 게임이나 프로그래밍 앱이 일반적으로 허용하는 명령에 머물지 않고, 콘솔의 프로세서에서 직접 명령을 실행한다는 뜻이다. 해당 코드에 부여된 권한에 따라 기기의 어느 부분에 접근할 수 있는지가 결정된다.
캘리포니아공과대학(Caltech) 학부생으로 소개된 보안 연구원 하지하미드는 이 접근 권한으로 가능한 용도를 다음과 같이 설명했다.
이를 통해 홈브루를 실행하고, 스위치 2 게임을 리버스 엔지니어링하고 개조하며, 스위치에서 저장 파일을 백업하고, MMIO를 통해 스위치 2의 주변기기 대부분에 접근할 수 있습니다.
홈브루는 콘솔 제조사가 승인한 배포 시스템 밖에서 제작된 비공식 소프트웨어를 뜻한다. 리버스 엔지니어링은 기존 소프트웨어의 작동 방식을 살펴보는 작업이다. 메모리 맵 입출력(memory mapped input/output)의 약자인 MMIO는 지정된 메모리 주소를 통해 소프트웨어가 하드웨어와 통신하는 방식이다.
이런 기능은 집단마다 서로 다른 이유로 중요하다. 플레이어는 저장 파일을 별도로 복사해 두고 싶을 수 있고, 모더는 캐릭터를 바꾸고 싶을 수 있으며, 연구원은 시스템 서비스를 살펴보고 싶을 수 있다. 각각 일반 게임에는 보통 허용되지 않는 접근 권한이 필요하다.
오래된 스위치 앱이 진입점이 된 과정
스마일베이직 4는 사용자가 오리지널 닌텐도 스위치에서 프로그램을 작성하고 실행할 수 있게 해준다. 스위치 2는 하위 호환 기능을 통해 이 소프트웨어를 실행할 수 있다. 하위 호환은 이전 콘솔용 게임을 후속 기기에서 사용할 수 있게 하는 기능이다. 하지하미드는 이 연결고리를 이용해 구형 소프트웨어를 통해 신형 기기에 진입하는 경로를 확보했다.
첫 번째 결함은 스마일베이직 인터프리터에서 발견된 정수 오버플로였다. 인터프리터는 프로그래밍 명령을 읽고 실행하는 구성 요소다. 정수 오버플로는 계산 결과가 컴퓨터가 숫자를 저장하기 위해 확보한 범위를 넘어설 때 발생하며, 그 결과 값이 다른 값으로 되돌아갈 수 있다.
이 사례에서는 배열, 즉 저장된 값의 목록에 대한 연산을 확인하는 계산 결과가 음수로 되돌아갈 수 있었다. 그러면 거부됐어야 할 연산이 검사에서 통과했다. 이후 메모리 복사 과정에서 데이터가 지정된 영역 밖으로 옮겨졌다.
하지하미드는 이 동작을 이용해 프로그램이 배열의 일부를 문자열로 처리하도록 했다고 설명했다. 이 혼동으로 프로그램이 의도한 경계를 넘어 메모리를 읽고 변경할 수 있는 방법이 생겼다. 초기 연구는 오리지널 스위치에서 수행한 뒤 스위치 2 공격 체인의 일부로 활용할 수 있었다.
스마일베이직은 과거 닌텐도 3DS의 홈브루 취약점에도 사용된 적이 있다. 이번 사례에서 특히 유용했던 점은 구형 앱이 신형 콘솔을 겨냥한 공격의 첫 단계를 제공할 수 있었다는 것이다.
두 번째 결함으로 파일시스템 서비스에 접근
스마일베이직 내부에서의 접근은 시작에 불과했다. 하지하미드는 이어 저장 작업을 처리하는 내장 파일시스템 서비스인 fs를 겨냥했다. 프로그래밍 앱의 제한을 넘어가려면 더 넓은 권한을 가진 서비스에 접근해야 했다.
두 번째 취약점은 경로 정규화와 관련됐다. 파일 경로는 저장장치에서 항목을 찾을 위치를 소프트웨어에 알려준다. 정규화는 시스템이 경로를 사용하기 전에 표준 형식으로 정리하는 과정이다. 하지하미드는 이 서비스가 경로를 너무 작은 임시 버퍼에 복사하는 사례를 설명했다.
버퍼는 메모리에서 용도를 정해 둔 영역이다. 데이터가 경계를 넘쳐 흐르면 주변 정보가 덮어써질 수 있다. 하지하미드는 이 오버플로를 이용해 저장소 캐시 객체에 영향을 주고, 파일시스템 서비스의 메모리를 읽고 쓸 방법을 만들었다.
그는 이어 스마일베이직의 연결에 기록된 프로세스 식별 정보를 변경해 더 폭넓은 파일시스템 권한을 얻었다고 설명했다. 이를 통해 내부 저장소와 일반 시스템 모듈의 코드를 복사해 살펴볼 수 있었다. 시스템 모듈(sysmodule)은 운영체제의 작업을 수행하는 서비스다.
하지하미드에 따르면 ns2jb를 이용하면 일반 시스템 모듈과 내장 파일시스템 모듈의 권한으로 네이티브 코드를 실행할 수 있다. 따라서 이 공격 체인은 서로 다른 두 단계로 이뤄진다. 스마일베이직을 통한 최초 진입과 더 넓은 접근 권한을 주는 두 번째 취약점이다.
코덱스가 도움을 줬지만 연구에는 2주 걸려
하지하미드는 연구 과정에서 오픈AI의 코덱스를 사용했다. AI 에이전트가 콘솔에 컨트롤러 입력을 보내고 영상 출력을 확인할 수 있도록 맞춤형 환경을 구축했다. 젯케이비엠(JetKVM) 장치는 USB로 컨트롤러 입력을 연결하고 HDMI로 영상을 캡처했다.
블루투스 전등 스위치 장치는 독특하지만 실용적인 역할을 했다. 콘솔이 충돌한 뒤 전원 버튼을 물리적으로 눌러주는 장치였다. 이런 메모리 연구에서는 반복적인 충돌이 일어날 수 있어 하드웨어를 재시작하는 것도 테스트 과정의 일부였다.
하지하미드의 설명에 따르면 스마일베이직에서 유용한 정수 오버플로를 찾아낸 것은 코덱스였다. 연구에는 시스템 서비스를 조사하고, 코드를 살펴보며, 파일시스템 서비스에 접근하는 공격 체인을 개발하는 작업도 포함됐다. 하지하미드는 직접 해당 서비스를 조사하는 동안 AI 에이전트들은 다른 공격 대상을 탐색했다고 설명했다.
개발자는 AI에게 콘솔 탈옥을 시키면 된다는 식의 농담 섞인 설명이 실제 작업 과정을 나타낸 것은 아니라고 밝혔다. 다른 경로로 코드 실행을 확보하려던 초기 시도는 성공하지 못했고, 탈옥에는 약 2주간 상당한 노력이 필요했다.
하지하미드는 코덱스가 하루 만에 마리오 카트 월드 개조를 만들었다고 말했다. 이는 눈에 보이는 캐릭터 변경이 그보다 어려운 접근 권한 확보 작업 뒤에 이뤄졌다는 점을 보여준다.
브라우저를 통한 진입 경로를 포기한 이유
초기 시도에서 겨냥한 브라우저 엔진 웹킷(WebKit)은 복잡한 콘텐츠를 처리하고 보안 연구의 대상이 된 사례가 많아 초기 공격 대상으로 꼽혔다. 하지하미드는 기기가 네트워크에 접속할 때 나타날 수 있는 페이지인 맞춤형 와이파이 캡티브 포털을 통해 웹킷에 접근하는 방식을 시험했다.
이 접근은 여러 보호 기능에 부딪혔다. 실행 전용 메모리는 실행 명령을 읽지 못하게 해 유용한 코드 시퀀스를 찾기 어렵게 만든다. 포인터 인증은 특정 주소가 사용되기 전에 이를 확인하고, 제어 흐름 무결성은 일부 실행 전환이 허용된 경로를 따르는지 검사한다.
초기 브라우저 연구로 제한적인 수준의 제어는 가능했지만, 의도한 탈옥에 필요한 시스템 서비스와의 임의 통신까지 구현하지는 못했다. 이에 하지하미드는 브라우저 연구를 별도로 계속하면서 스마일베이직 경로를 추진했다.
그는 파일시스템 취약점을 웹킷에 맞게 적용하는 방안을 후속 연구의 가능성으로 언급했다. 이를 통해 다른 진입 경로를 만들 수 있지만, 해당 버전의 공개 일정은 제시되지 않았다. 또 취약점을 오리지널 스위치에서도 시험했지만 아직 해당 콘솔용으로 패키징하지는 않았다고 밝혔다.
사용자에게 필요한 것과 재부팅 후 초기화되는 것
설명된 진입 경로는 스마일베이직 4 버전 4.4.9를 사용하며, 미국 e숍 가격은 약 25달러로 알려졌다. 다른 모더는 이 타이틀이 반드시 필요한 것은 아닐 수 있다고 밝혔지만, 시연된 공격 체인은 프로그래밍 앱에서 시작한다. 다른 경로에 필요한 실제 조건은 아직 확정되지 않았다.
소프트웨어를 구하려는 사람들이 무료 일본어 체험판에도 관심을 보였다. 그러나 이 체험판은 취약점과 호환되지 않는 것으로 전해졌다. 따라서 이 방법에서 체험판과 유료 버전의 효용은 서로 다른 것으로 보고됐다.
ns2jb는 테더드 방식으로 설명됐다. 이 경우 콘솔을 켤 때마다 게임에서 취약점을 다시 실행해야 한다는 뜻이다. 재시작하면 메모리에서 활성화된 취약점이 지워지고, 영향을 받은 프로세스는 정상 상태로 돌아간다.
소프트웨어 취약점과 영구 커스텀 펌웨어는 서로 다른 방식의 접근을 제공한다. ns2jb는 세션이 활성화된 동안 실행할 수 있는 항목을 바꾼다. 영구 커스텀 펌웨어를 구현하려면 재시작 후에도 계속 작동하는 추가 메커니즘이 필요하다.
현재 안내된 방법은 일반 플레이어가 따라 하기에도 어렵다고 설명됐다. 따라서 당장의 대상은 비공식 앱을 설치하는 간단한 메뉴를 원하는 모든 콘솔 소유자가 아니라 연구원과 기술적으로 숙련된 모더다.
닌텐도의 대응과 공개 일정
시연 직후 스마일베이직 4의 이용 가능 여부가 관심사로 떠올랐다. 일부 사용자는 업데이트로 진입 경로가 막힐 것을 우려해 앱을 구매한 뒤 콘솔을 인터넷에서 연결 해제한 것으로 전해졌다. 발표 당시 나온 보도에는 앱이 삭제될 예정이라는 설명과 일부 지역 스토어에서 이미 사라졌다는 설명이 각각 담겼다.
해당 보도들에서 닌텐도는 공식 설명을 내놓거나 패치를 발표하지 않았다. 삭제 보도가 나온 지역과 범위도 확인되지 않았다. 앱 판매를 중단하면 새로 구매하는 사람을 막을 수 있지만, 취약한 코드를 해결하려면 시스템 또는 소프트웨어 업데이트라는 별도의 방법이 필요하다.
발표와 기술 설명에 나온 날짜는 다음과 같다.
- 2026년 10월 18일: 하지하미드가 기술 설명을 작성하고 펌웨어 23.0.1용 소프트웨어 취약점 ns2jb를 소개했다.
- 2026년 10월 22일: 하지하미드가 마리오 카트 월드 시연을 공개하고 탈옥을 발표했다.
- 10월 22일 발표 전후: 사용자들이 스마일베이직 4 구매를 논의했고, 일부 지역 e숍에서 앱이 삭제될 가능성 또는 이미 삭제됐다는 보도가 나왔다.
스위치 두 세대 모두에 영향을 미치는 별도 취약점을 공개한 개발자 제지네(Geziné)는 pepsipu와 이야기를 나눴으며 도구가 실제 취약점에 기반한 것으로 보인다고 밝혔다. 제지네는 pepsipu가 자신이 개발한 별도의 사용자 모드 취약점도 알고 있었다고 전했다.
하지하미드는 자신이 아는 한 ns2jb가 이 유형의 스위치 2 취약점 가운데 첫 사례라고 설명했다. 이 도구는 더 심층적인 소프트웨어 연구와 게임 개조를 위한 실질적인 경로를 제공하지만, 지속성과 사용 편의성에는 명확한 한계가 있다.
핵심 내용
- ns2jb는 하드웨어 모드칩 없이 스위치 2 펌웨어 23.0.1에서 작동하는 것으로 알려졌다.
- 시연된 공격 체인은 스마일베이직의 메모리 결함과 파일시스템 서비스의 취약점을 결합한다.
- pepsipu로 알려진 새미 하지하미드는 약 2주간의 연구에 오픈AI의 코덱스를 사용했다.
- 마리오 카트 월드 시연에는 시나모롤, 하츠네 미쿠, 피터 그리핀 등 개조된 캐릭터가 등장했다.
- 재부팅하면 취약점이 사라지며, 현재로서는 영구 커스텀 펌웨어를 제공하지 않는다.
- 설명된 진입점은 스마일베이직 4 버전 4.4.9를 사용한다. 일부 지역 스토어에서 삭제됐다는 보도가 나왔지만, 닌텐도는 공개적으로 입장을 밝히지 않았다.






