Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

BLE pairing on boards without a button accepts any phone for 60 s after every boot

Abierto
#18 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
35/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
rust

Línea de trabajo

Read boards/esp/src/ble/lifecycle.rs and boards/esp/src/ble/transport.rs, then review the WiCAN profile at hardware-profiles/meatpi-wican-esp32c3.toml and the pairing guidance in docs/ble.md. Decide how pairing should be gated and authenticated across supported hardware, and check the setup wizard issue at OpenCarControls/contracts#10. Done means strangers cannot bond during a normal reboot and the pairing flow is documented.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Problem

  • When pairing_button_pin isn't set (the WiCAN profile sets it to -1, in hardware-profiles/meatpi-wican-esp32c3.toml:32), ble_lifecycle_task opens the pairing window for pairing_window_seconds (60 s) on every boot (boards/esp/src/ble/lifecycle.rs:91).
  • Pairing uses IoCapabilities::NoInputNoOutput (boards/esp/src/ble/transport.rs:173). That's Just Works pairing: unauthenticated, with no MITM protection and no user confirmation.
  • So any phone in range after a reboot, watchdog reset or brownout can bond, and bonded phones are trusted from then on.
  • docs/ble.md doesn't describe the automatic opening on boot yet.

Impact
Low while v1 is read-only: someone can read the car's state. It must be fixed before E-GMP commands are enabled, because then a bonded phone can control the car.

Ideas

  • Open the window at boot only while no phone is bonded (first setup), and require a deliberate action after that: a bonded phone's command, or a physical action such as unplugging and replugging the device a set number of times.
  • Use authenticated pairing (passkey or numeric comparison) where the hardware allows it, e.g. a code shown in the app and confirmed with a pattern on the device's LED.
  • Cover this in the setup wizard (https://github.com/OpenCarControls/contracts/issues/10).
  • Document the behaviour in docs/ble.md.

Done when
A stranger near the car can't bond during a normal reboot, and the pairing flow is documented.

From the audit
Lenguaje dominante
Rust
Estrellas
1
Forks
0
Merge medio
25 min
PR fusionados (30 d)
1

Preparar el entorno

Abrir en Codespaces

Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.

  • Sin Dockerfile ni archivo de Docker Compose
  • Sin plantilla de pull request
  • Sin guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de OpenCarControls/firmware

Todos los issues de OpenCarControls/firmware

Issues similares

Más issues de Rust

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.