fix: critical security issues from code review #25

Closed
eddy wants to merge 2 commits from fix/code-review-critical-issues into main
Owner

Samenvatting

Deze PR lost 4 kritieke beveiligingsissues op die naar boven kwamen tijdens code review.

Issues opgelost

Issue 1: Thread Safety Race Condition

Bestand: BleRelayManager.kt

ECDH notify buffer werd zonder synchronisatie benaderd door meerdere threads.

Fix: @Synchronized methoden voor thread-safe toegang.

Issue 2: Hard-coded EC Curve Parameters

Bestand: BleRelayManager.kt

secp256r1 parameters handmatig geconstrueerd - foutgevoelig.

Fix: X509EncodedKeySpec met proper SPKI encoding.

Issue 3: Sensitive Data Exposure

Bestand: ecdh_helper.h

shared_secret en aes_key waren publiek toegankelijk.

Fix: Members naar private, nieuwe const getter getAesKey().

Issue 4: Unencrypted Credential Storage

Bestand: PrefsHelper.kt, BleRelayManager.kt, SettingsActivity.kt

PSK en UUID in plaintext SharedPreferences.

Fix: Migratie naar EncryptedSharedPreferences met automatic fallback.

Build status

  • s3lite-server firmware
  • s3lite-client firmware
  • Android app
## Samenvatting Deze PR lost 4 kritieke beveiligingsissues op die naar boven kwamen tijdens code review. ## Issues opgelost ### Issue 1: Thread Safety Race Condition **Bestand:** `BleRelayManager.kt` ECDH notify buffer werd zonder synchronisatie benaderd door meerdere threads. **Fix:** `@Synchronized` methoden voor thread-safe toegang. ### Issue 2: Hard-coded EC Curve Parameters **Bestand:** `BleRelayManager.kt` secp256r1 parameters handmatig geconstrueerd - foutgevoelig. **Fix:** `X509EncodedKeySpec` met proper SPKI encoding. ### Issue 3: Sensitive Data Exposure **Bestand:** `ecdh_helper.h` `shared_secret` en `aes_key` waren publiek toegankelijk. **Fix:** Members naar `private`, nieuwe const getter `getAesKey()`. ### Issue 4: Unencrypted Credential Storage **Bestand:** `PrefsHelper.kt`, `BleRelayManager.kt`, `SettingsActivity.kt` PSK en UUID in plaintext SharedPreferences. **Fix:** Migratie naar `EncryptedSharedPreferences` met automatic fallback. ## Build status - ✅ s3lite-server firmware - ✅ s3lite-client firmware - ✅ Android app
fix: critical security issues from code review
All checks were successful
CI / build (pull_request) Successful in 1m10s
e0b2750c2e
- Thread safety: Add @Synchronized methods for ECDH buffer access
- Crypto: Use X509EncodedKeySpec instead of hard-coded EC curve params
- Sensitive data: Make aes_key/shared_secret private in CryptoECDH
- Credential storage: Migrate PSK/UUID to EncryptedSharedPreferences
fix: address critical security issues discovered during code review
All checks were successful
CI / build (pull_request) Successful in 1m16s
671da31605
eddy closed this pull request 2026-08-05 07:35:15 +02:00
All checks were successful
CI / build (pull_request) Successful in 1m16s

Pull request closed

Sign in to join this conversation.
No description provided.