{"id":27962,"date":"2026-09-23T20:31:19","date_gmt":"2026-09-23T12:31:19","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-96456"},"modified":"2026-09-23T20:31:19","modified_gmt":"2026-09-23T12:31:19","slug":"cve-2026-96456","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-96456","title":{"rendered":"CVE-2026-96456 [MEDIUM] &#8211; The Reachy Mini Bluetooth service asks a connecting device for a PIN before it will accept"},"content":{"rendered":"<p>The Reachy Mini Bluetooth service asks a connecting device for a PIN before it will accept commands. The check protects the session but not the caller, so an attacker in Bluetooth range can ride along on someone else&#8217;s successful authentication.<\/p>\n<p>The authenticated state is kept in a single shared flag on the service instance rather than per device. BlueZ passes the calling device&#8217;s identity to the characteristic write handler in the options argument, but WriteValue(self, value, options) in src\/reachy_mini\/daemon\/app\/services\/bluetooth\/bluetooth_service.py ignores options entirely. The handler therefore has no idea which device sent a given write, and it cannot tell the authenticated one from any other.<\/p>\n<p>Once any device completes the PIN exchange, the flag is set and every nearby device can send CMD_ commands until it resets. An attacker simply waits within radio range for a legitimate user to authenticate, then writes commands into the same window. No PIN is ever guessed or brute-forced.<\/p>\n<p>This is the second step of a three-step chain that JFrog documented against the robot. The first is the unrestricted file upload in the media sounds API, tracked as CVE-2026-55419, which places an attacker-controlled script on the filesystem. This issue then provides command access over Bluetooth. The third is the Bluetooth command handler path traversal, tracked as CVE-2026-62661, which runs that script as root.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The Reachy Mini Bluetooth service asks a connecting device for a PIN before it will accept commands. The check protects the session but not the caller, so an attacker in Bluetooth range can ride along<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-27962","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/27962","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=27962"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=27962"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=27962"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}