Ứng dụng lập trình mở đường xâm nhập Switch 2
Nhà nghiên cứu bảo mật Sammy Hajhamid, được biết đến trên mạng với tên pepsipu, đã trình diễn một lỗ hổng phần mềm trên Nintendo Switch 2 chạy firmware 23.0.1, dùng các trận đua Mario Kart World đã chỉnh sửa để cho thấy quyền truy cập này có thể làm gì. Những nhân vật như Cinnamoroll, Hatsune Miku và Peter Griffin xuất hiện trong game mà không cần lắp modchip phần cứng.
Nội dung
- Ứng dụng lập trình mở đường xâm nhập Switch 2
- Màn trình diễn Mario Kart cho thấy điều gì
- Ứng dụng Switch đời cũ trở thành điểm xâm nhập
- Lỗ hổng thứ hai tiếp cận dịch vụ hệ thống tệp
- Codex hỗ trợ, nhưng quá trình nghiên cứu kéo dài hai tuần
- Vì sao nhóm nghiên cứu từ bỏ con đường trình duyệt
- Người dùng cần gì và điều gì bị xóa sau khi khởi động lại
- Phản hồi của Nintendo và mốc thời gian công bố
- Điểm chính
Công cụ có tên ns2jb kết hợp một điểm yếu trong ứng dụng lập trình dành cho Switch đời đầu với lỗ hổng trong dịch vụ hệ thống tệp của máy chơi game. Hajhamid cho biết công cụ cho phép thực thi mã gốc với quyền của một số dịch vụ hệ thống, mở ra khả năng chạy ứng dụng không chính thức, chỉnh sửa game và sao chép dữ liệu lưu trò chơi khỏi máy.
Hạn chế chính rất rõ ràng: quyền truy cập biến mất khi khởi động lại máy. Người dùng phải kích hoạt lại lỗ hổng sau mỗi lần khởi động lại; hiện công cụ chưa cung cấp firmware tùy chỉnh bền vững, tức phiên bản thay thế của phần mềm hệ thống vẫn được cài đặt sau khi máy khởi động lại.
Bài viết kỹ thuật của Hajhamid đề ngày 18 tháng 10 năm 2026, còn bản trình diễn công khai được đăng ngày 22 tháng 10. Anh xác định 23.0.1 là firmware mới nhất vào thời điểm đó. Quá trình nghiên cứu được cho là kéo dài khoảng hai tuần, có sử dụng công cụ lập trình Codex của OpenAI, bên cạnh phần lớn công việc do nhà phát triển thực hiện.
Nintendo chưa đưa ra bình luận công khai vào thời điểm các bài viết về màn trình diễn được đăng tải. SmileBASIC 4, ứng dụng lập trình được dùng làm điểm xâm nhập, được cho là đã bị gỡ khỏi một số cửa hàng eShop theo khu vực, khiến việc tiếp cận phần mềm cần thiết trở thành mối quan tâm trước mắt với những người muốn tìm hiểu lỗ hổng.
Màn trình diễn Mario Kart cho thấy điều gì
Mario Kart World mang lại kết quả dễ thấy nhất: các tay đua quen thuộc có thêm những nhân vật ngoài thế giới game của Nintendo. Màn trình diễn có Cinnamoroll, Hatsune Miku, Peter Griffin và RED, chú chim Angry Bird màu đỏ. Steve trong Minecraft cũng xuất hiện trong các mô tả về phiên bản game đã chỉnh sửa.
Thay đổi quan trọng hơn diễn ra bên dưới cuộc đua. Thực thi mã gốc nghĩa là chạy lệnh trực tiếp trên bộ xử lý của máy chơi game, thay vì chỉ sử dụng các lệnh mà game hoặc ứng dụng lập trình thường cho phép. Quyền gắn với đoạn mã đó quyết định nó có thể truy cập những phần nào của máy.
Hajhamid, nhà nghiên cứu bảo mật được xác định là sinh viên đại học Caltech, mô tả những mục đích dự kiến của quyền truy cập này:
Điều này cho phép chúng tôi chạy phần mềm homebrew, dịch ngược và chỉnh sửa game Switch 2, sao lưu tệp lưu trò chơi khỏi Switch, cũng như truy cập hầu hết thiết bị ngoại vi của Switch 2 thông qua MMIO.
Homebrew là phần mềm không chính thức được phát triển bên ngoài hệ thống phân phối được nhà sản xuất máy chơi game phê duyệt. Dịch ngược là việc kiểm tra cách phần mềm hiện có hoạt động. MMIO, viết tắt của memory mapped input/output (vào/ra ánh xạ bộ nhớ), là cách phần mềm giao tiếp với phần cứng thông qua các địa chỉ bộ nhớ được chỉ định.
Những khả năng này có ý nghĩa khác nhau với từng nhóm. Người chơi có thể muốn có một bản sao riêng của tệp lưu trò chơi, người chỉnh sửa game có thể muốn thay nhân vật, còn nhà nghiên cứu có thể muốn kiểm tra một dịch vụ hệ thống. Mỗi việc đều cần quyền truy cập mà game thông thường không được cấp.
Ứng dụng Switch đời cũ trở thành điểm xâm nhập
SmileBASIC 4 cho phép người dùng viết và chạy chương trình trên Nintendo Switch đời đầu. Switch 2 có thể chạy phần mềm đó nhờ khả năng tương thích ngược, tính năng cho phép game của máy chơi game thế hệ trước hoạt động trên phiên bản kế nhiệm. Nhờ đó, Hajhamid có thể tiếp cận máy mới thông qua phần mềm cũ.
Điểm yếu đầu tiên là lỗi tràn số nguyên trong trình thông dịch SmileBASIC, thành phần đọc và thực thi các lệnh lập trình. Tràn số nguyên xảy ra khi phép tính vượt quá phạm vi máy tính dành cho một con số, khiến kết quả quay vòng thành một giá trị khác.
Trong trường hợp này, phép tính dùng để kiểm tra thao tác trên một mảng, tức danh sách các giá trị được lưu trữ, có thể quay vòng thành số âm. Khi đó, bước kiểm tra chấp nhận một thao tác đáng lẽ phải bị từ chối. Sau đó, thao tác sao chép bộ nhớ đưa dữ liệu ra ngoài vùng đã định.
Hajhamid mô tả cách tận dụng hành vi này để khiến chương trình coi một phần của mảng là chuỗi ký tự. Sự nhầm lẫn đó tạo ra cách đọc và thay đổi bộ nhớ vượt quá giới hạn dự kiến của chương trình. Nghiên cứu ban đầu có thể được tiến hành trên Switch đời đầu trước khi trở thành một phần trong chuỗi khai thác Switch 2.
SmileBASIC từng được dùng trong các vụ khai thác homebrew trên Nintendo 3DS. Trong trường hợp này, giá trị đặc biệt của ứng dụng là khả năng dùng một ứng dụng cũ làm bước đầu tiên trong cuộc tấn công nhắm vào máy chơi game mới hơn.
Lỗ hổng thứ hai tiếp cận dịch vụ hệ thống tệp
Quyền truy cập bên trong SmileBASIC mới chỉ là bước khởi đầu. Sau đó, Hajhamid nhắm vào dịch vụ hệ thống tệp tích hợp sẵn, gọi là fs, vốn xử lý các thao tác lưu trữ. Cần tiếp cận một dịch vụ có quyền rộng hơn để vượt qua những hạn chế của ứng dụng lập trình.
Lỗ hổng thứ hai liên quan đến việc chuẩn hóa đường dẫn. Đường dẫn tệp cho phần mềm biết vị trí của một mục trong bộ nhớ; chuẩn hóa là quá trình đưa đường dẫn đó về dạng tiêu chuẩn trước khi hệ thống sử dụng. Hajhamid mô tả trường hợp dịch vụ sao chép đường dẫn vào một vùng đệm tạm thời quá nhỏ.
Vùng đệm là một khu vực bộ nhớ được dành riêng. Khi dữ liệu tràn qua ranh giới, nó có thể ghi đè thông tin ở gần đó. Hajhamid dùng lỗi tràn này để tác động đến một đối tượng bộ nhớ đệm lưu trữ, qua đó tạo cách đọc và ghi bộ nhớ trong dịch vụ hệ thống tệp.
Sau đó, anh mô tả việc thay đổi danh tính tiến trình được ghi nhận cho kết nối của SmileBASIC, qua đó có được quyền hệ thống tệp rộng hơn. Điều này cho phép anh sao chép bộ nhớ trong và mã của các mô-đun hệ thống thông thường để kiểm tra. Mô-đun hệ thống, hay sysmodule, là các dịch vụ thực hiện nhiệm vụ cho hệ điều hành.
Theo Hajhamid, các khả năng của ns2jb sau đó bao gồm chạy mã gốc dưới dạng mô-đun hệ thống thông thường và mô-đun hệ thống tệp tích hợp sẵn. Vì vậy, chuỗi khai thác có hai giai đoạn riêng biệt: bước mở đầu thông qua SmileBASIC và lỗ hổng thứ hai cấp quyền truy cập rộng hơn.
Codex hỗ trợ, nhưng quá trình nghiên cứu kéo dài hai tuần
Hajhamid sử dụng Codex của OpenAI trong quá trình nghiên cứu, với một thiết lập tùy chỉnh cho phép các tác nhân AI gửi lệnh điều khiển đến máy chơi game và kiểm tra hình ảnh đầu ra. Thiết bị JetKVM kết nối đầu vào điều khiển qua USB và thu hình qua HDMI.
Một cơ chế công tắc đèn Bluetooth đảm nhiệm một phần bất thường nhưng thiết thực của thiết lập: nhấn nút nguồn máy chơi game bằng thao tác vật lý sau khi máy gặp sự cố. Trong dạng nghiên cứu bộ nhớ này, máy có thể thường xuyên bị treo, vì vậy khởi động lại phần cứng là một phần của quy trình thử nghiệm.
Theo lời kể của Hajhamid, Codex đã tìm ra lỗi tràn số nguyên hữu ích trong SmileBASIC. Công việc còn bao gồm điều tra các dịch vụ hệ thống, kiểm tra mã và phát triển chuỗi khai thác để tiếp cận dịch vụ hệ thống tệp. Hajhamid cho biết anh trực tiếp điều tra dịch vụ này trong khi các tác nhân AI thăm dò những mục tiêu khác.
Nhà phát triển làm rõ rằng chú thích đùa về việc chỉ cần bảo AI bẻ khóa máy chơi game không phản ánh quy trình thực tế. Nỗ lực ban đầu nhằm thực thi mã thông qua một con đường khác không thành công, còn quá trình bẻ khóa đòi hỏi nhiều công sức trong khoảng hai tuần.
Hajhamid cho biết Codex tạo bản chỉnh sửa Mario Kart World trong một ngày. Điều đó cho thấy màn trình diễn vui mắt có tiến độ khác với nghiên cứu bảo mật đứng sau nó: các thay đổi nhân vật dễ thấy chỉ được thực hiện sau công việc khó hơn là giành quyền truy cập.
Vì sao nhóm nghiên cứu từ bỏ con đường trình duyệt
WebKit, công cụ trình duyệt được nhắm đến trong nỗ lực ban đầu, là mục tiêu sớm vì trình duyệt xử lý nội dung phức tạp và thường thu hút sự quan tâm của giới nghiên cứu bảo mật. Trong thiết lập của Hajhamid, nhóm nghiên cứu thử tiếp cận WebKit thông qua một cổng mạng Wi-Fi captive tùy chỉnh, dạng trang có thể xuất hiện khi thiết bị kết nối vào mạng.
Cách tiếp cận này vấp phải một số cơ chế bảo vệ. Tính năng chỉ cho phép thực thi bộ nhớ hạn chế việc đọc các lệnh thực thi, khiến việc tìm những chuỗi mã hữu ích trở nên khó hơn. Xác thực con trỏ kiểm tra một số địa chỉ trước khi chúng được sử dụng, còn tính toàn vẹn luồng điều khiển kiểm tra xem một số bước chuyển thực thi có tuân theo những đường đi được phép hay không.
Nghiên cứu trình duyệt ban đầu đạt được một dạng kiểm soát hạn chế hơn, nhưng không tạo ra khả năng giao tiếp tùy ý với các dịch vụ hệ thống cần thiết cho mục tiêu bẻ khóa. Vì vậy, Hajhamid chuyển sang con đường SmileBASIC trong khi nghiên cứu trình duyệt tiếp tục riêng biệt.
Anh cho biết việc điều chỉnh lỗ hổng hệ thống tệp để khai thác WebKit là một hướng nghiên cứu khả thi. Cách này có thể cung cấp một điểm xâm nhập khác, dù chưa có ngày phát hành cho phiên bản như vậy. Anh cũng cho biết lỗ hổng đã được thử nghiệm trên Switch đời đầu nhưng chưa được đóng gói cho máy chơi game đó.
Người dùng cần gì và điều gì bị xóa sau khi khởi động lại
Con đường được mô tả sử dụng SmileBASIC 4 phiên bản 4.4.9, có giá được cho là khoảng 25 USD trên eShop Mỹ. Một modder khác nói tựa game này có thể không hoàn toàn bắt buộc, nhưng chuỗi khai thác được trình diễn bắt đầu từ ứng dụng lập trình. Yêu cầu thực tế của các con đường thay thế vẫn chưa rõ.
Bản dùng thử miễn phí tại Nhật Bản cũng thu hút sự chú ý khi người dùng tìm cách tải phần mềm. Bản này được cho là không tương thích với lỗ hổng. Vì vậy, theo các thông tin hiện có, bản dùng thử và bản trả phí có mức độ hữu dụng khác nhau đối với phương pháp cụ thể này.
Ns2jb được mô tả là dạng khai thác cần kết nối lại sau khi khởi động. Trong trường hợp này, người dùng phải kích hoạt lại lỗ hổng từ một trò chơi sau mỗi lần bật máy chơi game. Khởi động lại sẽ xóa lỗ hổng đang hoạt động khỏi bộ nhớ và đưa các tiến trình bị ảnh hưởng về trạng thái bình thường.
Lỗ hổng phần mềm và firmware tùy chỉnh bền vững mang lại những dạng truy cập khác nhau. Ns2jb thay đổi những gì có thể chạy trong một phiên hoạt động. Firmware tùy chỉnh bền vững cần một cơ chế bổ sung để tiếp tục hoạt động sau khi khởi động lại.
Hướng dẫn hiện tại cũng được mô tả là khó làm theo đối với người chơi thông thường. Vì vậy, đối tượng trước mắt là các nhà nghiên cứu và modder có kinh nghiệm kỹ thuật, chứ không phải mọi chủ máy muốn có một trình đơn đơn giản để cài ứng dụng không chính thức.
Phản hồi của Nintendo và mốc thời gian công bố
Khả năng tải SmileBASIC 4 trở thành mối quan tâm ngay sau màn trình diễn. Một số người dùng được cho là đã mua ứng dụng rồi ngắt kết nối máy chơi game khỏi internet vì lo ngại bản cập nhật sẽ đóng lỗ hổng. Các bài viết đăng quanh thời điểm công bố mô tả ứng dụng dự kiến bị gỡ hoặc đã biến mất khỏi một số cửa hàng theo khu vực.
Nintendo chưa đưa ra giải thích chính thức hay công bố bản vá trong những bài viết đó. Phạm vi các vụ gỡ ứng dụng được đưa tin, bao gồm những khu vực bị ảnh hưởng, chưa được xác nhận. Gỡ ứng dụng khỏi cửa hàng sẽ hạn chế các giao dịch mua mới; cập nhật hệ thống hoặc phần mềm sẽ xử lý mã dễ bị tấn công theo một cách khác.
Các mốc thời gian được nêu trong thông báo và bài viết kỹ thuật gồm:
- Ngày 18 tháng 10 năm 2026: Bài viết kỹ thuật của Hajhamid được đề ngày này, xác định ns2jb là lỗ hổng phần mềm dành cho firmware 23.0.1.
- Ngày 22 tháng 10 năm 2026: Hajhamid công khai màn trình diễn Mario Kart World và thông báo về việc bẻ khóa.
- Quanh thời điểm công bố ngày 22 tháng 10: Người dùng bàn luận về việc mua SmileBASIC 4, trong khi các bài viết đề cập khả năng ứng dụng bị gỡ khỏi eShop theo khu vực hoặc đã bị gỡ.
Nhà phát triển Geziné, người từng tiết lộ một lỗ hổng riêng ảnh hưởng đến cả hai thế hệ Switch, cho biết họ đã trao đổi với pepsipu và công cụ có vẻ đáng tin cậy. Geziné cũng nói pepsipu biết về một lỗ hổng ở chế độ người dùng riêng mà họ đã phát triển.
Hajhamid mô tả ns2jb là lỗ hổng Switch 2 đầu tiên thuộc loại này theo hiểu biết của anh. Đóng góp trước mắt của công cụ là một con đường hoạt động để nghiên cứu phần mềm chuyên sâu và chỉnh sửa game, dù vẫn có những giới hạn rõ ràng về khả năng duy trì sau khi khởi động lại và mức độ dễ sử dụng.
Điểm chính
- Ns2jb được cho là hoạt động trên Switch 2 chạy firmware 23.0.1 mà không cần modchip phần cứng.
- Chuỗi khai thác được trình diễn kết hợp lỗi bộ nhớ trong SmileBASIC với lỗ hổng ở dịch vụ hệ thống tệp.
- Sammy Hajhamid, được biết đến với tên pepsipu, đã sử dụng Codex của OpenAI trong khoảng hai tuần nghiên cứu.
- Màn trình diễn Mario Kart World có các nhân vật tùy chỉnh như Cinnamoroll, Hatsune Miku và Peter Griffin.
- Lỗ hổng biến mất sau khi khởi động lại và hiện chưa cung cấp firmware tùy chỉnh bền vững.
- Điểm xâm nhập được mô tả sử dụng SmileBASIC 4 phiên bản 4.4.9; có thông tin một số cửa hàng theo khu vực đã gỡ ứng dụng, trong khi Nintendo chưa bình luận công khai.






