Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

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

Chiusa
#18 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
35/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
rust

Direzione di ricerca

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.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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
Lingua principale
Rust
Stelle
1
Fork
0
Merge medio
13h 37m
PR unite (30g)
8

Preparare l'ambiente

Apri in Codespaces

Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.

  • Nessun Dockerfile né file Docker Compose
  • Nessun modello di pull request
  • Nessuna guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di OpenCarControls/firmware

Tutte le issue di OpenCarControls/firmware

Issue simili

Altre issue su Rust

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.